66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
# RVN - TP2.2 : Ordonnancement de services sur une grappe
|
|
|
|
1. Provisionner des VMs **sur notre WAN** avec [Vagrant](https://developer.hashicorp.com/vagrant/docs)
|
|
2. Déployer [Consul](https://developer.hashicorp.com/consul/docs) et [Nomad](https://developer.hashicorp.com/nomad/docs)
|
|
3. Déployer des services
|
|
|
|
## 1. Provisionner des VMs
|
|
|
|
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 :
|
|
|
|
| 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` |
|
|
|
|
3. 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
|
|
|
|
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
|
|
|
|
* 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
|
|
|
|
### Nomad
|
|
|
|
* Deployment guide: https://developer.hashicorp.com/nomad/tutorials/enterprise/production-deployment-guide-vm-with-consul
|
|
|