consul-demo

Форк
1
/
Vagrantfile 
79 строк · 1.7 Кб
1
# -*- mode: ruby -*-
2
# vi: set ft=ruby :
3

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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.