vagrant常用命令和配置

本篇博客不是 vagrant 使用教程,只是简单的记录常用命令。

vagrant有什么用处

简单的说有了 vagrant 就可以对 VirtualBox 上安装的系统进行增、删、改、查操作了。而前提是 vagrant 只能操作它自己专有的.box镜像系统,不能操作通过其它方式安装在 VirtualBox 上的操作系统(就是自己操作自己安装的)。

简单的命令

vagrant box list 列出所有已安装的.box镜像系统
vagrant box add 添加.box镜像

vagrant box add ubuntu-14.04 ubuntu-14.04.box

vagrant box remove 删除.box镜像

vagrant box remove ubuntu-14.04

vagrant init 初始化虚拟机配置

# 如果不指定`ubuntu-14.04`参数,则需要手动在Vagrantfile文件中指定`config.vm.box = "ubuntu-14.04"`
vagrant init ubuntu-14.04

vagrant up 启动虚拟机中的系统
vagrant reload 重启虚拟机中的系统
vagrant ssh 以SSH方式进入虚拟机系统
vagrant halt 使虚拟机中的系统关机
vagrant destory 销毁虚拟机中的系统

常用配置

网络端口映射,对应 VirtualBox 的设置->网络->高级->端口转发

# 将虚拟机中的80端口转发到主机的8888端口
config.vm.network "forwarded_port" ,guest:80,host:8888
# 将虚拟机中的8888端口转发到主机的8889端口
config.vm.network "forwarded_port" ,guest:8888,host:8889

共享目录设置

# 将主机的`/home/lemontea/tjzwork/workspace`目录映射到虚拟机的`/home/www`目录,并且以nfs形式
# 这里要注意 nfs 只能跟私有ip一起使用
config.vm.synced_folder "/home/lemontea/tjzwork/workspace" ,"/home/www",type: "nfs"

网络设置

# 私有IP设置
config.vm.network "private_network",ip:"192.168.10.101"
# 公有IP设置,这里要注意公网IP段与主机必须保持一致
config.vm.network "public_network",ip:"192.168.1.101"

配置虚拟机名、内存、CPU

config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
     vb.name = "ubuntu_14_0_4"
     vb.memory = "1024"
     vb.cpus = 2
  end

配置主机名

config.vm.hostname = "ubuntu-dev-tang"

打包分发

将之前配置的各种环境打包成镜像,然后分发给别人使用。

打包自己box的三种方式

vagrant package
vagrant package --output xxx.box
vagrant package --output xxx.box --base 虚拟机名称

分发后如果box升级了怎么办?
老用户直接用Vagrantfile更新

config.vm.provision "shell", inline: <<-SHELL
#   apt-get update
#   apt-get install -y apache2
# 在这里增加升级后软件的安装命令
  apt-get install vim -y
SHELL

新用户直接使用新打包的box文件新机虚拟机

本博客采用 知识共享署名-禁止演绎 4.0 国际许可协议 进行许可

本文标题:vagrant常用命令和配置

本文地址:https://jizhong.plus/post/2018/06/vagrant-use.html