Vagrant/Vagrantfile

66 lines
2.6 KiB
Ruby
Raw Permalink Normal View History

Vagrant.configure("2") do |config|
# 定义虚拟机数量
vms = Array(1..5)
vms.each do |i|
config.vm.define "vg#{i}" do |cfg|
# 设置虚拟机的 Box
cfg.vm.box = "centos-7.2-ehlxr"
# 不检查 box 更新
cfg.vm.box_check_update = false
# 设置虚拟机的主机名
cfg.vm.hostname="vg#{i}.node"
# cfg.vm.network "forwarded_port", guest: 80, host: 8080
# hostonly
cfg.vm.network "private_network", ip: "192.168.3.10#{i}",:auto_network => true
# bridged
# cfg.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
cfg.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = false
# Customize the amount of memory on the VM:
vb.memory = "1024"
vb.cpus = 1
# 名称指的是在 VirtualBox 中显示的名称
vb.name = "vghost#{i}"
end
# 增加各节点 host 配置插件安装vagrant plugin install vagrant-hosts
cfg.vm.provision :hosts do |provisioner|
vms.each do |x|
provisioner.add_host "192.168.3.10#{x}", ["vg#{x}.node"]
end
end
# 默认 root 登陆
cfg.ssh.username = "root"
cfg.ssh.password = "vagrant"
cfg.ssh.insert_key = "true"
# do NOT check the correct additions version when booting this machine插件安装vagrant plugin install vagrant-vbguest
cfg.vbguest.auto_update = false
2018-11-02 15:49:09 +00:00
cfg.vm.synced_folder "E:\\ehlxr\\Vagrant", "/vagrant", disabled: true
cfg.vm.synced_folder "E:\\ehlxr\\Vagrant\\vm_share", "/root"
# 开机运行命令
2018-11-02 02:42:27 +00:00
cfg.vm.provision "shell", run: "always", inline: <<-SHELL
echo -e "\033[1;33mConfig ssh...\033[0m"
2018-11-02 04:42:30 +00:00
mkdir -p ~/.ssh && cat /root/config/authorized.key >> ~/.ssh/authorized_keys
2018-11-02 02:42:27 +00:00
sed -i 's/^#RSAAuthentication.*/RSAAuthentication\ yes/g' /etc/ssh/sshd_config
sed -i 's/^#PubkeyAuthentication.*/PubkeyAuthentication\ yes/g' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication.*/PasswordAuthentication\ yes/g' /etc/ssh/sshd_config
echo -e "\033[1;33mConfig dns...\033[0m"
2018-11-02 04:42:30 +00:00
cp /root/config/resolv.conf /etc/
2018-11-02 02:42:27 +00:00
SHELL
# 自定义初始化执行脚本
# cfg.vm.provision "shell", path: "config/init.sh"
end
end
end