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:
parent
424d0f6f79
commit
3f0b565e1e
11 changed files with 458 additions and 1 deletions
12
ansible/roles/openstack-projet/defaults/main.yml
Normal file
12
ansible/roles/openstack-projet/defaults/main.yml
Normal 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 }
|
||||
39
ansible/roles/openstack-projet/tasks/main.yml
Normal file
39
ansible/roles/openstack-projet/tasks/main.yml
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue