summaryrefslogtreecommitdiff
path: root/docs/VM_KONENPAN_CREATION.md
blob: 6ba9f28f76629af2c276ebd812d3355ef5b5be31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
# VM_KONENPAN_CREATION

## Objectif
Documenter la creation complete de la VM `Konenpan` (de A a Z) sur infrastructure KVM/libvirt, avec un volume LVM de `1T`.

## Specification demandee
- Nom de la VM: `konenpan`
- Taille stockage: `1T`
- Hyperviseur: KVM/QEMU via libvirt (`virsh`, `virt-install`)
- Usage: base d'hebergement de la plateforme medias (IAM, stockage, services applicatifs)

## Parametres cibles
- RAM: `8192` MB (8 GB, a ajuster)
- vCPU: `4` (a ajuster)
- Bridge reseau: `br0`
- Groupe de volumes LVM: `vgarauco0`
- Volume LVM: `vgarauco0-konenpan`
- OS variant: `ubuntu24.04` (Ubuntu Server 24.04.1)
- ISO: `/var/lib/libvirt/images/ubuntu-24.04.1-live-server-amd64.iso`

## Procedure complete (A a Z)

### 1) Verification des prerequis sur l'hote
```bash
# Verifier les commandes necessaires
command -v virsh
command -v virt-install
command -v lvcreate

# Installer les dependances si manquantes (commande issue du projet Araucaria)
apt-get update && apt-get install -y libvirt-clients libvirt-daemon-system qemu-kvm virtinst

# Verifier le service libvirt
systemctl status libvirtd
systemctl enable --now libvirtd
```

### 2) Verification de l'existant (VMs, reseau, stockage)
```bash
# VMs existantes
virsh list --all
virsh list --all --name

# Reseaux/bridges
virsh net-list --all
brctl show
ip link show type bridge

# Stockage LVM
vgs vgarauco0
lvs vgarauco0 --units g -o lv_name,lv_size
virsh domblklist --all | grep -E "/dev/mapper" || true
```

### 3) Creation du volume LVM 1T pour Konenpan
```bash
# Creation du LV de 1 To
lvcreate -L 1T -n konenpan vgarauco0

# Verifications
lvs vgarauco0 | grep konenpan
ls -lh /dev/mapper/vgarauco0-konenpan
```

### 4) Verification de l'ISO Ubuntu
```bash
# ISO imposee pour ce runbook
ISO_UBUNTU="/var/lib/libvirt/images/ubuntu-24.04.1-live-server-amd64.iso"
echo "ISO selectionnee: $ISO_UBUNTU"

# Verifier acces en lecture
test -r "$ISO_UBUNTU" && echo "ISO OK" || echo "ISO manquante/inaccessible"
```

### 5) Verifier que la VM konenpan n'existe pas deja
```bash
virsh list --all | grep konenpan || true

# Si necessaire (attention: supprime la definition libvirt, pas le LV)
# virsh destroy konenpan 2>/dev/null
# virsh undefine konenpan
```

### 6) Creation de la VM (nouvelle installation depuis ISO)
```bash
virt-install \
  --name konenpan \
  --memory 8192 \
  --vcpus 4 \
  --os-variant ubuntu24.04 \
  --disk path=/dev/mapper/vgarauco0-konenpan,bus=virtio \
  --network bridge=br0,model=virtio \
  --graphics vnc,listen=0.0.0.0 \
  --cdrom /var/lib/libvirt/images/ubuntu-24.04.1-live-server-amd64.iso \
  --noautoconsole
```

### 6.1) Connexion VNC pour installer le systeme
```bash
# Sur l'hote hyperviseur: recuperer l'ecran VNC attribue
virsh vncdisplay konenpan
# Exemple de sortie: :0 (port TCP 5900), :1 (5901), etc.

# Option pratique: calculer automatiquement le port VNC
VNC_DISPLAY=$(virsh vncdisplay konenpan | tr -d ':')
VNC_PORT=$((5900 + VNC_DISPLAY))
echo "Display :$VNC_DISPLAY -> Port $VNC_PORT"
```

```bash
# Si vous etes connecte directement a l'hote (avec interface graphique)
vncviewer 127.0.0.1:$VNC_PORT
```

```bash
# Si vous etes sur un poste distant: creer un tunnel SSH
# (a lancer depuis votre poste local)
ssh -L 5900:127.0.0.1:$VNC_PORT <user>@<hote_hyperviseur>

# Puis, depuis le poste local:
vncviewer 127.0.0.1:5900
```

### 7) Alternative: creation en mode import (si OS deja present sur disque)
```bash
virt-install \
  --name konenpan \
  --memory 8192 \
  --vcpus 4 \
  --os-variant ubuntu24.04 \
  --disk path=/dev/mapper/vgarauco0-konenpan,bus=virtio,cache=none \
  --network bridge=br0,model=virtio \
  --graphics vnc,listen=0.0.0.0 \
  --import \
  --noautoconsole
```

### 8) Verification immediate apres creation
```bash
virsh list --all | grep konenpan
virsh dominfo konenpan
virsh dumpxml konenpan
virsh domblklist konenpan
virsh domiflist konenpan
```

### 9) Demarrage, console et acces VNC
```bash
# Demarrer
virsh start konenpan
virsh list --all
virsh domstate konenpan

# Console texte
virsh console konenpan
# Quitter la console: Ctrl+]

# Afficher l'ecran VNC attribue
virsh vncdisplay konenpan

# Option tunnel SSH depuis un poste local
# ssh -L 5900:127.0.0.1:5900 araucaria
# puis: vncviewer localhost:5900
```

### 10) Partitionnement recommande pendant l'installation (ecran VNC)
Pour `konenpan` (1T), la meilleure approche est de separer le systeme et les donnees avec LVM:

- `root (/)`: `120G` (OS + paquets)
- `/var`: `200G` (logs, cache, services)
- `/data`: `reste du disque` (applications/donnees medias)
- `swap`: pas de partition dediee (utiliser un swapfile apres installation)

#### Procedure dans l'ecran "Storage configuration"
1. Selectionner `/dev/vda` puis valider pour initialiser le disque (table GPT).
2. Choisir `Create volume group (LVM)` et creer un VG (exemple: `vg_konenpan`) sur `/dev/vda`.
3. Creer les volumes logiques (LV):
   - `lv_root` taille `120G`, format `ext4`, montage `/`
   - `lv_var` taille `200G`, format `ext4`, montage `/var`
   - `lv_data` taille `restant` (ou environ `670G`), format `ext4`, montage `/data`
4. Verifier qu'un point de montage `/` existe (obligatoire pour continuer).
5. Valider avec `Done`, confirmer l'ecriture des changements, puis poursuivre l'installation Ubuntu.

#### Si le bouton "Done" est grise (cas frequent)
Cause: l'installateur n'a pas de disque/partition de boot selectionne.

Dans certains ecrans Subiquity, `fat32` n'apparait pas dans la liste des formats.
Dans ce cas, suivre le mode de boot detecte:

**Cas A - UEFI (recommande)**
1. Selectionner `/dev/vda` puis `Add GPT partition` de `512M` a `1G`.
2. Si `fat32` est disponible: format `fat32`, mount `/boot/efi`.
3. Si `fat32` n'est pas disponible: choisir `Leave unformatted`, mount `/boot/efi` (l'installateur traitera cette partition comme ESP).
4. Marquer `/dev/vda` comme boot device (`Use as boot device`) si l'option est proposee.

**Cas B - BIOS (legacy)**
1. Selectionner `/dev/vda` puis `Add GPT partition` de `1M`.
2. Choisir `Leave unformatted` et affecter le role `bios_grub` (si propose par l'UI).
3. Ne pas utiliser `/boot/efi` en mode BIOS.

Puis, dans les 2 cas:
1. Creer le LVM sur le reste du disque (`vg_konenpan` + `lv_root`, `lv_var`, `lv_data`).
2. Verifier au minimum:
   - un montage `/` existe
   - un boot target existe (`/boot/efi` en UEFI, ou `bios_grub` en BIOS)
3. Revenir sur `Done`: le bouton doit devenir actif.

Remarque: si tout le disque a deja ete consomme par le PV LVM, recreer le schema en reservant d'abord la partition de boot, puis utiliser le reste pour le PV LVM.

#### Cas reel: l'installation est lancee sans selection explicite "boot"
Si l'installateur a accepte la configuration et a demarre, c'est souvent valide.
Dans ce cas, faire une verification apres le premier redemarrage:

```bash
# Dans la VM
test -d /sys/firmware/efi && echo "Boot UEFI" || echo "Boot BIOS"
lsblk -f
df -h
```

Verifier ensuite la presence de GRUB:

```bash
# Dans la VM
sudo grub-install --version
sudo update-grub
```

Si la VM ne boote pas apres retrait de l'ISO:
- remettre temporairement l'ISO,
- booter en mode rescue/live,
- chroot sur le systeme installe,
- reinstaller GRUB (UEFI ou BIOS selon le mode detecte).

#### Option plus simple (si tu veux aller plus vite)
- Utiliser "Use an entire disk" + LVM automatique (un seul grand `/`).
- Cette option est rapide, mais moins pratique a long terme pour isoler logs/donnees.

#### Swap (recommande en swapfile, apres installation)
Oui, ici on ne cree pas de partition swap dediee. Sur Ubuntu Server, un swapfile est plus simple a gerer.

Taille conseillee pour `konenpan` (RAM 8G): `8G` de swap.

```bash
# Dans la VM, apres installation
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Rendre persistant
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# Verifier
swapon --show
free -h
```

### 11) Fin d'installation OS: retirer le CD-ROM puis redemarrer
```bash
# Identifier les disques et le lecteur CD-ROM
virsh domblklist konenpan

# Retirer le CD-ROM persistant (exemple device sda, adapter si besoin)
virsh detach-disk konenpan sda --persistent

# Verifier puis redemarrer
virsh domblklist konenpan
virsh reboot konenpan
# ou:
# virsh shutdown konenpan && virsh start konenpan
```

### 12) Configuration reseau dans la VM (netplan)
```bash
# Dans la VM
ip addr show
ls /etc/netplan/
sudoedit /etc/netplan/00-installer-config.yaml

# Appliquer
sudo netplan try
sudo netplan apply

# Verifier DNS
cat /etc/resolv.conf
nslookup araucaria.local
nslookup google.com
```

### 13) Synchronisation de l'heure vers araucaria (NTP client)
```bash
# Dans la VM
sudo apt-get update
sudo apt-get install -y chrony

# Sauvegarder la configuration par defaut
sudo cp /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak.$(date +%F-%H%M%S)

# Declarer araucaria comme source NTP principale
echo "server araucaria iburst prefer" | sudo tee /etc/chrony/sources.d/araucaria.sources

# Redemarrer et activer le service
sudo systemctl enable --now chrony
sudo systemctl restart chrony

# Verifier la synchronisation
chronyc sources -v
chronyc tracking
timedatectl status
```

Notes:
- Si `araucaria` n'est pas resolu en DNS, utiliser temporairement son IP dans le fichier source Chrony.
- Quand le DNS sera finalise, revenir a `server araucaria iburst prefer`.

### 14) Configuration hostname, SSH et mises a jour dans la VM
```bash
# Dans la VM
sudo hostnamectl set-hostname konenpan
hostnamectl

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y openssh-server qemu-guest-agent

sudo systemctl enable --now ssh
sudo systemctl enable --now qemu-guest-agent
```

### 15) Validation finale
```bash
# Sur l'hote
virsh dominfo konenpan
virsh domblklist konenpan
virsh domiflist konenpan

# Dans la VM
hostnamectl
free -h
df -h
ip addr show
timedatectl status
chronyc sources -v
ping -c 3 8.8.8.8
```

## Checklist de fin
- [ ] LV `vgarauco0-konenpan` cree en `1T`
- [ ] VM `konenpan` creee avec `virt-install`
- [ ] VM demarree (`virsh start konenpan`)
- [ ] Partitionnement valide (`/`, `/var`, `/data`)
- [ ] Swap actif (`swapon --show`)
- [ ] Installation OS terminee et CD-ROM detache
- [ ] Reseau/DNS operationnels
- [ ] Synchronisation horaire active vers araucaria (chrony)
- [ ] SSH operationnel
- [ ] VM enregistree dans l'inventaire infra
- [ ] Sauvegarde planifiee

## Rollback (si echec)
```bash
# Arreter puis supprimer la definition VM
virsh destroy konenpan 2>/dev/null || true
virsh undefine konenpan

# Supprimer le volume LVM (attention: destructif)
lvremove -y /dev/vgarauco0/konenpan

# Verifier qu'il ne reste rien
virsh list --all | grep konenpan || true
lvs vgarauco0 | grep konenpan || true
```

## Troubleshooting rapide
- VM non accessible: `virsh dominfo konenpan`, verifier bridge `br0`, firewall, NIC
- Disque absent: `virsh domblklist konenpan`, `lvs vgarauco0`, `ls -lh /dev/mapper/vgarauco0-konenpan`
- VNC indisponible: `virsh vncdisplay konenpan`, verifier tunnel SSH
- DNS KO dans la VM: verifier netplan, `resolv.conf`, `nslookup`
- Heure non synchronisee: verifier `systemctl status chrony`, `chronyc sources -v`, resolution DNS de `araucaria`

## Sources Araucaria utilisees
- `E:\Dev\System\Araucaria\01_SKVM\docs\DOCUMENTATION_SKVM.md`
- `E:\Dev\System\Araucaria\07_VMS\docs\GUIDE_COMPLET_VM_DOCKER.md`
- `E:\Dev\System\Araucaria\migration_chillka.sh`

## Historique
- Date: 2026-03-07
- Auteur: equipe-plateforme
- Changement: ajout procedure complete de creation VM `konenpan` de A a Z (commandes completes)
- Changement: ajout de la configuration NTP client (chrony) pour synchronisation vers `araucaria`