Vagrantfile v1.0
# 1. 定义 Vagrant 配置# '2' - 当前配置文件的版本# |xxx| 获取返回的对象Vagrant.configure('2') do |config|# 2. 新增一台虚拟机的配置# 定义一个虚拟机名为 edgeconfig.vm.define 'edge' do |edge|# 3. 配置虚拟机所有使用的操作系统edge.vm.box = 'centos/7'# 重新分配虚拟机磁盘大小# 默认磁盘大小为 20GB,不能更改# 需要通过 disksize 插件(需要安装)来配置edge.disksize.size = '50GB'# 4. 配置网络# 会创建两个网卡(一个内网网卡,一个和宿主机连接的网卡)edge.vm.network 'private_network', ip: '192.168.56.101'edge.vm.hostname = 'edge'# 5. 配置虚拟机的硬件配置edge.vm.provider 'virtualbox' do |vb|# 静默的启动虚拟机,不需要窗口vb.gui = falsevb.name = 'edge'vb.memory = 2048vb.cpus = 1# 自定义参数,控制cpu使用频率 50%vb.customize ['modifyvm', :id, '--cpuexecutioncap', '50']endendend
Vagrantfile v1.1
# 1. 定义 Vagrant 配置# '2' - 当前配置文件的版本# |xxx| 获取返回的对象Vagrant.configure('2') do |config|# 2. 新增一台虚拟机的配置# 定义一个虚拟机名为 edgeconfig.vm.define 'edge' do |edge|# 3. 配置虚拟机所有使用的操作系统edge.vm.box = 'centos/7'# 重新分配虚拟机磁盘大小# 默认磁盘大小为 20GB,不能更改# 需要通过 disksize 插件(需要安装)来配置edge.disksize.size = '50GB'# 4. 配置网络# 会创建两个网卡(一个内网网卡,一个和宿主机连接的网卡)edge.vm.network 'private_network', ip: '192.168.56.101'edge.vm.hostname = 'edge'# 5. 配置虚拟机的硬件配置edge.vm.provider 'virtualbox' do |vb|# 静默的启动虚拟机,不需要窗口vb.gui = falsevb.name = 'edge'vb.memory = 2048vb.cpus = 1# 自定义参数,控制cpu使用频率 50%vb.customize ['modifyvm', :id, '--cpuexecutioncap', '50']end# 6. 创建 Provision 初始化虚拟机edge.vm.provision 'shell', path: 'script.sh'endend
script.sh 相同目录下
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
