Outils pour utilisateurs

Outils du site


admin:services:virtualisation

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
admin:services:virtualisation [2016/04/02 15:11] gabriel.detrazadmin:services:virtualisation [2020/04/26 15:47] (Version actuelle) chirac
Ligne 1: Ligne 1:
 ===== Virtualisation à FedeRez ===== ===== Virtualisation à FedeRez =====
  
-=== Besoin ===+==== Besoin ====
  
 De nombreuses petites associations de FedeRez ont emis le souhait de pouvoir disposer d'une machine distante pour divers besoin : de la redondance (dns...), externaliser des services critiques (sites web, etc) ou pour du backup léger. De nombreuses petites associations de FedeRez ont emis le souhait de pouvoir disposer d'une machine distante pour divers besoin : de la redondance (dns...), externaliser des services critiques (sites web, etc) ou pour du backup léger.
Ligne 7: Ligne 7:
 Certaines associations ne disposent notamment que de quelques IP, voudraient pouvoir disposer de VM avec une ip publique. Certaines associations ne disposent notamment que de quelques IP, voudraient pouvoir disposer de VM avec une ip publique.
  
-Le Cr@ns a cédé un de ses anciens virtualiseurs à FedeRez dans le but de répondre à cette demande. +Le Cr@ns a cédé un de ses anciens virtualiseurs à FedeRez dans le but de répondre à cette demande. (kdell) 
 +Viarezo également (ronderu).
  
-=== Solution de virtualisation ===+L'interface web de proxmox se trouve aux adresses suivantes :  
 +https://kdell.crans.org:8006 
 +https://ronderu.federez.net:8006 
 + 
 +==== Solution de virtualisation ====
  
 La solution choisie est debian proxmox pve. Celui-ci a l'avantage de proposer une interface web "à la ovh" qui permettrait à une association de manager à distance sa ou ses vm sans intervention des responsables techniques de FedeRez. Il a aussi l'avantage de proposer en parallèle des kvm et des lxc, bref, il y en a pour tous les gouts. La solution choisie est debian proxmox pve. Celui-ci a l'avantage de proposer une interface web "à la ovh" qui permettrait à une association de manager à distance sa ou ses vm sans intervention des responsables techniques de FedeRez. Il a aussi l'avantage de proposer en parallèle des kvm et des lxc, bref, il y en a pour tous les gouts.
  
-=== Installation du virtualiseur ===+==== Installation du virtualiseur ==== 
 + 
 +L'exemple pris ici fut l'installation de kdell. 
 + 
 +=== Installer debian et proxmox ===
  
 D'abord on procède à l'installation de debian sur kdell. D'abord on procède à l'installation de debian sur kdell.
 +
 +A noter ici, on a choisi de donner 40 Go pour le / de kdell, 10 Go pour le var, le home et 20Go pour la swap.
 +Avec le reste (1,8 To) on fait une partition data, qui se l'espace de stockage de proxmox.
  
 On ajoute l'essentiel pour FedeRez (l'auth ldap etc) On ajoute l'essentiel pour FedeRez (l'auth ldap etc)
Ligne 27: Ligne 39:
 deb http://download.proxmox.com/debian jessie pve-no-subscription deb http://download.proxmox.com/debian jessie pve-no-subscription
 </code> </code>
 +
 +Ensuite on lance 
 +<code>
 +apt-get update && apt-get dist-upgrade
 +apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv
 +</code>
 +
 +
 +
 +Et on reboot
 +
 +=== Configurer l'interface réseau ===
 +
 +Il est nécessaire de créer un bridge, dans lequel les vm parleront. Tout est en non tagué ici (vlan des machines filaires adhérents du Cr@ns), donc pas de piège.
 +
 +Par conséquent, on écrit ceci dans /etc/network/interfaces : 
 +<code>
 +auto vmbr0
 +iface vmbr0 inet static
 + address  138.231.139.230     # ip de kdell
 +        network 138.231.136.0     # subnet filaire du Crans, /21
 + netmask  255.255.248.0
 +        broadcast  138.231.143.255
 +        mtu 1496          # attention , essentiel au Crans
 + gateway  138.231.136.4  # odlyd, routeur de sortie du Crans
 +        dns-search crans.org
 +        dns-nameservers 138.231.136.98 138.231.136.152
 + bridge_ports eth0
 + bridge_stp off
 + bridge_fd 0
 +
 +iface vmbr0 inet6 static
 + address  2a01:240:fe3d:4:d267:e5ff:fee9:b10f
 + netmask  64
 + gateway  fe80::1
 +
 +</code>
 +
 +=== Finitions ===
 +
 +Ensuite on passe sur l'interface web : https://kdell.crans.org:8006
 +(il est important de mettre https; proxmox de redirige pas)
 +
 +Pour l'espace de stockage, on a laissé 1,8To non alloués dans le vg kdell : 
 +<code>
 +kdell# lvs
 +  LV    VG    Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 +  home  kdell -wi-ao---- 13,97g                                                    
 +  slash kdell -wi-ao---- 37,25g                                                    
 +  swap  kdell -wi-ao---- 29,80g                                                    
 +  var   kdell -wi-ao---- 13,97g    
 +</code>
 +
 +On va donc dire à proxmox de les utiliser pour créer les lvm.
 +
 +C'est possible de le faire par l'interface web, plus rapide à la main.
 +Il suffit d'editer le fichier /etc/pve/storage.conf et de rajouter :
 +<code>
 +lvm: FedeRez
 +        vgname kdell
 +        shared
 +        content images 
 +</code>
 +        
 +Le volume kdell apparait normalement sur l'interface proxmox.
 +
 +Le datacenter est maintenant prêt pour les VM.
 +
 +=== Configuration de needrestart ===
 +Par défaut, needrestart propose de redémarrer pve-manager (ce qui redémarre tous les conteneurs et machines virtuelles) et lxcfs (ce qui semble une mauvaise chose, cf https://github.com/liske/needrestart/issues/35). Pour que ces services soient décochés par défaut (faute de pouvoir les enlever de la liste), on ajoute deux lignes à ''/etc/needrestart/needrestart.conf'' pour avoir le bloc suivant :
 +<file perl /etc/needrestart/needrestart.conf>
 +$nrconf{override_rc} = {
 +    …
 +    q(^pve-manager) => 0,
 +    q(^lxcfs) => 0,
 +}
 +</file>
 +
 +
 +==== Créer une VM ====
 +
 +Pour créer une vm, on a deux solutions. 
 +
 +=== Solution 1 : CLI (non recommandé) ===
 +
 +L'exemple pris ici est sur kdell, il sera nécessaire d'adapter quelques données pour le faire sur ronderu.
 +
 +On peut le faire uniquement en CLI pour les plus courageux. Cela consiste à editer des templates dans /etc/pve/qemu-server. Puis à créer les partitions dans le stockage virtuel qu'on fait, puis debootstraper.
 +
 +Je renvoie ici à la doc du Crans qui détaille cette solution : https://wiki.crans.org/CransTechnique/Virtualisation/CreerUneVM
 +
 +En gros, il faut créer un lvm (ex : lvcreate -n vm-100-disk-1 -L 10G kdell) dans le vg kdell, ou le vg ronderu.
 +
 +Ensuite, on écrit un fichier de template de vm (ex de fichier)
 +<code>
 +kdell# cat 100.conf
 +balloon: 256
 +bootdisk: virtio0
 +cores: 1
 +ide2: none,media=cdrom
 +memory: 512
 +keyboard: fr
 +name: Federez-test
 +net0: e1000=02:67:E5:E9:00:01,bridge=vmbr0
 +numa: 0
 +ostype: l26
 +smbios1: uuid=36bd06a2-6cbd-458d-92d0-a09712786b6d
 +sockets: 1
 +virtio0: FedeRez:vm-100-disk-1,size=15G
 +</code>
 +
 +Enfin, on passe à l'étape 2 de la solution 2 pour installer debian dessus.
 +
 +=== Solution 2 : avec l'interface web proxmox ===
 +
 +Je détaillerai ici la solution du pauvre qui consiste à utiliser l'interface web. Elle est bien foutue, et elle va éditer les mêmes fichiers que si on le faisait en CLI, à 2-3 exceptions que je détaillerai.
 +
 +Cette solution n'est pas unique évidemment.
 +
 +=== Etape 1 : Créer la vm dans proxmox ===
 +
 +Aller sur créer une vm. Noeud : kdell, son nom à choisir. Id de vm, laissez faire proxmox.
 +Ensuite, ne pas utiliser de media iso, sauf si vous en avez une évidemment. 
 +
 +== Attribution des ressources ==
 +
 +Ensuite pour le storage : donner l'espace que vous voulez, sans être ni radin, ni gaspiller l'espace. (10 Go pour une petite VM, 20-50 pour une moyenne ou grosse)
 +/!\ Vérifiez que storage est bien FedeRez (/data) et non local.
 +
 +Mettez le bus sur VirtiO et non ide. (sauf si vous voulez vraiment ide)
 +
 +En nombre de coeurs, oubliez pas que kdell n'en a que 8. Soyez économes, surtout si la VM n'en a pas besoin.
 +
 +En ram, 512, ou 1 giga si la vm en a besoin, 2 si elle en a vraiment besoin, pour plus à discuter.
 +
 +Dans network, normalemnt proxmox propose le bridge vmbr0.
 +
 +=== Choix de la mac ===
 +
 +== Sur kdell ==
 +
 +Pour choisir la mac, j'ai pris la convention suivante :
 +Elle commence par 02 (mac virtuelle), puis les bits suivant sont les mêmes que la mac de kdell.
 +Enfin, l'avant dernier octet est à 0 si vm/container FedeRez et à 1 si c'est une asso. Le dernier octets est le numéro de VM FedeRez.
 +
 +Exemple pour la première VM que j'ai crée : 02:67:E5:E9:00:01
 +
 +/!\ Merci de respecter la convention !
 +
 +Il faut ensuite donner la mac à un admin du Crans pour qu'il l'enregistre sur le compte de FedeRez du Crans.
 +
 +Si on ne veut pas d'IPv4, il faut choisir « statique » pour le type d'IPv4 mais laisser les champs IP/CIDR eet passerelle vides…
 +
 +== Sur ronderu ==
 +
 +Aucune convention de mac n'a été choisir.
 +
 +Pour l'ipv4, en prendre une de libre dans le range 138.195.137.220 - 138.195.137.255 .
 +
 +=== On confirme et on passe à l'étape 2 ===
 +
 +=== Etape 2 : installer debian ===
 +
 +Normalement ici, la VM apparaît comme éteinte dans le dc sur l'interface web.
 +
 +Attention piège, il faut modifier /etc/pve/qemu-server et le bon numéro de vm (ex : 100.conf) et rajouter dans le fichier :
 +
 +<code>
 +keyboard: fr
 +</code>
 +
 +La technique consiste ici à lancer le boot réseau, et à lancer le pxe du Crans pour faire une install par le réseau.
 +
 +Pour cela; aller dans options sur la vm depuis l'interface proxmox, boot order, et mettre réseau en premier.
 +Ne pas oublier de faire l'opération inverse une fois l'install terminée évidemment.
 +
 +Puis démarrer la vm, ouvrir une console, et installer debian
 +
 +=== Etape 3 : fin d'installation ===
 +
 +On éteint la VM, on change le boot order, et voilà !
 +
 +==== Fin d'installation pour une vm FedeRez ====
 +
 +Si il s'agit d'une machine FedeRez, il faut y mettre l'authentification ldap avec [[admin:services:nss|Nss]], donc installer nslcd et le configurer correctement.
 +
 +Ensuite, ne pas oublier [[admin:services:munin|Munin]], en ouvrant le port 4949 de la machine, et en autorisant hexagon à parler au node, tout en disant à hexagon que le node existe.
 +
 +Enfin ne pas oublier monit : [[admin:services:monit|monit]] et fail2ban pour faire plaisir à David_5-1 .
 +==== Management de vm pour les assos ====
 +
 +Ca se passe sur l'interface proxmox : 
 +https://kdell.crans.org:8006
 +https://ronderu.federez.net:8006
 +
 +On crée un utilisateur et un groupe de l'association correspondante, et on lui donne le droit PVEVMUSER (allumer, éteindre la vm, ouvrir une console dessus)
admin/services/virtualisation.1459602695.txt.gz · Dernière modification : 2016/04/02 15:11 de gabriel.detraz

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki