Avant un test a froid par un sysadmin etranger, on corrige les blocages d'accueil (mauvaises raisons d'echouer) : - QUICKSTART.md : parcours lineaire zero -> ecosysteme deploye sur Proxmox (modele -> instance -> config -> golden template -> instancier -> cloner-vm -> deployer), honnete sur prerequis et seam creation-de-VM. - README : reoriente "moteur generique pour un hebergeur" (plus "infra Chezlepro"), pointeur QUICKSTART. - Makefile : garde-fou _instance-requise (message utile + liste des modeles si l'instance manque, au lieu d'un faux "valide" silencieux) ; make aide route vers QUICKSTART. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.5 KiB
Démarrage rapide — de zéro à ton écosystème souverain
Tu débarques avec une grappe Proxmox vierge et tu veux monter ton écosystème numérique. Voici le chemin, de bout en bout. Set-OPS est le moteur ; tu vas créer ton instance à partir d'un modèle, puis déployer.
Concepts en 10 s : tu décris un plan (quelles VM, quels services), le moteur génère l'inventaire, et Ansible déploie. Tu n'édites jamais l'inventaire à la main. Détails :
docs/plan-et-generation.md.
0. Prérequis (à toi de fournir)
- une grappe Proxmox où tu es admin (API activée) ;
- une machine de pilotage Linux avec Ansible, Python 3, make,
git(etnodepour le garde-fou JS du GUI, optionnel) ; - un token API Proxmox ;
- une paire de clés SSH (la publique ira dans les VM via cloud-init) ;
- un mot de passe Ansible Vault (pour chiffrer tes secrets).
1. Cloner le moteur
git clone <url-de-Set-OPS> Set-OPS && cd Set-OPS
2. Choisir un modèle et créer ton instance
Les modèles sont dans exemples/modeles/ (voir leur README). Choisis selon ton offre :
socle, presence-web, forge, identite, observabilite, integral.
cp -r exemples/modeles/presence-web ../mon-instance # ton instance, ailleurs
ln -s ../mon-instance instance # le moteur la trouve via ce lien
(Alternative au symlink : export SETOPS_INSTANCE=../mon-instance.)
3. Renseigner ton instance (« tes couleurs »)
instance/inventories/production/group_vars/all.yml→domaine_interne(ex.monorg.internal) ;instance/plan/nomenclature.yml→ ton supernet (ex.10.20.0.0/16) ;instance/plan/domaines.yml→ ton domaine public ;instance/plan/serveurs.yml→ placement Proxmox (nœud, stockage, disque, mémoire, cœurs).
Tu peux aussi le faire dans le GUI plus tard (make inventaire-ui).
4. Configurer Proxmox et tes secrets
make config # renseigne API host/user/port, nœud, stockage, VMID du template...
Place ton token API et tes secrets dans le Vault de l'instance
(instance/inventories/lab/group_vars/proxmox.vault.yml, à partir du .example,
chiffré avec ansible-vault). Exporte ton mot de passe Vault, ex. :
export ANSIBLE_VAULT_PASSWORD_FILE=~/.config/setops-vault-pass
5. Construire le golden template Debian 13 (UNE seule fois)
Une grappe vierge n'a aucun template. Crée une VM Debian 13 vanille, rends-la joignable par Ansible, puis :
make preparer-modele # socle + durcissement + cloud-init + qemu-guest-agent...
make verifier-modele
make nettoyer-modele CONFIRMER=true
Convertis ensuite la VM en template Proxmox nommé modele-debian13 (le nom de
clone source par défaut). Détails et procédure : docs/vm-lifecycle.md et
docs/procedure-template-debian13-proxmox.md.
6. Générer ton inventaire depuis le plan
make instancier # montre ce que le plan produit (diff)
make instancier-appliquer FORCE=1 # 1re génération : écrit instance/inventories/production/hosts.yml
Tes hôtes sont là, en état planifie. make serveurs te montre leurs VMID/IP dérivés.
7. Créer les VM (clone du template + cloud-init)
Pour chaque hôte, avec ses valeurs dérivées (make serveurs) :
make cloner-vm HOTE=infra-dns-01 VMID=<vmid> ADRESSE_IP=<ip> VLAN=<vlan> PASSERELLE=<gw>
(Les valeurs de nœud/stockage/template viennent de make config. Note honnête :
à ce stade la création de VM prend ces paramètres par hôte ; l'intégration
complète « plan → création » est la prochaine frontière.)
8. Activer puis déployer
Passe l'hôte en etat: actif dans instance/plan/serveurs.yml, régénère, déploie :
make instancier-appliquer
make deployer HOTE=infra-dns-01 # configure l'hôte selon ses groupes
# ou, par couche :
make deployer-groupe GROUPE=serveur_postgresql
Les déploiements de groupe ne ciblent que les hôtes actifs.
9. Ensuite : tu vis dans le plan
Édite le plan (GUI make inventaire-ui, ou les registres instance/plan/),
make instancier-appliquer, make deployer. Tu ne touches jamais hosts.yml.
Valider à tout moment
make inventaire-verifier # registres + inventaire + garde-fous
make verifier # + ansible-lint + --syntax-check
Ordre de mise en place des services : docs/catalogue-services.md. Modèle,
registres et règle d'or : docs/plan-et-generation.md et AGENTS.md.