construit l'image paillasse-debian, crée le projet OpenStack et teste la console série
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
21c9de6d10
commit
44384847e5
8 changed files with 331 additions and 1 deletions
71
docs/runbooks/images.md
Normal file
71
docs/runbooks/images.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Runbook — Image `paillasse-debian`
|
||||
|
||||
## Construire (ou reconstruire) l'image
|
||||
|
||||
Sur le serveur, en root. Le script ne supprime jamais une image existante
|
||||
tout seul (règle 3) : il s'arrête si `paillasse-debian` existe déjà.
|
||||
|
||||
```
|
||||
ssh paillasse
|
||||
sudo bash /opt/construction-image/construire-paillasse-debian.sh
|
||||
```
|
||||
|
||||
Déployé par `ansible/images.yml` (installe `libguestfs-tools`, copie le
|
||||
script et `paillasse-contenus/07-sql/lycee.sql` vers
|
||||
`/opt/construction-image/` sur le serveur) :
|
||||
|
||||
```
|
||||
cd ansible && script -q /dev/null ansible-playbook images.yml -i inventory.ini
|
||||
```
|
||||
|
||||
Durée : quelques minutes (téléchargement ~700 Mo + personnalisation).
|
||||
|
||||
## Ce que contient l'image
|
||||
|
||||
Depuis `debian-12-genericcloud-amd64.qcow2` officiel (somme SHA512 vérifiée) :
|
||||
|
||||
- `sudo`, `qemu-guest-agent` (correction automatique), getty actif sur `ttyS0` (console série).
|
||||
- Utilisateur `eleve` (groupe `sudo`, mot de passe `eleve`).
|
||||
- Outils réseau : `iproute2`, `iputils-ping`, `traceroute`, `tcpdump`, `dnsutils`, `curl`, `netcat-openbsd`.
|
||||
- `openssl`, `nano`, `vim`, `htop`.
|
||||
- `nginx`, `mariadb-server`, `frr` installés mais **désactivés** (activés par l'étape `preparation` de certains labs, ex. lab 07).
|
||||
- `/opt/labs/07/lycee.sql` : jeu de données du lab 07 (voir `paillasse-contenus/07-sql/`).
|
||||
- `/opt/paquets/tree_*.deb` : paquet `tree` pour le lab 02, **volontairement non installé** (le lab demande à l'élève de l'installer lui-même ; voir l'écart avec `paillasse-contenus/README.md` noté dans le journal du 2026-10-07).
|
||||
- **Pas de cloud-init** (retiré) : les réseaux de lab n'ont ni DHCP ni service de métadonnées joignable, cloud-init n'attendrait que pour rien à chaque démarrage. La correction automatique passe par l'agent QEMU, pas par cloud-init/user-data.
|
||||
|
||||
Propriétés Glance : `hw_qemu_guest_agent=yes`, `hw_rng_model=virtio`, `os_type=linux`, visibilité `public`.
|
||||
|
||||
## Se connecter à une VM par la console série
|
||||
|
||||
```
|
||||
ssh paillasse
|
||||
sudo -i
|
||||
export PATH=/opt/kolla-venv/bin:$PATH
|
||||
export OS_CLIENT_CONFIG_FILE=/etc/kolla/clouds-paillasse.yaml # ou clouds.yaml + OS_CLOUD=kolla-admin
|
||||
export OS_CLOUD=paillasse-service
|
||||
openstack console url show --serial <nom-ou-id-de-la-vm>
|
||||
```
|
||||
|
||||
Donne une URL `ws://10.10.0.1:6083/?token=...`, **jointe uniquement depuis le
|
||||
réseau interne** (pare-feu : non exposée sur `eno1`). Pour un test manuel
|
||||
depuis le serveur :
|
||||
|
||||
```
|
||||
/usr/bin/python3 /opt/construction-image/test-console-serie.py "<url>" "une-commande"
|
||||
```
|
||||
|
||||
(nécessite le module Python `websocket-client`, déjà présent sur le serveur).
|
||||
Le script attend `login:`, envoie `eleve`, attend `Password:`, envoie `eleve`,
|
||||
puis tape la commande. **La console série est un flux continu** : si un essai
|
||||
précédent a laissé le prompt au milieu d'une saisie (ex. en attente d'un mot
|
||||
de passe), le script suivant hérite de cet état — relire d'abord l'état
|
||||
actuel avant d'envoyer quoi que ce soit, comme fait le script.
|
||||
|
||||
Plus tard (étape 9), c'est le proxy Go qui jouera ce rôle côté portail, avec
|
||||
xterm.js côté navigateur, et un jeton à usage unique rangé dans Redis au lieu
|
||||
d'un accès direct à `10.10.0.1:6083`.
|
||||
|
||||
## Vérifié le 2026-10-07
|
||||
|
||||
- VM `vm-test-console` (réseau de test `reseau-test`, 192.168.100.0/24, sans DHCP) démarrée en ~25 s.
|
||||
- Console série : prompt `localhost login:` affiché, connexion `eleve`/`eleve` réussie, commande `whoami && hostname && echo ---OK---` exécutée avec la sortie attendue.
|
||||
Loading…
Add table
Add a link
Reference in a new issue