Vagrantfile v1.0

  1. # 1. 定义 Vagrant 配置
  2. # '2' - 当前配置文件的版本
  3. # |xxx| 获取返回的对象
  4. Vagrant.configure('2') do |config|
  5. # 2. 新增一台虚拟机的配置
  6. # 定义一个虚拟机名为 edge
  7. config.vm.define 'edge' do |edge|
  8. # 3. 配置虚拟机所有使用的操作系统
  9. edge.vm.box = 'centos/7'
  10. # 重新分配虚拟机磁盘大小
  11. # 默认磁盘大小为 20GB,不能更改
  12. # 需要通过 disksize 插件(需要安装)来配置
  13. edge.disksize.size = '50GB'
  14. # 4. 配置网络
  15. # 会创建两个网卡(一个内网网卡,一个和宿主机连接的网卡)
  16. edge.vm.network 'private_network', ip: '192.168.56.101'
  17. edge.vm.hostname = 'edge'
  18. # 5. 配置虚拟机的硬件配置
  19. edge.vm.provider 'virtualbox' do |vb|
  20. # 静默的启动虚拟机,不需要窗口
  21. vb.gui = false
  22. vb.name = 'edge'
  23. vb.memory = 2048
  24. vb.cpus = 1
  25. # 自定义参数,控制cpu使用频率 50%
  26. vb.customize ['modifyvm', :id, '--cpuexecutioncap', '50']
  27. end
  28. end
  29. end

Vagrantfile v1.1

  1. # 1. 定义 Vagrant 配置
  2. # '2' - 当前配置文件的版本
  3. # |xxx| 获取返回的对象
  4. Vagrant.configure('2') do |config|
  5. # 2. 新增一台虚拟机的配置
  6. # 定义一个虚拟机名为 edge
  7. config.vm.define 'edge' do |edge|
  8. # 3. 配置虚拟机所有使用的操作系统
  9. edge.vm.box = 'centos/7'
  10. # 重新分配虚拟机磁盘大小
  11. # 默认磁盘大小为 20GB,不能更改
  12. # 需要通过 disksize 插件(需要安装)来配置
  13. edge.disksize.size = '50GB'
  14. # 4. 配置网络
  15. # 会创建两个网卡(一个内网网卡,一个和宿主机连接的网卡)
  16. edge.vm.network 'private_network', ip: '192.168.56.101'
  17. edge.vm.hostname = 'edge'
  18. # 5. 配置虚拟机的硬件配置
  19. edge.vm.provider 'virtualbox' do |vb|
  20. # 静默的启动虚拟机,不需要窗口
  21. vb.gui = false
  22. vb.name = 'edge'
  23. vb.memory = 2048
  24. vb.cpus = 1
  25. # 自定义参数,控制cpu使用频率 50%
  26. vb.customize ['modifyvm', :id, '--cpuexecutioncap', '50']
  27. end
  28. # 6. 创建 Provision 初始化虚拟机
  29. edge.vm.provision 'shell', path: 'script.sh'
  30. end
  31. end

script.sh 相同目录下

  1. echo 'Hello from vagrant'

Vagrantfile v2.0

# --------------------------------------------
# | master01 | worker01 | worker02 |  edge   |
# --------------------------------------------
# |   8G     |    5G    |    5G    |   2G    |
# --------------------------------------------
# |  4 core  |  2 core  |  2 core  |  2 core |
# --------------------------------------------
Vagrant.configure("2") do |config|
    config.vm.define "master01" do |master01|
        master01.vm.box = 'centos/7'
        master01.disksize.size = '50GB'
        master01.vm.network 'private_network', ip: '192.168.56.101'
        master01.vm.hostname = 'master01'

        master01.vm.provider 'virtualbox' do |vb|
            vb.gui = false
            vb.name = 'master01'
            vb.memory = 8000
            vb.cpus = 4
            vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
        end
    end

    config.vm.define "worker01" do |worker01|
        worker01.vm.box = 'centos/7'
        worker01.disksize.size = '50GB'
        worker01.vm.network 'private_network', ip: '192.168.56.102'
        worker01.vm.hostname = 'worker01'

        worker01.vm.provider 'virtualbox' do |vb|
            vb.gui = false
            vb.name = 'worker01'
            vb.memory = 5000
            vb.cpus = 2
            vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
        end
    end

    config.vm.define "worker02" do |worker02|
        worker02.vm.box = 'centos/7'
        worker02.disksize.size = '50GB'
        worker02.vm.network 'private_network', ip: '192.168.56.103'
        worker02.vm.hostname = 'worker02'

        worker02.vm.provider 'virtualbox' do |vb|
            vb.gui = false
            vb.name = 'worker02'
            vb.memory = 5000
            vb.cpus = 2
            vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
        end
    end

    config.vm.define "edge" do |edge|
        edge.vm.box = 'centos/7'
        edge.disksize.size = '50GB'
        edge.vm.network 'private_network', ip: '192.168.56.104'
        edge.vm.hostname = 'edge'

        edge.vm.provider 'virtualbox' do |vb|
            vb.gui = false
            vb.name = 'edge'
            vb.memory = 2048
            vb.cpus = 2
            vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
        end
    end
end