tuto:virtualisation:virt_install_cos5

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édentes Révision précédente
Prochaine révision
Révision précédente
tuto:virtualisation:virt_install_cos5 [03/02/2010 11:23]
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 (voir [[divers:extras_repo|cette page]])+Configurer les dépôts RPMForge, EPEL, ATRpms, fws (voir [[tuto:ipasserelle:divers:extras_repo|cette page]])
  
 ===== Installation des outils de base ===== ===== Installation des outils de base =====
Ligne 11: Ligne 11:
  
 ===== Installation des outils de virtualisation ===== ===== Installation des outils de virtualisation =====
-<code> +<code bash
-yum install kvm+yum --enablerepo=epel --enablerepo=fws install virt-stack
 </code> </code>
-Puis: 
-<code> 
-yum --enablerepo=fws install perl-Sys-Virt libvirt 
-</code> 
-FIXME: il y'a un problème avec le dépôt, pour l'instant, il faut télécharger les rpm puis yum localinstall... 
  
-<code> +Pour avoir les dernières versions:
-yum --enablerepo=epel install pbzip2 +
-</code>+
  
-===== Ajustements  SELinux ===== +<code bash
- +yum --enablerepo=epel --enablerepo=fws --enablerepo=fws-testing install virt-stack
-Il faut ajouter une politique de sécurité personnalisée pour autoriser qemu à accéder aux volumes logiques LVM, à certains binaires (save/restore) etc... +
- +
-<code> +
-mkdir -p /etc/selinux/targeted/custom +
-cd /etc/selinux/targeted/custom +
-vim qemucustom.te +
-</code> +
-Puis y placer les lignes suivantes: +
-<code> +
-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:lnk_file read; +
-allow qemu_t shell_exec_t:file { read getattr execute execute_no_trans }; +
-allow qemu_t virt_var_lib_t:dir { write add_name }; +
-allow qemu_t virt_var_lib_t:file { ioctl append write }; +
-allow qemu_t virt_var_lib_t:sock_file create; +
-allow qemu_t bin_t:file { read getattr execute execute_no_trans }; +
-</code> +
- +
-Il faut maintenant compiler ce fichier en module chargeable dans le noyau +
-<code> +
-checkmodule ---o qemucustom.mod qemucustom.te +
-semodule_package -o qemucustom.pp -m qemucustom.mod +
-</code> +
- +
- +
-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: +
- +
-<code> +
-cat <<"EOF" > /usr/local/bin/qemu-kvm +
-#!/bin/sh +
- +
-for VG in data usb1; do +
-    if [ -e /dev/\$VG ]; then +
-        chcon -t virt_image_t /dev/mapper/\$VG-* +
-        blockdev --setra 32768 /dev/\$VG/+
-    fi +
-done +
- +
-exec /usr/libexec/qemu-kvm "\$@" +
-exit \$? +
-EOF +
-chmod 755 /usr/local/bin/qemu-kvm +
-ln -s /usr/local/bin/qemu-kvm /usr/bin/qemu-kvm+
 </code> </code>
-Bien sûre en remplaçant **data** et **usb1** par vos VG 
  
 ===== Configuration de l'interface "interne" en mode bridge ===== ===== Configuration de l'interface "interne" en mode bridge =====
Ligne 125: Ligne 60:
 </code> </code>
  
 +===== Configuration de libvirt =====
 +Déplacez le fichier de configuration par défaut. Il est conseillé de le conserver car il est très commenté
 +<code>
 +cd /etc/libvirt
 +mv libvirtd.conf libvirtd.conf.default
 +cat <<EOF > libvirtd.conf
 +listen_tls = 0
 +unix_sock_group = "libvirt"
 +unix_sock_rw_perms = "0770"
 +log_level = 1
 +log_filters="2:libvirt 1:qemu 2:util"
 +log_outputs="2:file:/var/log/libvirt/daemon.log"
 +
 +
 +auth_unix_ro = "none"
 +auth_unix_rw = "none"
 +
 +EOF
 +mv qemu.conf qemu.conf.default
 +cat <<EOF > qemu.conf
 +user = "qemu"
 +group = "kvm"
 +save_image_format = "lzop"
 +mac_filter = 0
 +EOF
 +</code>
  
 ===== Connexion distante à libvirt ===== ===== Connexion distante à libvirt =====
Ligne 136: Ligne 97:
 </code> </code>
  
-==== Ajustement des permissions du socket ==== 
-Éditer le fichier /etc/libvirt/libvirtd.conf et dé-commenter les lignes **unix_sock_group** et **unix_sock_rw_perms** 
-<code> 
-################################################################# 
-# 
-# UNIX socket access controls 
-# 
  
-# Set the UNIX domain socket group ownership. This can be used to 
-# allow a 'trusted' set of users access to management capabilities 
-# without becoming root. 
-# 
-# This is restricted to 'root' by default. 
-unix_sock_group = "libvirt" 
- 
-# 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: 
-#unix_sock_ro_perms = "0777" 
- 
-# 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 = "0770" 
-  
-# Set the name of the directory in which sockets will be found/created. 
-#unix_sock_dir = "/var/run/libvirt" 
-  
-################################################################# 
-</code> 
- 
-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, il faut redémarrer libvirt: 
-<code> 
-/etc/init.d/libvirtd restart 
-</code> 
  
 ==== 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
 +</code>
 ===== 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
  • tuto/virtualisation/virt_install_cos5.1265192615.txt.gz
  • Dernière modification: 03/02/2010 11:23
  • de dani