rvn_tp22/README.md

67 lines
2.6 KiB
Markdown
Raw Normal View History

2023-12-11 12:08:38 +00:00
# RVN - TP2.2 : Ordonnancement de services sur une grappe
1. Provisionner des VMs **sur notre WAN** avec [Vagrant](https://developer.hashicorp.com/vagrant/docs)
2023-12-11 12:25:51 +00:00
2. Déployer [Consul](https://developer.hashicorp.com/consul/docs) et [Nomad](https://developer.hashicorp.com/nomad/docs)
3. Déployer des services
2023-12-11 12:08:38 +00:00
## 1. Provisionner des VMs
2023-12-11 12:25:51 +00:00
1. Vérifiez le bon fonctionnement de notre WAN
2. Écrivez chacun un [Vagrantfile](./Vagrantfile) pour lancer une VM sur le WAN, en suivant le schéma d'adressage suivant :
2023-12-11 12:08:38 +00:00
| 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` |
2023-12-11 12:25:51 +00:00
3. Vérifiez que les machines puissent discuter entre elles.
2023-12-11 13:41:11 +00:00
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
```
2023-12-11 13:44:59 +00:00
Dans le Vagrantfile :
```
config.vm.network "public_network", ip: "10.13.4.31", bridge: "tap0"
```
2023-12-11 13:41:11 +00:00
2023-12-11 12:25:51 +00:00
## 2. Déployer Consul et Nomad
1. Modifiez votre `Vagrantfile` pour qu'il provisionne votre VM avec [Consul](https://developer.hashicorp.com/consul/docs) et [Nomad](https://developer.hashicorp.com/nomad/docs)
Vous 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](./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
2023-12-11 13:39:40 +00:00
* Configs Nomad Deuxfleurs (dans sous-dossiers `deploy/`) : https://git.deuxfleurs.fr/Deuxfleurs/nixcfg/src/branch/main/cluster/prod/app
2023-12-11 12:25:51 +00:00
### 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
### Nomad
2023-12-11 12:08:38 +00:00
2023-12-11 12:25:51 +00:00
* Deployment guide: https://developer.hashicorp.com/nomad/tutorials/enterprise/production-deployment-guide-vm-with-consul
2023-12-11 12:08:38 +00:00