Logo Khaganat

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
fr:xen [2018/06/27 08:18] – [Système de base] zatalyzfr:xen [2019/10/08 17:51] – [Upgrade de Stretch à Buster] Deed
Ligne 40: Ligne 40:
 Installer les divers outils dont on va avoir besoin : Installer les divers outils dont on va avoir besoin :
   apt update   apt update
-  apt install xen-linux-system-amd64 xen-tools qemu-system-x86+  apt install  xen-tools qemu-system-x86 xen-system-amd64 
 +  avant buster : xen-linux-system-amd64 
 +==== Booter sur le bon noyau : configuration de GRUB ====
  
-Il faut ensuite [[https://wiki.debian.org/Xen#Prioritise_Booting_Xen_Over_Native|changer le noyau puis redémarrer]], pour utiliser celui de Xen.+Avec Stretch sur online.net, je n'ai pas eu besoin de changer manuellement le noyau 
 +   reboot 
 + 
 +Sinon il faut ensuite [[https://wiki.debian.org/Xen#Prioritise_Booting_Xen_Over_Native|changer le noyau puis redémarrer]], pour utiliser celui de Xen.
   dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen   dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
   # La ligne ci-dessous ne concerne que les machines chez OVH.   # La ligne ci-dessous ne concerne que les machines chez OVH.
Ligne 53: Ligne 58:
 Name                                        ID   Mem VCPUs State Time(s) Name                                        ID   Mem VCPUs State Time(s)
 Domain-0                                     0 14779         r-----    1881.8 Domain-0                                     0 14779         r-----    1881.8
- 
- 
 </code> </code>
  
-<WRAP center round tip 90%>+Si ça fonctionne passez au 1.3 . 
 +=== Si ça ne marche pas === 
 Si ce n'est pas le cas et que vous obtenez ''ERROR:  Can't find hypervisor information in sysfs!'' alors on va chercher le bon noyau. Si ce n'est pas le cas et que vous obtenez ''ERROR:  Can't find hypervisor information in sysfs!'' alors on va chercher le bon noyau.
  
-  * vérifier dans ''/etc/grub.d/'' qu'il y est bien 06_linux_xen juste après 05_debian_theme+  * vérifier dans ''/etc/grub.d/'' qu'il y ait bien 06_linux_xen juste après 05_debian_theme
   * vérifier que ''update-grub'' a bien été lancé avant de redémarrer.   * vérifier que ''update-grub'' a bien été lancé avant de redémarrer.
  
 Si ça ne suffit toujours pas : Si ça ne suffit toujours pas :
-  grep menuentry /boot/grub/grub.cfg +  grep -Eoe "(menuentry|submenu) '[^']*'" /boot/grub/grub.cfg | nl -v0
-   +
-Repérez la première entrée avec "xen" dedans, par exemple :  +
-  menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 and XEN 4.1-amd64' --class debian --class gnu-linux --class gnu --class os --class xen+
      
 +Repérez la première entrée ''menuentry'' avec "xen" dedans, par exemple : 
 +  menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 and XEN 4.1-amd64'
 +
 Pour vérifier que tout va bien, utilisez grub-reboot, qui va tester l'entrée en question au prochain démarrage (et uniquement au prochain démarrage : cela permet de rapidement revenir à quelque chose de fonctionnel en cas d'erreur)  Pour vérifier que tout va bien, utilisez grub-reboot, qui va tester l'entrée en question au prochain démarrage (et uniquement au prochain démarrage : cela permet de rapidement revenir à quelque chose de fonctionnel en cas d'erreur) 
-  grub-reboot  'Debian GNU/Linux, with Linux 3.2.0-4-amd64 and XEN 4.1-amd64'+  grub-reboot 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 and XEN 4.1-amd64'
   reboot   reboot
-  +
 Si ''xl list'' donne un résultat, c'était la bonne entrée. Si ''xl list'' donne un résultat, c'était la bonne entrée.
  
Ligne 80: Ligne 85:
   update-grub   update-grub
   reboot   reboot
 +
 +<WRAP center round tip 100%>
 +Attention, si Xen est bien installé, il va créer un ''/boot/grub/grub.cfg'' avec des sous-menu et il faut adapter la syntaxe (voir ''man grub-reboot''), par exemple :
 +  grub-reboot '0>0>2'
 +
 </WRAP> </WRAP>
  
 +== Xen override grub ==
 +Vérifiez dans le fichier ''/etc/default/grub.d/xen.cfg'' que la variable ''XEN_OVERRIDE_GRUB_DEFAULT'' soit à 1, et dans le bloc suivant il doit y avoir la bonne entrée (''GRUB_DEFAULT'' doit correspondre à la bonne entrée) :
 +
 +  if [ "$XEN_OVERRIDE_GRUB_DEFAULT" = "1" ]; then
 + GRUB_DEFAULT="Debian GNU/Linux, with Xen hypervisor"
 +  fi
 +
 +Exécutez ''update-grub'', ça devrait être bon maintenant.
 +
 +== Forcer le boot d'un noyau ==
 +Il se peut aussi que l'hyperviseur Xen n'ait pas été configuré pour être le "noyau" démarré par défaut. Pour vérifier cela, on peut lister les différentes possibilités que nous offre grub lors du boot :
 +
 +  awk -F\' '/(menuentry|submenu)\ / {print $2}' /boot/grub/grub.cfg | nl -v0
 +
 +Remarquez les numéros en début de ligne : c'est le numéro qui nous permettra de dire à grub quel noyau démarrer par défaut. Pour voir lequel est actuellement configuré :
 +
 +  grep -Eoe "(menuentry|submenu) '[^']*'" /boot/grub/grub.cfg | nl -v0
 +
 +     0 menuentry 'Debian GNU/Linux, with Xen hypervisor'
 +     1 submenu 'Advanced options for Debian GNU/Linux (with Xen hypervisor)'
 +     2 submenu 'Xen hypervisor, version 4.8-amd64'
 +     3 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-7-amd64'
 +     4 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-7-amd64 (recovery mode)'
 +     5 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-6-amd64'
 +     6 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-6-amd64 (recovery mode)'
 +     7 submenu 'Xen hypervisor, version 4.8-amd64.efi'
 +     8 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64.efi and Linux 4.9.0-7-amd64'
 +     9 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64.efi and Linux 4.9.0-7-amd64 (recovery mode)'
 +    10 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64.efi and Linux 4.9.0-6-amd64'
 +    11 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64.efi and Linux 4.9.0-6-amd64 (recovery mode)'
 +    12 menuentry 'Debian GNU/Linux'
 +    13 submenu 'Advanced options for Debian GNU/Linux'
 +    14 menuentry 'Debian GNU/Linux, with Linux 4.9.0-7-amd64'
 +    15 menuentry 'Debian GNU/Linux, with Linux 4.9.0-7-amd64 (recovery mode)'
 +    16 menuentry 'Debian GNU/Linux, with Linux 4.9.0-6-amd64'
 +    17 menuentry 'Debian GNU/Linux, with Linux 4.9.0-6-amd64 (recovery mode)'
 +
 +On peut obliger grub à démarrer un noyau spécifique au prochain redémarrage avec la commande ''xen-set-default'' en lui donnant l'entrée à démarrer, soit par son nom, soit par son numéro ; par contre étant donné que c'est un menu avec sous-menus et éventuellement sous-sous-menus, il faut donner à la commande le chemin complet de l'entrée à démarrer, par exemple :
 +
 +  grub-set-default '1>2>3'
 +
 +Alors c'est comme un chemin, sauf que c'est séparé par des ''>''.
 +
 +Ou avec le nom exact, selon l'exemple ci-dessus :
 +
 +  grub-set-default 'Advanced options for Debian GNU/Linux (with Xen hypervisor)>Xen hypervisor, version 4.8-amd64>Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-7-amd64'
 +  
 +== locales ==
 +
 +Grub a besoin que la locale par défaut soit anglaise. Suite à un problème de boot on a mis la locale ''en_US.UTF-8'' et re-généré le fichier /boot/grub/grub.cfg avec ''update-grub''.
 +
 +
 +=== Bug et impossibilité de redémarrer ===
 +
 +<WRAP center round important 100%>
 +Nous avons rencontré un bug lors de la dernière mise à jour de Xen. La machine refusait de redémarrer. La source du problème était la langue ("locale") qui était en français, et les scripts de grub n'aiment pas ça (en tout cas pas à l'heure actuelle -- août 2018). Voir ci-dessus pour la résolution du problème.
 +</WRAP>
  
 ==== Configuration du réseau ==== ==== Configuration du réseau ====
Ligne 92: Ligne 159:
   sysctl -p /etc/sysctl.conf   sysctl -p /etc/sysctl.conf
  
-Ensuitemodifiez iptables :+Trouvez quelle est votre interface ethernet (probablement quelque chose comme enp1s0ou eth0) : 
 +  ip a
  
-  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE+Ensuite, modifiez iptables. Si c'est ''enp1s0''
 + 
 +  iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
  
 <WRAP center round warning 60%> <WRAP center round warning 60%>
Ligne 101: Ligne 171:
  
 Sauvegarde des règles : Sauvegarde des règles :
-  mkdir /etc/iptables +  apt install iptables-persistent 
-  iptables-save > /etc/iptables/iptables.rules+  iptables-save > /etc/iptables/rules.v4
  
-Pour exécuter les règles au démarrage du serveur, éditez le fichier ''/etc/network/interface'' :+Pour exécuter les règles au démarrage du serveur, éditez le fichier ''/etc/network/interfaces'' :
 <code> <code>
-auto eth0 +auto enp1s0 
-iface eth0 inet static+iface enp1s0 inet static
         address 91.121.136.163         address 91.121.136.163
         netmask 255.255.255.0         netmask 255.255.255.0
Ligne 237: Ligne 307:
 </WRAP> </WRAP>
  
 +NB : pour savoir ce qui reste comme espace de libre :
 +  pvscan 
  
 ==== Lancer/se connecter aux VM ==== ==== Lancer/se connecter aux VM ====
Ligne 262: Ligne 334:
   xl console myvm   xl console myvm
 Puis retour à la ligne pour entrer dans le terminal (sinon, la commande reste affichée sans rien d'autre) Puis retour à la ligne pour entrer dans le terminal (sinon, la commande reste affichée sans rien d'autre)
 +
 +Pour sortir de la VM, depuis l’hôte :
 +  crlt + ( ou 5
  
 Pour éteindre une VM, depuis l'hôte : Pour éteindre une VM, depuis l'hôte :
Ligne 311: Ligne 386:
  
 Penser à sauvegarder les règles pour le redémarrage ! Penser à sauvegarder les règles pour le redémarrage !
-  iptables-save > /etc/iptables/iptables.rules+  iptables-save > /etc/iptables/rules.v4
  
 Pensez aussi, si ce n'est pas déjà fait, à bien configurer fail2ban sur l'hyperviseur.  Pensez aussi, si ce n'est pas déjà fait, à bien configurer fail2ban sur l'hyperviseur. 
  
 +
 +<WRAP center round tip 90%>
 + Je mets ici un exemple de config iptable
 +</WRAP>
 +
 +<code bash>
 +#!/bin/bash
 +
 +#acepter les connexions ssh
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port ssh -j ACCEPT
 +
 +#rediriger tous les ports sur une VM proxy
 +iptables -t nat -A PREROUTING -i eno1 -j DNAT --to-destination 192.168.**.10
 +
 +#ouvrir un port ssh pour chaque VM 
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3510 -j DNAT --to 192.168.**.10:22
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3511 -j DNAT --to 192.168.**.11:22
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3512 -j DNAT --to 192.168.**.12:22
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3513 -j DNAT --to 192.168.**.13:22
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3514 -j DNAT --to 192.168.**.14:22
 +
 +#exemple pour diriger un port sur une VM
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port **** -j DNAT --to 192.168.**.**:****
 +
 +
 +#exemple pour prosody
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port 5222 -j DNAT --to 192.168.**.13:5222
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port 5269 -j DNAT --to 192.168.**.13:5269
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port 5280 -j DNAT --to 192.168.**.13:5280
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port 5281 -j DNAT --to 192.168.**.13:5281
 +
 +</code>
 ==== Réinitialiser le mot de passe root d'une VM ==== ==== Réinitialiser le mot de passe root d'une VM ====
 Ouais, bon, ça arrive. Si on a accès à l'hôte (Dom), tout va bien.  Ouais, bon, ça arrive. Si on a accès à l'hôte (Dom), tout va bien. 
Ligne 338: Ligne 445:
 Il s'agit de manipulations propres à LVM((En tout cas, chez nous. Il y a d'autres systèmes qui permettent des snapshots.)), c'est donc dans la [[fr:lvm_snapshot#snapshot|documentation sur LVM, ici.]] Il s'agit de manipulations propres à LVM((En tout cas, chez nous. Il y a d'autres systèmes qui permettent des snapshots.)), c'est donc dans la [[fr:lvm_snapshot#snapshot|documentation sur LVM, ici.]]
  
 +===== Upgrade de Stretch à Buster =====
 +Mettre à jour la distribution puis :
 +  apt autoremove
 +  
 +Changer dans /etc/xen/maVM.conf
 +  bootloader = '/usr/lib/xen-4.11/bin/pygrub' 
 +  
 +Vérifier que /etc/sysctl.conf
 +  net.ipv4.ip_forward = 1
 +  
 +Dans /etc/xen/scripts/vif-nat (à la fin)
 +  echo handle_iptable
 ===== Sources et documentation ===== ===== Sources et documentation =====
  
Ligne 343: Ligne 462:
   * [[http://xenbits.xen.org/docs/unstable/man/xl.1.html|man de xl]]   * [[http://xenbits.xen.org/docs/unstable/man/xl.1.html|man de xl]]
  
-{{tag>serveur web}}+{{tag>serveur web sysadmin}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/xen.txt · Dernière modification : 2021/12/03 19:19 de 127.0.0.1

Licences Mentions légales Accueil du site Contact