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

43 lines
2 KiB
YAML
Raw Normal View History

---
- name: Exiger un hôte de source d'artefacts quand l'intégration est active
ansible.builtin.assert:
that:
- client_artefacts_hote | length > 0
fail_msg: >-
client_artefacts est actif mais aucun hôte ne porte `serveur_artefacts`.
Déclarer le service au plan, ou forcer client_artefacts_actif=false.
when: client_artefacts_actif | bool
- name: Diriger apt vers la source de l'écosystème
ansible.builtin.copy:
dest: "{{ client_artefacts_fichier }}"
content: |
// GÉNÉRÉ par Set-OPS (rôle client_artefacts). NE PAS éditer à la main.
// Les paquets viennent de l'écosystème, pas de six serveurs étrangers.
Acquire::http::Proxy "http://{{ client_artefacts_hote }}.{{ domaine_interne }}:{{ client_artefacts_port }}";
{% if client_artefacts_https | bool %}
Acquire::https::Proxy "http://{{ client_artefacts_hote }}.{{ domaine_interne }}:{{ client_artefacts_port }}";
{% else %}
// « DIRECT » EST OBLIGATOIRE, PAS DECORATIF (mesure du 2026-08-23).
//
// apt fait HERITER `Acquire::https::Proxy` de la valeur HTTP quand elle n'est pas
// definie. Poser le seul proxy HTTP envoyait donc AUSSI les depots tiers en HTTPS
// dans le cache, qui refuse les tunnels — a juste titre :
// « Invalid response from proxy: HTTP/1.0 403 CONNECT denied »
// et packages.smallstep.com devenait injoignable pour toute la flotte.
Acquire::https::Proxy "DIRECT";
{% endif %}
owner: root
group: root
mode: "0644"
when: client_artefacts_actif | bool
# L'écosystème qui RETIRE sa source d'artefacts doit voir ses hôtes revenir à l'amont,
# sans quoi ils resteraient braqués sur une machine disparue et n'installeraient plus
# rien. Une intégration qui ne sait pas se retirer est un piège différé.
- name: Retirer la direction quand l'écosystème n'a pas de source
ansible.builtin.file:
path: "{{ client_artefacts_fichier }}"
state: absent
when: not (client_artefacts_actif | bool)