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 vagrant@192.168.59.2。此时SSH登陆需要输入虚拟机vagrant用户的密码,即vagrant
  • 将主机的公钥复制到虚拟机的authorized_keys文件中即可实现SSH免密码登陆:
    cat $HOME/.ssh/id_rsa.pub | ssh vagrant@192.168.59.2 'cat >> $HOME/.ssh/authorized_keys'

vagrant 常用命令

vagrant init        # 初始化
vagrant up      # 启动虚拟机
vagrant halt    # 关闭虚拟机
vagrant reload  # 重启虚拟机
vagrant ssh     # SSH 至虚拟机
vagrant status   # 查看虚拟机运行状态
vagrant destroy  # 销毁当前虚拟机
vagrant package #分发box
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 开发需要在各种系统上进行开发任务,运维则需要在各种系统上学习工具使用。因此,虚拟机恐怕也是 IT 人员最常使用的工...
    李广慧阅读 10,891评论 3 24
  • 1,介绍Vagrant 我们做web开发的时候经常要安装各种本地测试环境,比如apache,php,mysql,r...
    meng_philip123阅读 7,272评论 0 12
  • 最近服务器老是宕机,学习的时候很多环境有需要集群,忍无可忍的情况下终于决定自己装一波虚拟机宫学习使用。本人系统为D...
    行书以鉴阅读 5,934评论 0 1
  • Vagrant学习笔记 简介 vagrant用于快速创建基于VirtualBox、VMware、AWS的虚拟机,提...
    200cc阅读 12,632评论 0 15
  • JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么? Ja...
    DCbryant阅读 1,339评论 0 0