Set-OPS-Public/roles/template_cleanup/tasks/main.yml

86 lines
2.7 KiB
YAML
Raw Normal View History

---
- name: Refuser le nettoyage sans confirmation explicite
ansible.builtin.assert:
that:
- template_cleanup_confirm | bool
fail_msg: "Nettoyage refusé. Relancer avec -e template_cleanup_confirm=true"
- name: Nettoyer cloud-init
ansible.builtin.command: cloud-init clean --logs
changed_when: true
- name: Nettoyer le cache APT
ansible.builtin.apt:
clean: true
- name: Supprimer les paquets devenus inutiles
ansible.builtin.apt:
autoremove: true
- name: Rotation des journaux systemd
ansible.builtin.command: journalctl --rotate
changed_when: true
failed_when: false
- name: Vider les anciens journaux systemd
ansible.builtin.command: journalctl --vacuum-time=1s
changed_when: true
failed_when: false
- name: Vider /etc/machine-id
ansible.builtin.copy:
dest: /etc/machine-id
content: ""
owner: root
group: root
mode: "0444"
- name: Supprimer l'ancien machine-id D-Bus
ansible.builtin.file:
path: /var/lib/dbus/machine-id
state: absent
- name: Recréer le lien D-Bus vers /etc/machine-id
ansible.builtin.file:
src: /etc/machine-id
dest: /var/lib/dbus/machine-id
state: link
force: true
# Le gabarit ne doit transporter AUCUNE identite de reseau. Sans ce nettoyage, il emporte
# le `/etc/resolv.conf` du reseau ou il a ete fabrique : mesure du 2026-08-08 sur une VM
# neuve du tenant, `nameserver 192.168.12.254` — injoignable depuis son VLAN. La machine
# naissait donc sans resolution, cloud-init perdait son temps sur des `apt` qui
# echouaient, et la tache capable de reparer le fichier vit dans `serveur_debian`,
# c'est-a-dire APRES l'attente de premier demarrage.
#
# On le VIDE plutot que de le supprimer : un fichier absent se recree en silence avec
# n'importe quoi, un fichier qui s'explique dit ou regarder. Le resolveur reel est pose
# au deploiement depuis l'intrant `dns_amorcage`.
- name: Vider le resolveur herite du reseau de fabrication
ansible.builtin.copy:
dest: /etc/resolv.conf
owner: root
group: root
mode: "0644"
content: |
# Vide a la capture du gabarit (role template_cleanup).
# Le resolveur est pose au deploiement depuis l'intrant `dns_amorcage`
# (playbooks/groupes/serveur_debian.yml, avant le premier apt).
# Un gabarit ne transporte aucune identite de reseau.
- name: Supprimer les historiques shell
ansible.builtin.file:
path: "{{ item }}"
state: absent
loop:
- /root/.bash_history
- "/home/{{ template_cleanup_admin_user }}/.bash_history"
failed_when: false
- name: Message final
ansible.builtin.debug:
msg:
- "Nettoyage final terminé."
- "Éteindre la VM puis convertir en template Proxmox."