Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。 它使用Oracle的开源VirtualBox虚拟化系统,使用Chef创建自动化虚拟环境。
使用vagrant搭建开发环境优势:
运行完全隔离;
熟悉linux常用操作;
GUEST改时间不影响HOST时间
安装 需要软件:
GIT
VirtualBox-5.1.4-110228-Win
vagrant_1.8.5.msi
BOX文件
将the git root\usr\bin
加入环境变量, 确保ssh
命令可用
Virtualbox
安装成功后,执行:VBoxManage.exe setextradata global "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "1"
设置Virtualbox
不同步系统时间
创建box 1 2 3 vagrant box add centos7 E:\centos_7.box
项目 1 2 3 4 cd project_pathvagrant init centos7
在生成Vagrantfile
文件中添加:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 config.ssh.username = "root" config.ssh.password = "vagrant" config.vm.network "forwarded_port" , guest: 8101 , host: 47010 config.vm.synced_folder "./" , "/data/qqjy" config.vm.provision "shell" , inline: <<-SHELL touch /root/.db_status VER=$(cat /root/.db_status) if [[ "$VER" == "" ]]; then echo "deal" > /root/.db_status cd /data/qqjy/db_script && mysql -uroot -p123456 -e "create database qqjy_admin; use qqjy_admin; source admin.sql;" fi cd /data/qqjy/script && ./server_ctl.sh make && ./server_ctl.sh start_all SHELL
多节点配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Vagrant.configure("2" ) do |config| (1 ..3 ).each do |i| config.vm.define "node#{i} " do |node| node.vm.box = "centos7" node.ssh.username = "root" node.ssh.password = "vagrant" node.vm.hostname = "node#{i} " node.vm.network :forwarded_port , guest: 22 , host: "2022#{i} " node.vm.provider "virtualbox" do |v| v.name = "node#{i} " if i == 1 v.memory = 512 else v.memory = 512 end v.cpus = 1 end end end end
使用vagrant up --provision
启动
其他
导出box 打开virtualbox,查看box名称,然后使用:vagrant package --output centos7_64_1.box --base server_default_1472191933425_51781
导出自己的BOX
参考文档
https://wenku.baidu.com/view/a14d3fc5a1c7aa00b52acb38.html