66 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
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
 | 
						||
 | 
						||
            cfg.vm.synced_folder "/Users/ehlxr/works/Vagrant/vm_share", "/share"
 | 
						||
            cfg.vm.synced_folder "/Users/ehlxr/works/Vagrant", "/vagrant"
 | 
						||
 | 
						||
            # 开机运行命令
 | 
						||
            cfg.vm.provision "shell", run: "always", inline: <<-SHELL
 | 
						||
                echo -e "\033[1;33mConfig ssh...\033[0m"
 | 
						||
                mkdir -p ~/.ssh && cat /share/config/authorized.key >> ~/.ssh/authorized_keys
 | 
						||
                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"
 | 
						||
                cp /share/config/resolv.conf /etc/
 | 
						||
            SHELL
 | 
						||
 | 
						||
            # 自定义初始化执行脚本
 | 
						||
            # cfg.vm.provision "shell", path: "config/init.sh"
 | 
						||
        end
 | 
						||
    end
 | 
						||
end |