Créer un template de machine virtuelle sous OpenVZ
Le clonage, c'est bien. Mais il y a mieux !
L'utilisation de la virtualisation vous permet d'éviter la fastidieuse phase de configuration matériel.
L'utilisation des templates VPS d'OpenVZ vous permet d'éviter la fastidieuse phase d'installation de l'OS.
L'utilisation de vos propres templates VPS OpenVZ vous permettra d'éviter la fastidieuse phase de la configuration spécifique à vos besoins de votre serveur.
Restera à votre charge la configuration réseau dédiée à votre machine virtuelle. Dur, la vie de Sysops.
Introduction à OpenVZ
OpenVZ est un système de virtualisation basé sur des contenaires de machines virtuelles isolés. Ces serveurs virtuels sont appelés VE - Virtual Environment -, VPS - Virtual Private Server - ou VDS - Virtual Dedicated Server -.
Pourquoi créer un template spécifique de VPS ?
OpenVZ distribue un ensemble de template générique sur son site, rubrique download.
Vous pouvez bien sûr dupliquer une machine virtuelle existante. Mais ce clone n'est pas vierge.
Créer un template vous permet de prendre en compte vos préférences personnelles en terme d'environnement de travail de base.
Par exemple dans les templates d'OpenVZ, le fuseau horaire n'est pas paramétré pour la France, il n'y a pas de complétion, pas d'alias, la configuration par défaut de ssh et logrotate est moyenne, vos clés ssh ne sont pas installées, la configuration du repository d'apt-get est incomplète et non à jour...
Ce template personnel pourra ensuite servir à de base à la création de vos futures machines virtuelles pré-configurées.
Créer une machine virtuelle OpenVZ
Connectez-vous sur le host et créez un nouvel environnement à partir d'un template de référence. Les templates sont disponible sur le site d'OpenVZ, rubrique download. Dans l'exemple, je pars du template OpenVZ basé sur la distribution Ubuntu 9.04.
# vzctl create 555 --ostemplate ubuntu-9.04-x86 --hostname 555
Creating container private area (ubuntu-9.04-x86)
Performing postcreate actions
Container private area was created
Assignez à cette machine virtuelle une adresse IP publique et un serveur DNS :
# vzctl set 555 --ipadd <mon_IP_publique> --nameserver <Mon_DNS> --save
Saved parameters for CT 555
Démarrez la machine virtuelle :
# vzctl start 555
Starting container ...
Container is mounted
Adding IP address(es): xxx.xxx.xxx.xxx
Setting CPU units: 1000
Configure meminfo: 65536
File resolv.conf was modified
Container start in progress...
Vérifiez que la machine virtuelle accède à Internet :
# vzctl exec 555 ping -n -c 1 google.com
PING google.com (74.125.45.100) 56(84) bytes of data.
64 bytes from 74.125.45.100: icmp_seq=1 ttl=53 time=110 ms
--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 110.040/110.040/110.040/0.000 ms
Personnaliser la machine virtuelle OpenVZ
Connectez-vous à votre VPS :
# vzctl enter 555
entered into CT 555
root@555:/#
Mettez à jour le repository des paquets et installez la complétion bash et le gestionnaire de paquets aptitude :
root@555:/# apt-get update
root@555:/# apt-get install bash-completion aptitude
Identifiez les paquets installés par défaut dans ce template OpenVZ :
root@555:/# dpkg -l
Supprimez les paquets qui ne vous intéressent pas avec aptitude purge. Je vous suggère de vous focaliser sur les services pour des raisons de sécurité.
root@555:/# dpkg -l | grep -i server
Pour ce VE, je décide de supprimer tous services autre que OpenSSH :
root@555:/# aptitude purge apache2 apache2-doc apache2-mpm-prefork \
apache2-utils apache2.2-common bind9 samba samba-common
Personnaliser votre shell :
root@555:/# vi ~/.bashrc
Je change la fin du fichier pour activer la complétion et des alias courants :
# some more ls aliases
alias ll='ls -lh'
alias la='ls -A'
alias df='df -h'
#alias l='ls -CF'
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Vous pouvez changer la configuration du serveur SSH.
root@555:/# vi /etc/ssh/sshd_config
Consultez l'article l'essentiel de SSH pour plus d'informations.
Personnalisez l'éditeur de texte vi :
root@555:/# vi /etc/vim/vimrc
Pour ma part, je souhaite que les accolades associées soient affichées en surbrillance et que la recherche ignore la case.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
Ajoutez votre clé ssh pour sécuriser la connexion vers votre VPS guest. Depuis votre poste client, récupérez la clé publique, par exemple :
# cat ~/.ssh/id_rsa.pub
Copiez le résultat et revenez dans la console de la machine virtuelle :
root@555:/# mkdir ~/.ssh
root@555:/# vi ~/.ssh/authorized_keys
Copiez la clé dans le fichier et sauvegardez.
Réglez le fuseau horaire de votre serveur guest et continuez ainsi la personnalisation en ajoutant vos scripts préférés.
Terminer par la mise à niveau des paquets résiduels :
root@555:/# aptitude upgrade
Puis, supprimez les informations réseaux spécifiques à la création de ce template VE :
root@555:/# >/etc/resolv.conf
Enfin, quittez l'environnement virtuel et arrêtez-le :
root@555:/# exit
# vzctl stop 555
# vzctl set 555 --ipdel all --save
Créer le template de la machine virtuelle OpenVZ
Depuis une console sur le serveur OpenVZ host :
# cd /vz/private/555/
# tar czf /vz/template/cache/ubuntu-9.04-x86-SLA.tar.gz .
ou vous remplacerez SLA dans le nom de l'archive par ce que vous voulez.
Votre template est prêt.
Tester votre nouveau template OpenVZ
Pour vérifier que votre template OpenVZ est viable, il suffit de l'utiliser.
Créez une nouvelle machine virtuelle avec celui-ci, initialisez ses paramètres réseau, lancez-la et connectez vous dessus :
# vzctl create 666 --ostemplate ubuntu-9.04-x86-SLA --hostname 666
# vzctl set 666 --ipadd <mon_IP_publique> --nameserver <Mon_DNS> --save
# vzctl start 666
# vzctl enter 666
Testez vos personnalisations : connexion ssh, alias, services actifs,...
root@666:/# ps axf
PID TTY STAT TIME COMMAND
545 ? Ss 0:00 vzctl: pts/0
546 pts/0 Ss 0:00 \_ -bash
576 pts/0 R+ 0:00 \_ ps axf
1 ? Ss 0:00 init [2]
17 ? S 0:00 [init-logger]
405 ? Ss 0:00 /sbin/syslogd -u syslog
415 ? Ss 0:00 /usr/sbin/sshd
435 ? Ss 0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayal
474 ? Ss 0:00 sendmail: MTA: accepting connections
527 ? Ss 0:00 /usr/sbin/cron
534 ? S 0:00 /bin/sh /etc/init.d/ondemand background
540 ? S 0:00 \_ sleep 60
root@666:/# alias
alias df='df -h'
alias la='ls -A'
alias ll='ls -l'
alias ls='ls --color=auto'
Tout est OK. Les machines virtuelles de travail peuvent être supprimées.
root@666:/# exit
# vzctl stop 666
# vzctl destroy 666
# vzctl destroy 555
Vous disposez maintenant de votre propre template OpenVZ pré-configuré.
- Ajouter un commentaire
- 11057 lectures


™ 
Commentaires
Salut,
tres bien, mais comment faire pour changer les options dans l'nterface web de Proxmox, il reconnait pas les templates creer manuellement, il y a une solution ?
A+
Bonjour,
OpenVZ n'est pas Proxmox.
Concernant Proxmox, pour ajouter un nouveau template OpenVZ, allez dans le menu Appliance Templates, et uploader votre template. Il est alors ajouté à la liste OpenVZ Templates.
Merci beaucoup
Merci pour la rédaction de cet article qui m'a bien aidé dans la réalisation de mon projet ^^
Plaisir partagé