Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
pratique:informatique:xen [30/06/2024 09:09] – créée Zatalyzpratique:informatique:xen [25/10/2025 19:26] (Version actuelle) – [Rôles] Zatalyz
Ligne 108: Ligne 108:
 </code> </code>
  
-Ajout de la clé ssh personnelle dans le squelette des VM nouvellement créées : +===== Modifications de base sur les VM =====
-<code>sudo mkdir -p /etc/xen-tools/skel/root/.ssh +
-sudo chmod -R 700 /etc/xen-tools/skel/root +
-nano /etc/xen-tools/skel/root/.ssh/authorized_keys</code>+
  
-Et création d'une vm avec les paramètres par défaut et en laissant dhcp gérer les ip ? +==== Squelette ==== 
-  sudo xen-create-image --hostname=vm1test --dhcp+Ces fichiers seront utilisés dans les VM (si j'ai suivi). Pour SSH c'est top. Evidement à adapter suivant qui doit avoir accès aux VM.
  
 +Tout ça en root (sudo ou vraiment avec root). 
 +
 +Copie du home, ce qui permettra à nos users d'avoir leurs préférences :
 +<code>
 +cp -R /home /etc/xen-tools/skel/
 +</code>
 +
 +Copie de la config SSH
 +<code>mkdir -p /etc/xen-tools/skel/etc/ssh
 +cp /etc/ssh/sshd_config /etc/xen-tools/skel/etc/ssh/</code>
 +
 +On va aussi s'occuper des locales :
 +<code>
 +cp /etc/locale.gen /etc/xen-tools/skel/etc/locale.gen
 +mkdir -p /etc/xen-tools/skel/etc/default/
 +cp /etc/default/locale /etc/xen-tools/skel/etc/default/locale
 +</code>
 +
 +<WRAP center round tip 60%>
 +Il faut par contre s'assurer avec les rôles que les bons droits seront donnés dans les vm à ces fichiers.
 +</WRAP>
 +
 +==== Rôles ====
 +Un rôle est un script appelé à la fin de la création de la VM. Ce qui permet d'installer certains paquets et d'adapter ce que le squelette ne permet pas (dont les droits...). 
 +
 +<WRAP center round todo 100%>
 +Le fichier ci-dessous marche... en partie. chown et chmod ne fonctionnent pas... faut trouver comment les écrire.
 +
 +En attendant une fois la vm faite :
 +
 +<code>chown -R zatalyz:zatalyz /home/zatalyz
 +chmod 0700 /home/zatalyz/.ssh
 +chmod 0600 /home/zatalyz/.ssh/authorized_keys
 +chmod 644 /etc/locale.gen
 +locale-gen
 +chmod 644 /etc/default/locale</code>
 +
 +Et j'ai encore eu un souci de locale... Donc faire : 
 +  sudo dpkg-reconfigure locales
 +Puis se déco/reco.
 +</WRAP>
 +
 +<code bash /etc/xen-tools/role.d/zatxen>
 +#!/bin/sh
 +prefix=$1
 +# Vérifie que les trucs par défaut existent. Chemin valide sur Debian Bookworm.
 +if [ -e /usr/share/xen-tools/common.sh ]; then
 +    . /usr/share/xen-tools/common.sh
 +else
 +    echo "Installation problem"
 +fi
 +# Log our start
 +#
 +logMessage Script $0 starting
 +
 +
 +# Installation des paquets par défaut
 +chroot ${prefix} /usr/bin/apt-get update
 +chroot ${prefix} /usr/bin/apt-get -y -f upgrade
 +installDebianPackage ${prefix} nano 
 +installDebianPackage ${prefix} tree
 +installDebianPackage ${prefix} bash-completion 
 +installDebianPackage ${prefix} cron logrotate 
 +installDebianPackage ${prefix} apt-listbugs 
 +installDebianPackage ${prefix} debsums 
 +installDebianPackage ${prefix} apt-listchanges 
 +installDebianPackage ${prefix} sudo 
 +installDebianPackage ${prefix} rsyslog 
 +installDebianPackage ${prefix} net-tools 
 +installDebianPackage ${prefix} htop 
 +installDebianPackage ${prefix} iotop-c
 +installDebianPackage ${prefix} nload 
 +installDebianPackage ${prefix} binutils 
 +installDebianPackage ${prefix} dnsutils
 +installDebianPackage ${prefix} minisign
 +# La partie suivante, uniquement si on veut msmtp
 +installDebianPackage ${prefix} msmtp 
 +installDebianPackage ${prefix} msmtp-mta 
 +installDebianPackage ${prefix} bsd-mailx
 +# Création de mon utilisateur (conflit avec l'option xen-tool "accounts")
 +# chroot ${prefix} useradd zatalyz -m -U -G sudo,www-data -s /bin/bash
 +# Si account à 1, préférer ceci
 +chroot ${prefix} /sbin/usermod -a -G sudo,www-data zatalyz -d /home/zatalyz -s /bin/bash
 +chown -R zatalyz:zatalyz ${prefix}/home/zatalyz
 +
 +# Donner les bons droits sur ssh 
 +chmod 0700 ${prefix}/home/zatalyz/.ssh
 +chmod 0600 ${prefix}/home/zatalyz/.ssh/authorized_keys
 +
 +# Mettre les locales comme il faut 
 +chmod 644 ${prefix}/etc/locale.gen
 +chroot ${prefix} /usr/sbin/locale-gen
 +chmod 644 ${prefix}/etc/default/locale
 +
 +#  Log our finish
 +#
 +logMessage Script $0 finished
 +
 +</code>
 +
 +Donner ensuite les bons droits à ce fichier sinon ça va foirer :
 +  sudo chmod a+x /etc/xen-tools/role.d/zatxen
 +
 +Lors de la création de la VM, il faut préciser le role (pas trouvé si on peut y ajouter dans la config de xen-tool) :
 +  xen-create-image --hostname=vm5 --dhcp --role=zatxen
 +
 +=== Trixie et soucis ===
 +Sous Trixie, y'a des soucis... En attendant les maj, oublions les rôles, qui n'aident pas. 
 +
 +Vu que xen-tool est abandonné, cela crée aussi des soucis en pagaille, mais j'ai pas la fois de reprendre tout de zéro pour le moment. Donc ça marche (modulo des bugs) en installant une version bookworm. 
 +
 +  sudo xen-create-image --hostname=25oct25 --dhcp --size 10g --dist=bookworm 
 +
 +Et il manque divers outils ; on va se concentrer sur l'update surtout, et pour ça : 
 +  apt install ca-certificates
 +
 +Ensuite on passe à Trixie (enlever ''/etc/apt/sources.list'' et mettre ''/etc/apt/sources.list.d/debian.sources'') :
 +  apt upgrade --without-new-pkgs
 +  apt full-upgrade
 +===== Commandes pour les VM =====
 +
 +Création d'une vm avec les paramètres par défaut et en laissant dhcp gérer les ip, et en variant la taille :
 +  sudo xen-create-image --hostname=vm1test --dhcp  --role=zatxen --size 50g
 +
 +S'y connecter depuis l'hyperviseur :
 +  sudo xl console vm1test
 +
 +Pour sortir de la VM, depuis l’hôte :
 +
 +  crlt + ( ou 5
 +
 +Pour démarrer la VM :
 +  xl create /etc/xen/myvm.cfg
 +
 +Et l'option ''-c'' pour la démarrer en s'y connectant directement (et donc, voir ce qui s'y passe au démarrage).
 +
 +Pour éteindre une VM, depuis l'hôte :
 +
 +  xl shutdown myvm
 +
 +Forcer violemment une VM à s'éteindre (à éviter) :
 +
 +  xl destroy myvm
 +
 +Faire un snapshot
 +  lvcreate -L 10g -s -n NOMVM_snap_$(date --iso) /dev/VgNOM/NOMVM
 +
 +===== Pallier à une RAM trop basse =====
 +Sur une machine pas très puissante, la RAM est vite un plafond limitant. Pour éviter de swapper et avoir des soucis, on modifie ''/etc/xen/myvm.cfg'' avec ces deux valeurs :
 +
 +<code># Mémoire pour le démarrage (en Mo)
 +memory = '512'
 +# Mémoire qui peut être libéré par le Dom0 si disponible
 +maxmem = '2048'</code>
 +=> en temps normal la VM a très peu de ram, et même si plusieurs VM saturent, on ne dépasse pas le total de RAM physique. Et si besoin (genre quand on met à jour...) on peut remonter à 2Go de ram. 
 ===== Pare-feu etc ===== ===== Pare-feu etc =====
 +Voir [[pratique:informatique:parefeu:start]].
 +
 +===== Problèmes divers =====
 +==== Eth0 est utilisé à la place de enX0 ====
 +Sur la gueste, si ''ip a'' indique eth0, et que ''/etc/network/interfaces'' est bien paramétré sur ceci : 
 +<code>
 +# The loopback network interface
 +auto lo
 +iface lo inet loopback
 +
 +# The primary network interface
 +auto enX0
 +iface enX0 inet dhcp
 +
 +</code>
 +
 +Alors on va ajouter une règle udev. 
 +  sudo nano /etc/udev/rules.d/70-persistent-net.rules
 +
 +<code>SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="enX0"</code>
 +
 +Remplacer aa:bb:cc:dd:ee:ff par l’adresse MAC réelle de eth0.
  
 +On reboot et... ça va mieux.
  
 {{tag>Informatique Serveur Xen Sysadmin}} {{tag>Informatique Serveur Xen Sysadmin}}
pratique/informatique/xen.1719731363.txt.gz · Dernière modification : 30/06/2024 09:09 de Zatalyz