Ajout de aministration_vm_sans_root.md.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
This commit is contained in:
parent
b9572b3821
commit
6a9a7128f6
|
@ -0,0 +1,142 @@
|
|||
Introduction
|
||||
============
|
||||
|
||||
Comme beaucoup d'infrastructures d'hébergement, Libre en Communs à mis
|
||||
en pratique les politiques suivantes:
|
||||
|
||||
- Elle réduisent la surface d'attaque de l'hôte faisant tourner les
|
||||
machines virtuelles en faisant en sorte que le minimum
|
||||
d'applications ou de services y soient installés.
|
||||
|
||||
- Elle ne laisse pas l'accès root à tout le monde.
|
||||
|
||||
- Elles permettent à beaucoup de monde d'avoir accès à des machines
|
||||
virtuelles.
|
||||
|
||||
Le fait que ce soit pertinent ou pas dépend de la situation et des
|
||||
buts des projets qui utilisent l'infrastructure. Il y'a pas mal de
|
||||
manières différentes de faire et chacunes ont leurs avantages et
|
||||
désavantages.
|
||||
|
||||
Un des désavantages avec cette approche est qu'on ne peut pas
|
||||
facilement installer une distribution non supportée par
|
||||
l'infrastructure, ou installer une distribution existante d'une façon
|
||||
non supportée par l'infrastructure.
|
||||
|
||||
Par exemple si on à du code pour créer une image Trisquel avec
|
||||
debootstrap, ou une image Guix avec Guix, il va falloir le faire
|
||||
tourner dans une machine virtuelle.
|
||||
|
||||
Ce document va regarder différentes approches pour contourner ce
|
||||
problème.
|
||||
|
||||
Roles et permissions
|
||||
====================
|
||||
|
||||
L'infrastructure utilise libvirt, notamment libvirt QEMU. LXC est
|
||||
aussi présent mais pas utilisé.
|
||||
|
||||
Certaines personnes on un accès root aux machines physiques et peuvent
|
||||
tout faire.
|
||||
|
||||
D'autres ont un shell (sans accès root) et un accès direct à libvirt
|
||||
par SSH. Pour l'instant l'accès shell permet aussi d'utiliser virsh,
|
||||
mais ce ne sera plus le cas dans le futur.
|
||||
|
||||
D'autres personnes ont seulement un accès SSH dans une ou plusieurs
|
||||
machines virtuelles.
|
||||
|
||||
Outils disponibles
|
||||
==================
|
||||
|
||||
On à une machine virtuelle Trisquel generic_trisquel.a-lec.org qui
|
||||
peut facilement être clonée par une personne avec un accès
|
||||
libvirt. Une fois clonée et l'accès SSH activé, on à 50GiB d'espace
|
||||
dedans.
|
||||
|
||||
Les personnes qui ont un accès libvirt ne doivent pas créer des VM
|
||||
avec une carte graphique pour des VM qui vont tourner en production
|
||||
car ça donne accès à la VM à n'importe quelle personne qui à un shell
|
||||
sur la machine physique[1].
|
||||
|
||||
Vu que l'accès shell ne va plus impliquer l'accès à libvirt dans le
|
||||
futur, et que ne pas avoir de carte graphique virtuelle protège aussi
|
||||
de l'accès par du code qui tourne sur d'autres comptes n'ayant pas
|
||||
accès à libvirt, il vaux mieux utiliser le port série.
|
||||
|
||||
Utiliser la VM generic_trisquel.a-lec.org
|
||||
=========================================
|
||||
|
||||
Si on à un accès à libvirt on peut se loguer dedans avec
|
||||
l'utilisateurice admin666 et 'sudo su' marche sans mot de passe. Pour
|
||||
ça faut utiliser le port série. A noter que c'est aussi disponible (et
|
||||
bien plus fiable) si on passe par SSH et un shell sur la machine avec
|
||||
la commande suivante:
|
||||
|
||||
virsh -c qemu:///system console generic_trisquel.a-lec.org
|
||||
|
||||
Commandes virsh intéressantes
|
||||
=============================
|
||||
|
||||
Si on à un accès à libvirt on peut cloner une machine virtuelle avec
|
||||
virt-manager, ou cloner des disques virtuels en ligne de commande avec
|
||||
la command vol-clone de virsh. Par contre j'ai pas trouvé comment
|
||||
renomer un disque virtuel. Il faut donc le copier et le déléter
|
||||
après. A noter que les copies peuvent mettre un certain temps (~ 10
|
||||
minutes pour 50 GiB).
|
||||
|
||||
On peut aussi augmenter la taille du disque virtuel d'une VM éteinte
|
||||
avec la commande vol-resize de virsh et d'une VM allumée avec la
|
||||
commande blockresize de virsh.
|
||||
|
||||
Utiliser un iso netinstall avec un port série.
|
||||
==============================================
|
||||
|
||||
Pas mal de medias d'installeurs n'activent pas le port série par
|
||||
défaut, sinon ça risquerait de casser certaines tablettes brailles
|
||||
très chères (ça l'a fait par le passé).
|
||||
|
||||
Et taper des commandes à l'aveugle dans virt-manager ne marche pas
|
||||
quand la carte graphique virtuelle est désactivée, du coup on doit
|
||||
utiliser un script à la place.
|
||||
|
||||
Voici un script qui active le port série sur une netinstall Trisquel
|
||||
11.0 pour x86_64:
|
||||
#!/bin/sh
|
||||
# Copyright (C) 2023 Denis 'GNUtoo' Carikli
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
virsh -c qemu:///system send-key trisquel-installer 15 # TAB
|
||||
virsh -c qemu:///system send-key trisquel-installer 46 # C
|
||||
virsh -c qemu:///system send-key trisquel-installer 24 # O
|
||||
virsh -c qemu:///system send-key trisquel-installer 49 # N
|
||||
virsh -c qemu:///system send-key trisquel-installer 31 # S
|
||||
virsh -c qemu:///system send-key trisquel-installer 24 # O
|
||||
virsh -c qemu:///system send-key trisquel-installer 38 # L
|
||||
virsh -c qemu:///system send-key trisquel-installer 18 # E
|
||||
virsh -c qemu:///system send-key trisquel-installer 13 # =
|
||||
virsh -c qemu:///system send-key trisquel-installer 20 # T
|
||||
virsh -c qemu:///system send-key trisquel-installer 20 # T
|
||||
virsh -c qemu:///system send-key trisquel-installer 21 # Y
|
||||
virsh -c qemu:///system send-key trisquel-installer 58 # CAPSLOCK
|
||||
virsh -c qemu:///system send-key trisquel-installer 31 # S
|
||||
virsh -c qemu:///system send-key trisquel-installer 11 # 0
|
||||
virsh -c qemu:///system send-key trisquel-installer 28 # ENTER
|
||||
|
||||
Il faut attendre à peu près une seconde et lancer le
|
||||
script. Trisquel-installer est le nom de la VM dans libvirt sur mes
|
||||
machines, donc il faut ajuster ça.
|
||||
|
||||
Autres distributions
|
||||
====================
|
||||
Trisquel à des paquets pour debootstrap et guix. L'article
|
||||
CrossDistroBootstrap[2] permet de savoir quelles distributions peuvent
|
||||
être installées avec ça. Pour que ça marche il faut aussi attacher un
|
||||
second disque virtuel à la machine virtuelle car dans
|
||||
generic_trisquel.a-lec.org la partition principale prend tout l'espace
|
||||
du disque.
|
||||
|
||||
Références
|
||||
==========
|
||||
[1]https://github.com/virt-manager/virt-manager/issues/343
|
||||
[2]https://libreplanet.org/wiki/Group:Software/FSDG_distributions/CrossDistroBootstrap
|
||||
|
Loading…
Reference in New Issue