garage.hcl | ||
install_nomad_consul.sh | ||
README.md | ||
Vagrantfile |
RVN - TP2.2 : Ordonnancement de services sur une grappe
1. Provisionner des VMs
- Vérifiez le bon fonctionnement de notre WAN
- Écrivez chacun un Vagrantfile pour lancer une VM sur le WAN, en suivant le schéma d'adressage suivant :
Continent | IP sur continent | IP VM |
---|---|---|
Amerique | 10.13.1.3/24 |
10.13.1.31/24 |
Europe | 10.13.2.1/24 |
10.13.2.11/24 |
Asie | 10.13.3.4/24 |
10.13.3.41/24 |
- Vérifiez que les machines puissent discuter entre elles.
Il va falloir créer des interfaces Ethernet pour les brancher sur le switch :
sudo ip link add br0 type bridge
sudo ip tuntap add tap0 mode tap
sudo ip link set tap0 master br0
sudo ip link set tap0 up
sudo ip link set br0 up
Dans le Vagrantfile :
config.vm.network "public_network", ip: "10.13.4.31", bridge: "tap0"
2. Déployer Consul et Nomad
-
Modifiez votre
Vagrantfile
pour qu'il provisionne votre VM avec Consul et NomadVous pouvez aussi lancer des scripts sur les VMs sans rebooter, par exemple avec :
ssh ... ENV=xxx 'bash -s' < script.sh
Inspiration : ./install_nomad_consul.sh
Chaque continent est un "datacenter" : am
, eu
, as
. Il nous faut un Consul/Nomad serveur par zone géographique, les autres sont clients (configuration manuelle dans les .hcl
).
Docs
- Configs Nomad Deuxfleurs (dans sous-dossiers
deploy/
) : https://git.deuxfleurs.fr/Deuxfleurs/nixcfg/src/branch/main/cluster/prod/app
Consul
-
Follow this guide to provision a Vagrant VM with Consul: https://developer.hashicorp.com/consul/tutorials/certification-associate-tutorials/get-started-create-datacenter
-
Vagrant can auto-install Docker if you ask it to run containers: https://developer.hashicorp.com/vagrant/docs/provisioning/docker
-
Deployment guide: https://developer.hashicorp.com/consul/tutorials/production-deploy/deployment-guide
-
Register services to Consul: https://developer.hashicorp.com/consul/tutorials/get-started-vms/virtual-machine-gs-service-discovery