2019独角兽企业重金招聘Python工程师标准>>>
###vagrant 简明使用方法
安装box
需要安装virtual box
和 vagrant
去官网找自己电脑所对应的版本即可
然后在终端执行:
vagrant box add 发布者/系统名称
这样会通过vagrantcloud上来根据 发布者/系统名
称来下载box
通常这个box
体积会很大,所以可以直接复制box的URL来用第三方多线程下载工具来下载,比如迅雷,下到本地之后 再执行下面语句
vagrant box add 发布者/系统名称(自己随便起也可) 本地box所在路径(/download/abc.box)
这是如果box添加成功之后,使用vagrant box list
可以查看目前已经添加的box列表
接下来就是要初始化box
vagrant init 发布者/系统名称
当你看当前目录下有个 Vagrantfile
文件就说明初始化成功了。
每个项目对应只有一个Vagrantfile
, 当你允许vagrant
相关命令的时候它会自动从当前目录开始,逐级往上级目录查找Vagrantfile
,直道找到为止。
/home/mitchellh/projects/foo/Vagrantfile
/home/mitchellh/projects/Vagrantfile
/home/mitchellh/Vagrantfile
/home/Vagrantfile
/Vagrantfile
现在就可以启动虚拟机了:
vagrant up
然后使用vagrant ssh
通过ssh来链接到虚拟机,默认是vagrant用户
vagrant status
查看虚拟机的状态vagrant halt
关机vagrant up
启动虚拟机vagrant suspend
暂停虚拟机,这时虚拟机的内存,配置信息会暂存至硬盘vagrant resume
恢复虚拟机vagrant reload
重启虚拟机vagrant destroy
销毁当前虚拟机
如果想配置多个同步目录,那么请修改文件Vagrantfile
找到
config.vm.synced_folder "../data(本地)", "/vagrant_data(虚拟机)",create: true(如果不存在则自动创建), owner: "root", group: "root"
这样我们重启虚拟机,就会看到提示信息里有我们所同步目录的列表了
####网络配置
vagrant 提供了三种类型的网络:
#####私有网络
为虚拟机指定一个IP地址,本机通过这个IP地址来访问虚拟机
缺点:只能本机访问
打开Vagrantfile
找到config.vm.network "private_network", ip: "192.168.33.10"
, 打开注释重启虚拟机即可
#####公有网络
比如配置在路由器配置好的一个网络里面,该网络的其他设备也可以访问虚拟机
打开Vagrantfile
找到config.vm.network "public_network"
, 打开注释重启虚拟机即可
#####端口转发
比如配置8080端口转发到虚拟机的80端口
缺点:手工配置,不灵活
####打包,自制box
首先得清理一个文件,删除它:
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
否则使用的时候会出现点问题
然后进行打包:
vagrant package
打包成功之后就会在当前目录生成一个package.box
的文件
注意,如果当前已有虚拟机了,那么新建一个目录,在新建目录中初始化,否则会和之前的Vagrantfile冲突
如果想删除一个box:
vagrant box remove box名称
####配置多主机
打开Vagrantfile
添加下面代码
config.vm.define "development" do |development|里面配置该主机选项development.vm.network "private_network", ip: "192.168.33.11"
end
config.vm.define "production" do |production|production.vm.network "private_network", ip: "192.168.33.22"
end