require 'ipaddr' #require 'yaml' ENV["LC_ALL"] = 'en_US.utf8' myBox = 'debian/buster64' myProvider = 'libvirt' pgver = 11 start_ip = '10.20.89.51' etcd_nodes = [] patroni_nodes = [] sup_nodes = ['s1'] # install check_patroni from the local repo (test) or from pip (official) cp_origin = 'test' # [test, official] Vagrant.configure(2) do |config| config.vm.provider myProvider next_ip = IPAddr.new(start_ip).succ host_ip = (IPAddr.new(start_ip) & "255.255.255.0").succ.to_s nodes_ips = {} ( patroni_nodes + etcd_nodes + sup_nodes ).each do |node| nodes_ips[node] = next_ip.to_s next_ip = next_ip.succ end # don't mind about insecure ssh key config.ssh.insert_key = false # https://vagrantcloud.com/search. config.vm.box = myBox # hardware and host settings config.vm.provider 'libvirt' do |lv| lv.cpus = 1 lv.memory = 512 lv.watchdog model: 'i6300esb' lv.default_prefix = 'patroni_' lv.qemu_use_session = false end # disable default share (NFS is not working directly in DEBIAN 10) config.vm.synced_folder ".", "/vagrant", type: "rsync" config.vm.synced_folder "/home/benoit/git/dalibo/check_patroni", "/check_patroni", type: "rsync" ## allow root@vm to ssh to ssh_login@network_1 #config.vm.synced_folder 'ssh', '/root/.ssh', type: 'rsync', # owner: 'root', group: 'root', # rsync__args: [ "--verbose", "--archive", "--delete", "--copy-links", "--no-perms" ] # system setup for sup nodes (sup_nodes).each do |node| config.vm.define node do |conf| conf.vm.network 'private_network', ip: nodes_ips[node] conf.vm.provision 'icinga2-setup', type: 'shell', path: 'provision/icinga2.bash', args: [ node ], preserve_order: true conf.vm.provision 'check_patroni', type: 'shell', path: 'provision/check_patroni.bash', args: [ cp_origin ], preserve_order: true end end end