Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tuto:virtualisation:virt_install_cos5 [21/01/2010 17:03] dani |
tuto:virtualisation:virt_install_cos5 [12/07/2012 23:29] (Version actuelle) dani Page moved from virt_install_cos5 to tuto:virtualisation:virt_install_cos5 |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
===== Configuration des dépôts ===== | ===== Configuration des dépôts ===== | ||
- | Configurer les dépôts RPMForge, EPEL, ATRpms, fws et lfarkas | + | Configurer les dépôts RPMForge, EPEL, ATRpms, fws (voir [[tuto: |
===== Installation des outils de base ===== | ===== Installation des outils de base ===== | ||
Ligne 11: | Ligne 11: | ||
===== Installation des outils de virtualisation ===== | ===== Installation des outils de virtualisation ===== | ||
- | < | + | < |
- | yum install | + | yum --enablerepo=epel --enablerepo=fws |
</ | </ | ||
- | Puis: | ||
- | < | ||
- | yum --enablerepo=fws install perl-Sys-Virt libvirt | ||
- | </ | ||
- | FIXME: il y'a un problème avec le dépôt, pour l' | ||
- | < | + | Pour avoir les dernières versions: |
- | yum --enablerepo=epel install pbzip2 | + | |
- | </ | + | |
- | ===== Ajustements | + | < |
- | + | yum --enablerepo=epel --enablerepo=fws | |
- | Il faut ajouter une politique de sécurité personnalisée pour autoriser qemu à accéder aux volumes logiques LVM, à certains binaires (save/ | + | |
- | + | ||
- | < | + | |
- | mkdir -p / | + | |
- | cd / | + | |
- | vim qemucustom.te | + | |
- | </ | + | |
- | Puis y placer les lignes suivantes: | + | |
- | < | + | |
- | module qemucustom 1.0; | + | |
- | + | ||
- | require { | + | |
- | type virt_var_lib_t; | + | |
- | type shell_exec_t; | + | |
- | type tmp_t; | + | |
- | type bin_t; | + | |
- | type qemu_t; | + | |
- | class lnk_file read; | + | |
- | class file { ioctl execute execute_no_trans read getattr append write}; | + | |
- | class dir { write add_name }; | + | |
- | class sock_file create; | + | |
- | } | + | |
- | + | ||
- | #============= qemu_t ============== | + | |
- | allow qemu_t bin_t: | + | |
- | allow qemu_t shell_exec_t: | + | |
- | allow qemu_t virt_var_lib_t: | + | |
- | allow qemu_t virt_var_lib_t: | + | |
- | allow qemu_t virt_var_lib_t: | + | |
- | allow qemu_t bin_t:file { read getattr execute execute_no_trans }; | + | |
- | </ | + | |
- | + | ||
- | Il faut maintenant compiler ce fichier en module chargeable dans le noyau | + | |
- | < | + | |
- | checkmodule | + | |
- | semodule_package | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | Maintenant, il reste à mettre en place un script wrapper autour de qemu-kvm pour modifier le label des volumes LVM à la volé, avant de démarrer une machine: | + | |
- | + | ||
- | < | + | |
- | cat <<" | + | |
- | #!/bin/sh | + | |
- | + | ||
- | for VG in data usb1; do | + | |
- | if [ -e /dev/\$VG ]; then | + | |
- | chcon -t virt_image_t / | + | |
- | blockdev --setra 32768 / | + | |
- | fi | + | |
- | done | + | |
- | + | ||
- | exec / | + | |
- | exit \$? | + | |
- | EOF | + | |
- | chmod 755 / | + | |
- | ln -s / | + | |
</ | </ | ||
- | Bien sûre en remplaçant **data** et **usb1** par vos VG | ||
===== Configuration de l' | ===== Configuration de l' | ||
Ligne 125: | Ligne 60: | ||
</ | </ | ||
+ | ===== Configuration de libvirt ===== | ||
+ | Déplacez le fichier de configuration par défaut. Il est conseillé de le conserver car il est très commenté | ||
+ | < | ||
+ | cd / | ||
+ | mv libvirtd.conf libvirtd.conf.default | ||
+ | cat <<EOF > libvirtd.conf | ||
+ | listen_tls = 0 | ||
+ | unix_sock_group = " | ||
+ | unix_sock_rw_perms = " | ||
+ | log_level = 1 | ||
+ | log_filters=" | ||
+ | log_outputs=" | ||
+ | |||
+ | |||
+ | auth_unix_ro = " | ||
+ | auth_unix_rw = " | ||
+ | |||
+ | EOF | ||
+ | mv qemu.conf qemu.conf.default | ||
+ | cat <<EOF > qemu.conf | ||
+ | user = " | ||
+ | group = " | ||
+ | save_image_format = " | ||
+ | mac_filter = 0 | ||
+ | EOF | ||
+ | </ | ||
===== Connexion distante à libvirt ===== | ===== Connexion distante à libvirt ===== | ||
Ligne 136: | Ligne 97: | ||
</ | </ | ||
- | ==== Ajustement des permissions du socket ==== | ||
- | Éditer le fichier / | ||
- | < | ||
- | ################################################################# | ||
- | # | ||
- | # UNIX socket access controls | ||
- | # | ||
- | # Set the UNIX domain socket group ownership. This can be used to | ||
- | # allow a ' | ||
- | # without becoming root. | ||
- | # | ||
- | # This is restricted to ' | ||
- | unix_sock_group = " | ||
- | |||
- | # Set the UNIX socket permissions for the R/O socket. This is used | ||
- | # for monitoring VM status only | ||
- | # | ||
- | # Default allows any user. If setting group ownership may want to | ||
- | # restrict this to: | ||
- | # | ||
- | |||
- | # Set the UNIX socket permissions for the R/W socket. This is used | ||
- | # for full management of VMs | ||
- | # | ||
- | # Default allows only root. If PolicyKit is enabled on the socket, | ||
- | # the default will change to allow everyone (eg, 0777) | ||
- | # | ||
- | # If not using PolicyKit and setting group ownership for access | ||
- | # control then you may want to relax this to: | ||
- | unix_sock_rw_perms = " | ||
- | |||
- | # Set the name of the directory in which sockets will be found/ | ||
- | # | ||
- | |||
- | ################################################################# | ||
- | </ | ||
- | |||
- | Ces modifications permettent à tout les utilisateurs membre du groupe libvirt de contrôler entièrement libvirt (accès rw sur le socket rw). Pour appliquer les changements, | ||
- | < | ||
- | / | ||
- | </ | ||
==== Mettre en place une authentification SSH par clef (sans mot de passe) ==== | ==== Mettre en place une authentification SSH par clef (sans mot de passe) ==== | ||
Ligne 191: | Ligne 111: | ||
Puis placer votre clef publique dans le fichier authorized_keys | Puis placer votre clef publique dans le fichier authorized_keys | ||
+ | ==== Démarrage auto de libvirt ==== | ||
+ | |||
+ | Le démon libvirt doit démarrer automatiquement: | ||
+ | |||
+ | <code bash> | ||
+ | chkconfig libvirtd on | ||
+ | chkconfig ksmd on | ||
+ | </ | ||
===== Monitoring ===== | ===== Monitoring ===== | ||
Le monitoring sera assuré par Zabbix. Un proxy sera installé sur la machine physique pour pouvoir remonter les info de toutes les machines virtuelles | Le monitoring sera assuré par Zabbix. Un proxy sera installé sur la machine physique pour pouvoir remonter les info de toutes les machines virtuelles |