ajoute le réseau pour OpenStack : dummy0, paire veth, NAT restreint au réseau externe

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-10-07 11:40:34 +02:00
parent e879a214a9
commit 87c8aac5f5
14 changed files with 247 additions and 0 deletions

View file

@ -0,0 +1,88 @@
---
# Étape 4 : réseau pour OpenStack. N'est jamais exécuté seul : ce rôle tourne
# dans le même play que `durcissement` (voir ansible/reseau-openstack.yml),
# pour que le pare-feu soit re-rendu avec la règle qui autorise ce nouveau
# sous-réseau — et pour réutiliser son filet de sécurité anti-coupure.
- name: charger le module noyau dummy au démarrage
ansible.builtin.copy:
content: "dummy\n"
dest: /etc/modules-load.d/reseau-openstack.conf
mode: "0644"
- name: charger le module dummy maintenant (sans attendre le prochain redémarrage)
community.general.modprobe:
name: dummy
state: present
- name: déployer l'interface dummy0 (management interne Kolla)
ansible.builtin.template:
src: 10-dummy0.netdev.j2
dest: /etc/systemd/network/10-dummy0.netdev
mode: "0644"
notify: redémarrer systemd-networkd
- name: déployer le réseau de dummy0
ansible.builtin.template:
src: 10-dummy0.network.j2
dest: /etc/systemd/network/10-dummy0.network
mode: "0644"
notify: redémarrer systemd-networkd
- name: déployer la paire veth (externe OpenStack)
ansible.builtin.template:
src: 20-veth-ext.netdev.j2
dest: /etc/systemd/network/20-veth-ext.netdev
mode: "0644"
notify: redémarrer systemd-networkd
- name: déployer le réseau du bout OVS de la paire veth (pas d'IP, pour Neutron)
ansible.builtin.template:
src: 21-veth-ext-ovs.network.j2
dest: /etc/systemd/network/21-veth-ext-ovs.network
mode: "0644"
notify: redémarrer systemd-networkd
- name: déployer le réseau du bout passerelle de la paire veth
ansible.builtin.template:
src: 22-veth-ext-gw.network.j2
dest: /etc/systemd/network/22-veth-ext-gw.network
mode: "0644"
notify: redémarrer systemd-networkd
- name: "activer systemd-networkd (ne gère que les interfaces déclarées, eno1 reste sous ifupdown)"
ansible.builtin.systemd:
name: systemd-networkd
enabled: true
# Pas de state ici : le handler s'occupe du (re)démarrage une fois tous les
# fichiers en place, pour n'appliquer qu'une seule fois.
- name: appliquer les nouvelles interfaces réseau
ansible.builtin.meta: flush_handlers
- name: activer le routage IPv4 (nécessaire au NAT)
ansible.posix.sysctl:
name: net.ipv4.ip_forward
value: "1"
sysctl_file: /etc/sysctl.d/99-reseau-openstack.conf
state: present
reload: true
- name: créer le répertoire des règles nftables additionnelles
ansible.builtin.file:
path: /etc/nftables.d
state: directory
owner: root
group: root
mode: "0750"
- name: déployer le NAT masquerade pour le réseau externe OpenStack
ansible.builtin.template:
src: 10-nat-openstack.conf.j2
dest: /etc/nftables.d/10-nat-openstack.conf
mode: "0640"
owner: root
group: root
# Handler défini dans le rôle durcissement (même play) : nft relit le fichier
# principal ET ses inclusions en une seule recharge.
notify: recharger nftables