sauvegarde la base du portail et teste sa restauration chaque semaine

La sauvegarde ne couvrait que /etc, /home et /root : la base MariaDB du
portail et son .env (APP_KEY) en étaient absents. Ajoute aussi le réglage
du quota et du gabarit du projet des labs dans Ansible, la reprise des VM
au démarrage de l'hôte (Nova), et le script du test de capacité.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-10-09 17:28:50 +02:00
parent 424d0f6f79
commit 3f0b565e1e
11 changed files with 458 additions and 1 deletions

View file

@ -0,0 +1,12 @@
---
# Projet des labs (créé à l'étape 6) : ce rôle garantit son gabarit et ses
# quotas. Le quota est un filet de sécurité ; la vraie limite de capacité est
# la réserve mémoire de Nova (kolla/config/nova/nova-compute.conf), voir
# docs/capacite.md.
openstack_projet: paillasse
openstack_projet_quota:
instances: 40
cores: 40
ram: 30720
openstack_gabarits:
- { nom: eleve.petit, ram: 768, vcpus: 1, disque: 5 }

View file

@ -0,0 +1,39 @@
---
# Client openstack de Kolla, compte admin (clouds.yaml généré par post-deploy).
- name: lire les gabarits existants
ansible.builtin.command: openstack flavor list -f json
environment: &os_admin
PATH: "/opt/kolla-venv/bin:{{ ansible_env.PATH }}"
OS_CLIENT_CONFIG_FILE: /etc/kolla/clouds.yaml
OS_CLOUD: kolla-admin
register: openstack_gabarits_existants
changed_when: false
- name: créer les gabarits manquants
ansible.builtin.command: >-
openstack flavor create --public --ram {{ item.ram }} --vcpus {{ item.vcpus }}
--disk {{ item.disque }} {{ item.nom }}
environment: *os_admin
loop: "{{ openstack_gabarits }}"
when: item.nom not in (openstack_gabarits_existants.stdout | from_json | map(attribute='Name') | list)
- name: lire le quota de calcul du projet
ansible.builtin.command: openstack quota show --compute {{ openstack_projet }} -f json
environment: *os_admin
register: openstack_quota_brut
changed_when: false
- name: régler le quota de calcul du projet
ansible.builtin.command: >-
openstack quota set --instances {{ openstack_projet_quota.instances }}
--cores {{ openstack_projet_quota.cores }} --ram {{ openstack_projet_quota.ram }}
{{ openstack_projet }}
environment: *os_admin
vars:
openstack_quota_actuel: >-
{{ dict(openstack_quota_brut.stdout | from_json | map(attribute='Resource') |
zip(openstack_quota_brut.stdout | from_json | map(attribute='Limit'))) }}
when: >-
openstack_quota_actuel.instances != openstack_projet_quota.instances or
openstack_quota_actuel.cores != openstack_projet_quota.cores or
openstack_quota_actuel.ram != openstack_projet_quota.ram