consul-demo
79 строк · 1.7 Кб
1# -*- mode: ruby -*-
2# vi: set ft=ruby :
3
4Vagrant.configure("2") do |config|
5
6config.vm.provision "shell" do |s|
7ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_ed25519.pub").first.strip
8s.inline = <<-SHELL
9echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys
10echo #{ssh_pub_key} >> /root/.ssh/authorized_keys
11SHELL
12end
13
14#########
15# Consul cluster
16###
17
18N = 3
19(1..N).each do |machine_id|
20config.vm.define "consul-#{machine_id}" do |consul|
21consul.vm.box = "gutehall/fedora40"
22consul.vm.provider "parallels" do |p|
23p.memory = "1024"
24p.cpus = "2"
25end
26consul.vm.hostname = "consul-#{machine_id}"
27end
28end
29
30#########
31# Load balancer
32###
33
34N = 1
35(1..N).each do |machine_id|
36config.vm.define "lb-#{machine_id}" do |lb|
37lb.vm.box = "gutehall/fedora40"
38lb.vm.provider "parallels" do |p|
39p.memory = "1024"
40p.cpus = "2"
41end
42lb.vm.hostname = "lb-#{machine_id}"
43lb.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
44end
45end
46
47#########
48# Gateway
49###
50
51N = 3
52(1..N).each do |machine_id|
53config.vm.define "gw-#{machine_id}" do |gw|
54gw.vm.box = "gutehall/fedora40"
55gw.vm.provider "parallels" do |p|
56p.memory = "1024"
57p.cpus = "2"
58end
59gw.vm.hostname = "gw-#{machine_id}"
60end
61end
62
63#########
64# Service
65###
66
67N = 2
68(1..N).each do |machine_id|
69config.vm.define "srv-#{machine_id}" do |srv|
70srv.vm.box = "gutehall/fedora40"
71srv.vm.provider "parallels" do |p|
72p.memory = "1024"
73p.cpus = "2"
74end
75srv.vm.hostname = "srv-#{machine_id}"
76end
77end
78
79end
80