SEC.01
Le playbook
Le run démarre en lecture seule : les sondes de reconnaissance décident de la suite. Les étapes qui suivent sont adaptées à la distribution et à l'état trouvés — une vraie machine est rarement propre.
- 01reconk3s déjà installé ? (alors vérifie le nœud et saute)
- 02reconun autre Kubernetes tourne déjà ? (alors stop)
- 03reconCPU et RAM (k3s serveur : 2 cœurs et 2 Go minimum)
- 04reconports 6443/10250 libres ? 80/443 déjà pris (alors désactiver Traefik et ServiceLB) ?
- 05reconpare-feu actif (ufw ou firewalld) à configurer pour les réseaux du cluster
- 06reconchevauchement avec les CIDR k3s (10.42.0.0/16 pods, 10.43.0.0/16 services)
- 07reconroute par défaut actuelle (doit être identique après l’install)
- 08agirTélécharger l’installeur officielvérif
- 09agirAutoriser les réseaux du cluster (seulement si ufw ou firewalld est actif)vérif
- 10agirInstaller k3sdestructifvérif
- 11agirLe nœud est Readyvérif
- 12agirProtéger le kubeconfigvérif
SEC.02
Ce qu'elle vérifie
Chaque étape embarque sa propre vérification. Le run ne continue que si elle passe, donc ce que la recette annonce comme fait est ce qui est réellement sur le serveur.
- 01vérifTélécharger l’installeur officielVérifié par
head -1 /tmp/k3s-install.shattendu : #!/bin/sh - 02vérifAutoriser les réseaux du cluster (seulement si ufw ou firewalld est actif)Vérifié par
ufw status 2>/dev/null | grep -c '10.4[23].0.0/16' || firewall-cmd --zone=trusted --list-sourcesattendu : les deux CIDR 10.42.0.0/16 et 10.43.0.0/16 - 03vérifInstaller k3sVérifié par
systemctl is-active k3s && ip -4 route show defaultattendu : active, et la même route par défaut qu’en recon - 04vérifLe nœud est ReadyVérifié par
k3s kubectl get nodes --no-headers | grep -c " Ready"attendu : 1 - 05vérifProtéger le kubeconfigVérifié par
stat -c %a /etc/rancher/k3s/k3s.yamlattendu : 600
SEC.03
Les garde-fous
Les consignes non négociables que le run doit respecter, quoi qu'il trouve sur le serveur.
Ne l’installe pas si un autre Kubernetes tourne déjà. Moins de 2 Go de RAM : préviens et demande confirmation. Ne désactive jamais ufw/firewalld : ajoute seulement les CIDR du cluster. N’expose ni 6443, ni 10250, ni 8472/udp au public. Si les CIDR 10.42/10.43 chevauchent une route existante, stop et demande d’autres CIDR. Vérifie après l’install que la route par défaut n’a pas changé. Ne lis jamais le contenu de k3s.yaml ni du token dans /var/lib/rancher/k3s/server/token.
SEC.04
Comment une recette s'exécute dans Servor
Servor est zero-knowledge : la plateforme ne peut rien exécuter seule. Quand vous lancez cette recette, un run lit la reconnaissance, planifie les étapes et demande votre validation. Chaque commande approuvée est signée par votre navigateur — avec une clé que le serveur ne voit jamais — puis relayée telle quelle à l'agent, qui vérifie la signature localement avant d'exécuter.
recherche par intention — tapez « firewall », obtenez ufw
- 01Reconnaissance en lecture seule avant tout changement
- 02Chaque commande signée par votre navigateur, validée par vous
- 03Chaque étape vérifiée avant de continuer, chaque run conservé dans l'historique
SEC.05
Bouton Deploy on Servor
Vous maintenez k3s (Kubernetes léger) ou un projet qui en dépend ? Ajoutez ce bouton à votre README ou à votre site : en un clic, vos utilisateurs l'installent sur leur propre serveur.
SEC.06
D'autres recettes conteneurs
- 01Docker EngineDocker Engine + Compose depuis le dépôt officiel, service actif, hello-world vérifié.
- 02Docker ComposePlugin Docker Compose (docker compose), installé et vérifié.
- 03PodmanPodman (conteneurs sans daemon, rootless possible), vérifié.
- 04PortainerInterface web de gestion Docker Portainer CE (LTS), admin pré-configuré.
- 05WatchtowerMise à jour automatique et planifiée des conteneurs Docker.
Recette vérifiée
Lancez cette recette sur votre serveur
Connectez un serveur, lancez la recette, et validez chaque étape pendant que Servor exécute et vérifie. Plan gratuit, sans carte bancaire.