52 lines
1.7 KiB
Ruby
52 lines
1.7 KiB
Ruby
server_ip = "192.168.33.10"
|
|
|
|
agents = { "agent1" => "192.168.33.11",
|
|
"agent2" => "192.168.33.12",
|
|
"agent3" => "192.168.33.13" }
|
|
|
|
server_script = <<-SHELL
|
|
apk add --no-cache curl sudo nano
|
|
export INSTALL_K3S_EXEC="--bind-address=#{server_ip} --node-external-ip=#{server_ip} --flannel-iface=eth1"
|
|
curl -sfL https://get.k3s.io | sh -
|
|
echo "Sleeping for 10 seconds to wait for k3s to start"
|
|
sleep 10
|
|
sudo chown vagrant:vagrant /etc/rancher/k3s/k3s.yaml
|
|
cp /var/lib/rancher/k3s/server/token /vagrant_shared
|
|
cp /etc/rancher/k3s/k3s.yaml /vagrant_shared
|
|
SHELL
|
|
|
|
agent_script = <<-SHELL
|
|
apk add --no-cache curl
|
|
export K3S_TOKEN_FILE=/vagrant_shared/token
|
|
export K3S_URL=https://#{server_ip}:6443
|
|
export INSTALL_K3S_EXEC="--flannel-iface=eth1"
|
|
curl -sfL https://get.k3s.io | sh -
|
|
SHELL
|
|
|
|
Vagrant.configure("2") do |config|
|
|
config.vm.box = "generic/alpine314"
|
|
|
|
config.vm.define "server", primary: true do |server|
|
|
server.vm.network "private_network", ip: server_ip
|
|
server.vm.synced_folder "./shared", "/vagrant_shared"
|
|
server.vm.hostname = "server"
|
|
server.vm.provider "virtualbox" do |vb|
|
|
vb.memory = "2048"
|
|
vb.cpus = "2"
|
|
end
|
|
server.vm.provision "shell", inline: server_script
|
|
end
|
|
|
|
agents.each do |agent_name, agent_ip|
|
|
config.vm.define agent_name do |agent|
|
|
agent.vm.network "private_network", ip: agent_ip
|
|
agent.vm.synced_folder "./shared", "/vagrant_shared"
|
|
agent.vm.hostname = agent_name
|
|
agent.vm.provider "virtualbox" do |vb|
|
|
vb.memory = "1024"
|
|
vb.cpus = "1"
|
|
end
|
|
agent.vm.provision "shell", inline: agent_script
|
|
end
|
|
end
|
|
end |