2018/03/14

vagrant工作环境搭建


搭建流程

1.安装软件和创建目录

安装 vagrant,virtualbox,接着建立好文件夹目录

vagrant
    --nginx_vhost                   nginx域名配置
    --software                      存放软件安装包
        --vagrant-centos-6.9.box    box文件
    --vagrant-centos69              vagrant一台centos69虚拟机
    --work                          工作代码目录

2.添加box,此步骤是在window或mac下执行的

vagrant box add centos69 .\software\vagrant-centos-6.9.box
vagrant box list

3.进入目录vagrant-centos69,然后开始初始化

vagrant init centos69   #centos69为上一步添加box的名称

初始化完毕后会生成配置文件 Vagrantfile

4.配置文件 Vagrantfile ,简单参考如下

Vagrant.configure("2") do |config|
  # 配置使用哪个box镜像
  config.vm.box = "centos69"

  # 先禁用系统默认的 2222 端口转发
  # 添加本机4022端口转发到虚拟机22端口
  # 添加本机80端口转发到虚拟机80端口
  # https://tlanyan.me/change-default-ssh-forward-port-in-vagrant/
  config.vm.network "forwarded_port", guest: 22, host: 2222, id: "ssh", disabled: "true"
  config.vm.network "forwarded_port", guest: 22, host: 4022
  config.vm.network "forwarded_port", guest: 80, host: 80

  # 配置私有ip
  config.vm.network "private_network", ip: "192.168.40.10"

  # 系统默默认会将 Vagrantfile 本目录共享到虚拟机环境中
  #
  # 以下是用户自定义共享目录
  config.vm.synced_folder "../", "/vagrant_sync"

  config.vm.provider "virtualbox" do |vb|
    # 设置虚拟机名
    vb.name = "vagrant-centos69-201801"

    # Display the VirtualBox GUI when booting the machine
    # vb.gui = true

    # 设置CPU数量
    vb.cpus = 4

    # Customize the amount of memory on the VM:
    vb.memory = "2048"
  end

  # 文章或帖子参考
  # 配置virtualBox 扩容 https://www.cnblogs.com/wajika/p/6513102.html
  # 简介 http://rmingwang.com/vagrant-commands-and-config.html
  # 默认ssh 2222 端口转发屏蔽 https://tlanyan.me/change-default-ssh-forward-port-in-vagrant/
  # 配置共享目录 https://ninghao.net/blog/2078
  # 配置虚拟机名字 https://www.cnblogs.com/davenkin/p/vagrant-virtualbox.html
end

5.启动相关指令操作

启动: vagrant up
连入虚拟机: vagrant ssh
关闭虚拟机: vagrant halt
挂起: vagrant suspend
还原: vagrant resume
重启: vagrant reload

6.添加扩容磁盘

如果出现磁盘不够用,可参考此篇文章进行扩容:http://www.yangxg.com/blog/id/1515071965

7.打包

先关闭虚拟机 vagrant halt ,然后在配置目录中执行
vagrant package --output centos69-new.box

将此包和你的 Vagrantfile 分给小伙伴,让小伙伴回到执行添加box,初始化,运行就可以安装一套完整的的环境

如果启动过程中出现 default: Warning: Authentication failure. Retrying...
请在 Vagrantfile 加入

config.ssh.username = "vagrant"
config.ssh.password = "vagrant"

然后再次启动尝试

8.github下开源有一套开源的管理工具方便我们管理vagrant

window
ios

下载

vagrant:下载地址
virtualbox:下载地址
vagrant界面管理工具:下载地址
百度云盘分享一个centos6.9干净版的box:下载地址,更多的box下载可以前往官网查找自行下载:官网box下载地址

遇到问题记录处

关联已存在的虚拟机

启动已存在的虚拟机,出现重新载入box镜像安装的过程,最后出现命名重复的情况

>vagrant status
Current machine states:

default                   not created (virtualbox)

这是是因为vagrant失去了与已存在虚拟机的id关联,重新配置id关联启动即可

打开配置文件 .vagrant/machines/default/virtualbox/id ,里面的内容就是和它关联的虚拟机唯一ID

查看当前已存在虚拟机的ID列表信息

>VBoxManage.exe list vms
"vagrant-centos69-201801" {af57d22c-fdc1-4c43-8fdc-6805267521bc}
"vagrant-centos69-salve" {fae2602f-7bc9-484c-a9e4-25bbc5795cf5}

将对应虚拟机id写入 .vagrant/machines/default/virtualbox/id 文件中,然后重新查看状态,启动即可

>vagrant status
Current machine states:

default                   poweroff (virtualbox)