添加 box
vagrant box add [box name] [box path]
// 示例
vagrant box add centos7 centos.box
创建虚机
新建一个工作目录:
mkdir test
cd test
初始化虚机:
vagrant init centos7
执行后在当前目录生成配置文件 Vagrantfile
,修改:
// 设置主机名
// 放到这行 config.vm.box = "centos7" 下面即可
config.vm.hostname = "myservername"
// 打开此项,使用公开网络
// 自动分配一个局域网IP,和主机可以互相通过IP沟通
config.vm.network "public_network"
// 还可以直接指定bridge和IP,例如:
config.vm.network "public_network", :bridge => "en0: Wi-Fi (Airport)", :ip => "192.168.3.140"
// 打开此项,修改内存分配,默认是 1024
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 = "2048"
end
启动虚机
vagrant up
登录虚机
vagrant ssh
执行一些初始操作:
// 切换 root 用户
sudo su -
// 安装网络包
yum install -y net-tools
// 查看ip
// 得到IP后,在主机上就可以通过 `ssh root@ip` 形式登录了,密码 vagrant
ifconfig
// 关闭防火墙
systemctl stop firewalld.service
service iptables stop
关闭虚机
vagrant halt
重启
vagrant reload
删除虚机
vagrant destroy
打包
在虚机上安装好自己的常用软件,可以作为以后新建虚机的基础,可以把当前的虚机打包,形成 box:
vagrant package
Vagrantfile模板
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-16.04"
#config.vm.provision "docker"
config.vm.hostname = "myserver"
config.vm.network "private_network", type: "dhcp"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
end
共享目录失效
如果启动后有错误提示:
unknown filesystem type 'vboxsf'
那么共享目录肯定没有挂载成功,一般和 virtualbox 的扩展有关,需要安装插件,重新启动:
vagrant plugin install vagrant-vbguest
vagrant destroy && vagrant up