美文网首页vagrant
vagrant 使用笔记

vagrant 使用笔记

作者: 我是柯南 | 来源:发表于2016-11-01 12:56 被阅读25次

安装环境

主机环境为:Ubuntu 16.04 LTS,从 官方站点 下载最新版本 vagrant 并安装到系统。

sudo dpkg -i vagrant_2.0.4_x86_64.deb
vagrant --version
Vagrant 2.0.4

sudo apt install virtualbox

基本命令

# 添加 box 到本地,默认从官方源中下载指定的 box
vagrant box add comiq/dockerbox

# 添加 box 到本地并重命名
vagrant box add box-name comiq/dockbox

# 添加已下载到本地的 box 到系统
vagrant box add ubuntu-xenial-docker file:///home/freeman/vagrant/ubuntu-xenial-docker.box

创建单个虚拟机

创建并运行一个虚拟机,各种版本的虚拟机 box 列表请在 boxes 上搜索,因为官方 vagrant boxes 源的后端使用的是 AWS S3 存储,而这些 AWS S3 在国内基本都是被屏蔽状态,所以要么下载不下来,要么是非常非常慢,建议的方法是使用命令 vagrant box add cmiq/dockerbox 先的到下载地址:https://vagrantcloud.com/comiq/boxes/dockerbox/versions/17.06.1-1/providers/virtualbox.box 然后使用有 VPN 的电脑先把 box 下载到本地,传到服务器上,然后使用命令 vagrant box add ubuntu-xenial-docker file:///d:/path/to/file.box 添加进去。

mkdir ubuntu-xenial-docker
cd ubuntu-xenial-docker
vagrant init ubuntu-xenial-docker
vagrant up

也可以使用自定义 Vagrantfile 配置文件来实现定制,这里配置的网络是本地局域网,使用DHCP,并且保持分配的IP地址,注意此处的 "eno1" 会因为机器的不同而不同。

Vagrant.configure("2") do |config|
  config.vm.network "public_network", use_dhcp_assigned_default_route: true, :bridge => "eno1"
  config.vm.define :master do |master|
    master.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "master", "--memory", "1024"]
    end
    master.vm.box = "ubuntu-xenial-docker"
    master.vm.hostname = "master"
  end
end

运行完成后,日志中会显示目标虚拟机的SSH登录信息

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

通过SSH登录进入虚拟机,默认登录密码:vagrant,如果希望管理方便,登录后创建主机同名账户,并将主机的public key复制到虚拟机的authorized_keys中,以后使用同名账号登录就不需要频繁输入密码了。

ssh vagrant@127.0.0.1 -p 2222

同时创建多个虚拟机集群

比如我们像使用3台虚拟机部署一个 Kubernetes 集群,我们需要三台安装好了 docker 的 ubuntu 16.04 虚拟机,那么我们可以使用脚本的方式实现。

mkdir kerbernetes-clusters
cd kerbernetes-clusters
vagrant init

编辑上一步生成的 vagrantfile 文件如下:

Vagrant.configure("2") do |config|
  config.vm.network "public_network", use_dhcp_assigned_default_route: true, :bridge => "eno1"
  config.vm.define :master do |node|
    node.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "master", "--memory", "2048"]
    end
    node.vm.box = "ubuntu-xenial-docker"
    node.vm.hostname = "master"
  end

  config.vm.define :node01 do |node|
    node.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "node01", "--memory", "2048"]
    end
    node.vm.box = "ubuntu-xenial-docker"
    node.vm.hostname = "node01"
  end

  config.vm.define :node02 do |node|
    node.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "node02", "--memory", "2048"]
    end
    node.vm.box = "ubuntu-xenial-docker"
    node.vm.hostname = "node02"
  end
end

启动集群

vagrant up
image.png
使用命令 vagrant ssh master 进入到虚拟机中可以看到,每台虚拟机都能从局域网中的 DHCP 服务器中获取到地址,分别为:192.168.2.17,192.168.2.18,192.168.2.19,服务器本身的 IP 地址为 192.168.2.4。

相关文章

  • vagrant 使用笔记

    安装环境 主机环境为:Ubuntu 16.04 LTS,从 官方站点 下载最新版本 vagrant 并安装到系统。...

  • vagrant 使用笔记

    需求: 在Windows中一键部署内网项目,项目是两个跑在Linux中的web server,要求启动虚拟机后we...

  • vagrant多台虚拟机

    使用vagrant创建多台虚拟机 安装virtualbox 安装vagrant2.2.3 vagrant init...

  • Vagrant & Docker

    vagrant安装与使用 一、准备安装包 1.virtualbox2.vagrant3.vagrant box 二...

  • Vagrant学习笔记

    Vagrant学习笔记 简介 vagrant用于快速创建基于VirtualBox、VMware、AWS的虚拟机,提...

  • 19. Laravel Homestead 安装

    安装 VirtualBox 以及 Vagrant。 安装 Homestead Vagrant Box。在终端使用下...

  • vagrant学习笔记

    windows下vagrant使用 vagrant环境搭建 安装virtualbox: https://www.v...

  • 使用 Vagrant 打造跨平台开发环境

    使用 Vagrant 打造跨平台开发环境在 Mac/win7 下上使用 Vagrant 打造本地开发环境开始使用 ...

  • 学习Docker的一些工具

    Vagrant + VirtualBox使用Vagrant和VirtualBox可以快速搭建Linux开发环境 d...

  • vagrant安装与使用

    vagrant安装与使用 安装virtualBox 下载virtualBox 安装 安装vagrant 下载vag...

网友评论

    本文标题:vagrant 使用笔记

    本文链接:https://www.haomeiwen.com/subject/swdwyttx.html