--- # É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