Vagrant 创建虚拟环境

下载和安装基本组件

下载一般很简单,安装也很简单,可以采用 dpkgapt-get 的安装方式。

  1. 下载安装 virtualbox:稳定版VirtualBox
  2. 下载系统镜像box:下载 iso 地址
  3. 下载安装 vagrant:下载 Vagrant 地址

单机虚拟环境

注意,以下操作在存放虚拟环境的目录下进行:

  1. 添加下载的系统镜像box:vagrant box add add_tag iso_box_path
  2. 利用下载的box初始化虚拟环境:vagrant init add_tag
  3. 主要配置:
    • 虚拟环境网络,最好不要和本机同网络段:config.vm.network "private_network", ip: "192.168.33.10"
    • 共享目录,统一为好:config.vm.synced_folder "local_share_dir", "/virtual_dir"
  4. 启动创建的虚拟环境P:vagrant up
  5. 进入虚拟环境:vagrant ssh

集群虚拟环境

集群相当于有多个单机,所以就是配置多个单机。这里,采用先写配置文件,再使用 vagrant up 启动集群的方式。上面单机,是用初始化的方式创建单机虚拟环境,运行vagrant init 后会生成 Vagrantfile文件。集群虚拟环境 Vagrantfile 配置如下:

# box 存放的绝对路径
# config.vm.box = "iso_box_absolute_path"
config.vm.box_version = "2.3.1"
config.vm.box_check_update = false

Vagrant.configure("2") do |config|
    (1..3).each do |i|
        config.vm.define "node#{i}" do |node|
        # 设置虚拟机的Box
        node.vm.box = "ubuntu/trusty64"
        # 设置虚拟机的主机名
        node.vm.hostname="node#{i}"
        # 设置虚拟机的IP
        node.vm.network "private_network", ip: "192.168.59.#{i}"
        # 设置主机与虚拟机的共享目录
        node.vm.synced_folder "~/Desktop/share", "/home/vagrant/share"
        # VirtaulBox相关配置
        node.vm.provider "virtualbox" do |v|
            # 设置虚拟机的名称
            v.name = "node#{i}"
            # 设置虚拟机的内存大小  
            v.memory = 2048
            # 设置虚拟机的CPU个数
            v.cpus = 1
        end
  
        # 使用shell脚本进行软件安装和配置
        node.vm.provision "shell", inline: <<-SHELL
            # Shell 命令
        SHELL
        end
    end
end
  • 上面的配置创建了三个节点:node1 , node2 , node3
  • vagrant up 会按照 Vagrantfile 生成集群
    • box 系统路径
    • private ip
    • 用户/密码: vagrant/vagrant
    • 共享目录: 桌面上的share目录将与虚拟机内的/home/vagrant/share目录内容实时同步
    • 内存:2GB
    • CPU: 1

集群命令

  • 启动单个虚拟机:
    vagrant up node1
  • 启动多个虚拟机:
    vagrant up node1 node3
  • 启动所有虚拟机:
    vagrant up

SSH免密码登陆

  • 使用vagrant ssh命令登陆虚拟机必须切换到Vagrantfile所在的目录,而直接使用虚拟机IP登陆虚拟机则更为方便:ssh [email protected]。此时SSH登陆需要输入虚拟机vagrant用户的密码,即vagrant
  • 将主机的公钥复制到虚拟机的authorized_keys文件中即可实现SSH免密码登陆:
    cat $HOME/.ssh/id_rsa.pub | ssh [email protected] 'cat >> $HOME/.ssh/authorized_keys'

vagrant 常用命令

vagrant init        # 初始化
vagrant up      # 启动虚拟机
vagrant halt    # 关闭虚拟机
vagrant reload  # 重启虚拟机
vagrant ssh     # SSH 至虚拟机
vagrant status   # 查看虚拟机运行状态
vagrant destroy  # 销毁当前虚拟机
vagrant package #分发box

你可能感兴趣的:(Vagrant 创建虚拟环境)