Files
factory/ansible/arcodange/factory
CI BotandClaude Opus 5 ba791ed055 fix(ci_base_image) — le contexte de build doit être SUR la machine, pas sur le contrôleur
Le playbook 03_cicd est mort sur les deux hôtes :

  "/Users/…/roles/ci_base_image/files/" is not an existing directory

`docker_image_build` s'exécute SUR LA CIBLE : son `path:` est un chemin de la
cible. Je passais `{{ role_path }}/files/`, un chemin du CONTRÔLEUR.

Le motif venait du rôle `playwright`, qui l'emploie LÉGITIMEMENT parce qu'il
construit en local. Recopié pour un build distant, il ne pouvait pas marcher —
et aucune relecture ne l'aurait montré, seule l'exécution le dit.

⚠ L'échec est arrivé AVANT les tâches qui déploient le runner : les deux
runners sont restés `Up 6 days`, rien n'a été cassé. Le seul effet fut un jeton
d'API Gitea créé par le rôle gitea_token, son comportement normal.

Le contexte est désormais déposé sur la machine (`/tmp/ci-base-image`), et la
RECONSTRUCTION DEVIENT CONDITIONNELLE : `never` en régime normal — le playbook
ne rebâtit pas 3,3 Go à chaque passage — mais `always` dès que le Dockerfile a
CHANGÉ sur la machine. Ajouter une bibliothèque devient donc effectif sans avoir
à penser à un drapeau.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-07-29 23:41:32 +02:00
..
2024-08-16 13:53:03 +02:00
2024-07-05 16:16:11 +02:00
2024-07-05 16:16:11 +02:00
2024-12-15 22:13:03 +01:00

Ansible Collection - arcodange.factory

Documentation for the collection.

MY_TOKEN= #<my token (see https://www.duckdns.org/domains)>
kubectl create secret generic traefik-duckdns-token --from-literal="DUCKDNS_TOKEN=$MY_TOKEN" -n kube-system
%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%%
timeline
    title Playbook Execution Sequence
    section 01_system
        rpi
            : set hostname
        dns
            : install pi-hole
        ssl
            : step-ca
            : fetch root certificate
            : build docker image with CA
        prepare_disks
            : list partitions
            : format disk
            : mount disk
        system_docker
            : install docker
            : configure docker storage
            : restart docker
        longhorn
            : deploy longhorn
        k3s
            : prepare inventory
            : install k3s collection
            : install socat
            : deploy k3s cluster
            : configure kubeconfig
            : configure traefik
            : configure cert-manager
    section 02_setup
        backup_nfs
            : create RWX volume
            : create recurring job
            : deploy NFS
            : mount NFS
        postgres
            : create database
            : create user
        gitea
            : deploy gitea
            : create admin user
            : create organization
    section 03_cicd
        cicd : CI/CD
        gitea_token
            : generate token
        deploy_docker_compose
            : deploy gitea action
        argocd
            : generate token
            : deploy argocd
    section 04_tools
        Hashicorp Vault
            : gitea_token
            : hashicorp_vault
        Crowdsec
            : crowdsec
    section 05_backup
        Gitea Backup
            : gitea
        K3s PVC Backup
            : k3s_pvc
        Postgres Backup
            : create backup script
            : create restore script