« Deploy/SpaceWalk/Client » : différence entre les versions

De TartareFR
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
Ligne 486 : Ligne 486 :
* Déploiement de fichiers de configuration sur le client
* Déploiement de fichiers de configuration sur le client


==== Installation par le réseau ====
==== Let's net-install ====


On a donc jusqu'à présent deux méthodes d'installation:
On a donc jusqu'à présent deux méthodes d'installation:

Dernière version du 14 janvier 2014 à 15:13

Groupes


IconGroup.pngGroupes
  • Nom: CentOS 5
  • Description: Systems which use CentOS 5 i386 and x86_64 architectures
IconGroup.pngGroupes
  • Nom: CentOS 6
  • Description: Systems which use CentOS 6 i386 and x86_64 architectures

Clés d'activation

Il est conseillé de ne pas utiliser la fonction de génération de nom automatique, mais de spécifier un nom pertinent: ex: centos-5-channel. Cela rend l'installation plus facile et une plus grande homogénéité au système. D'un autre côté, afin de ne pas donner un accès aux channels à tous le monde, laisser le nom se générer automatiquement de manière aléatoire est le meilleur moyen d'empêcher les connexions.


IconKey.pngClé
  • Description: Default Key
  • Clé: (vide = automatiquement généré)
  • Channel de base: Spacewalk Default
  • Usage: (vide = usage illimité)

WidgetCheckboxChecked16.png Valeurs par défaut universelles
WidgetCheckbox16.png Déploiement de fichier de configuration

Droits additionnels

  • WidgetCheckboxChecked16.png Monitoring
  • WidgetCheckboxChecked16.png Provisioning
  • WidgetCheckbox16.png Virtualisation
  • WidgetCheckbox16.png Plateforme de virtualisation
IconKey.pngClé
  • Description: Key for CentOS 5 i386
  • Clé: centos-5-i386-key
  • Channel de base: CentOS 5 Base - i386
  • Usage: (vide = usage illimité)

WidgetCheckbox16.png Valeurs par défaut universelles
WidgetCheckbox16.png Déploiement de fichier de configuration

Droits additionnels

  • WidgetCheckbox16.png Monitoring
  • WidgetCheckboxChecked16.png Provisioning
  • WidgetCheckbox16.png Virtualisation
  • WidgetCheckbox16.png Plateforme de virtualisation
IconKey.pngClé
  • Description: Key for CentOS 5 x86_64
  • Clé: centos-5-x86_64-key
  • Channel de base: CentOS 5 Base - x86_64
  • Usage: (vide = usage illimité)

WidgetCheckbox16.png Valeurs par défaut universelles
WidgetCheckbox16.png Déploiement de fichier de configuration

Droits additionnels

  • WidgetCheckbox16.png Monitoring
  • WidgetCheckboxChecked16.png Provisioning
  • WidgetCheckbox16.png Virtualisation
  • WidgetCheckbox16.png Plateforme de virtualisation
IconKey.pngClé
  • Description: Key for CentOS 6 i386
  • Clé: centos-6-i386-key
  • Channel de base: CentOS 6 Base - i386
  • Usage: (vide = usage illimité)

WidgetCheckbox16.png Valeurs par défaut universelles
WidgetCheckbox16.png Déploiement de fichier de configuration

Droits additionnels

  • WidgetCheckbox16.png Monitoring
  • WidgetCheckboxChecked16.png Provisioning
  • WidgetCheckbox16.png Virtualisation
  • WidgetCheckbox16.png Plateforme de virtualisation
IconKey.pngClé
  • Description: Key for CentOS 6 x86_64
  • Clé: centos-6-x86_64-key
  • Channel de base: CentOS 6 Base - x86_64
  • Usage: (vide = usage illimité)

WidgetCheckbox16.png Valeurs par défaut universelles
WidgetCheckbox16.png Déploiement de fichier de configuration

Droits additionnels

  • WidgetCheckbox16.png Monitoring
  • WidgetCheckboxChecked16.png Provisioning
  • WidgetCheckbox16.png Virtualisation
  • WidgetCheckbox16.png Plateforme de virtualisation

Enregistrement de Clients

Instructions pour enregistrer des clients avec Spacewalk 20

Prérequis

Sur le serveur spacewalk

  1. Avoir un channel de base Spacewalk (Channels > Manage Software Channels > Create New Channel)
  2. Avoir une clé d'activation pour ce channel.
Bug.png
Accès refusé
Par défaut le contenu du répertoire <path>/usr/share/rhn/wsgi/</path> n'est pas servi par Apache. L'enregistrement provoque l'erreur
An error has occurred:
Error communicating with server. The message was:
Forbidden
See /var/log/up2date for more information

Contrairement à ce qui est indiqué, ce n'est pas dans ce fichier que se trouve la solution mais dans les logs d'apache. Il faut ajouter au fichier <path>/etc/httpd/conf.d/zz-spacewalk-server-wsgi.conf</path>, la permission de servir et d'exécuter des scripts python pour le répertoire <path>/usr/share/rhn/wsgi/</path>.

<Directory "/usr/share/rhn/wsgi/">
    Options ExecCGI
    SetHandler wsgi-script
    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order allow,deny
        Allow from all
    </IfModule>
</Directory>

sur le client

  1. Mettre à jour du système
    yum update
    

Inscription d'un système

Note.png
rhnreg_ks avec l'option --force
<app>rhnreg_ks</app> est utilisé pour enregistrer des clients dans Spacewalk. Si vous avez besoin de re-enregistrer un client dans Spacewalk ou changer son enregistrement d'un environnement/serveur Spacewalk à un autre, vous pouvez utiliser l'option --force avec <app>rhnreg_ks</app>. autrement il n'y a aucune utilité à cette option.

Fedora

  1. Installer le dépôt RPM Spacewalk-client
    • Fedora 18
      rpm -Uvh http://yum.spacewalkproject.org/2.0-client/Fedora/18/x86_64/spacewalk-client-repo-2.0-3.fc18.noarch.rpm
      
    • Fedora 19
      rpm -Uvh http://yum.spacewalkproject.org/2.0-client/Fedora/19/x86_64/spacewalk-client-repo-2.0-3.fc19.noarch.rpm
      
  2. Installer les paquets sur le client
    yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin rhncfg-actions
    
  3. Enregistrer le client sur Spacewalk en utilisant la clé précedemment créée
    rhnreg_ks --serverUrl=http://YourSpacewalk.example.org/XMLRPC --activationkey=<key-with-fedora-custom-channel>
    rhnreg_ks --serverUrl=http://spacewalk.b2pweb.org/XMLRPC --activationkey=1-centos-6-x86_64-key
    

RHEL 5 and 6, Scientific Linux 6, CentOS 5 or 6

Warning.png
Invalidation du support RedHat
Si on installe les paquets suivants sur une Red Hat Enterprise Linux, ils supplante les paquets originaux et peuvent invalider votre support Red Hat!
  1. Installer le dépôt RPM Spacewalk-client
    • RHEL 5 / CentOS 5
      rpm -Uvh http://yum.spacewalkproject.org/2.0-client/RHEL/5/x86_64/spacewalk-client-repo-2.0-3.el5.noarch.rpm
      
    • RHEL 6 / SL 6 / CentOS 6
      rpm -Uvh http://yum.spacewalkproject.org/2.0-client/RHEL/6/x86_64/spacewalk-client-repo-2.0-3.el6.noarch.rpm
      
  2. Les outils clients de Spacewalk peuvent avoir des dépendances externes au dépôt de base. Celles-ci peuvent être trouvées dans le dépôt EPEL. comme pour le serveur Spacewalk, on va installer ce dépôt.
    • EPEL 5
      BASEARCH=$(uname -i)
      
      rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/$BASEARCH/epel-release-5-4.noarch.rpm
      
    • EPEL 6
      BASEARCH=$(uname -i)
      
      rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/$BASEARCH/epel-release-6-8.noarch.rpm
      
  3. Installer les paquets sur le client
    yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin
    
  4. Enregistrer le client sur Spacewalk en utilisant la clé précedemment créée
    rhnreg_ks --serverUrl=http://spacewalk.b2pweb.com/XMLRPC --activationkey=<key-with-rhel-custom-channel>
    
Note.png
Exemple d'installation, d'inscription et de configuration
On part d'une CentOS 6 x86_64 fraichement installée.
  1. rpm -Uvh http://mirrors.ircam.fr/pub/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
    
  2. rpm -Uvh http://spacewalk.redhat.com/yum/2.0-client/RHEL/6/x86_64/spacewalk-client-repo-2.0-3.el6.noarch.rpm
    
  3. yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin rhncfg-actions osad
    
  4. pushd /usr/share/rhn/ ; wget http://spacewalk.b2pweb.com/pub/RHN-ORG-TRUSTED-SSL-CERT ; popd
    
  5. sed -i -e '/osa_ssl_cert/ s/=.*/= \/usr\/share\/rhn\/RHN-ORG-TRUSTED-SSL-CERT/' /etc/sysconfig/rhn/osad.conf
    
  6. Enregistrement
    1. Centos 5
      rhnreg_ks --serverUrl=https://spacewalk.b2pweb.com/XMLRPC --activationkey=1-centos-5-x86_64-key
      
    2. Centos 6
      rhnreg_ks --serverUrl=https://spacewalk.b2pweb.com/XMLRPC --activationkey=1-centos-6-x86_64-key
      
  7. chkconfig osad on ; service osad start
    
  8. rhn-actions-control --enable-all ; rhn-actions-control --report
    

OSAD

<app>osa-dispatcher</app> vérifie périodiquement que les clients soient toujours accessibles. Il envoie un message par jabberd aux instances <app>osad</app> fonctionnant sur les clients dont il a besoin de réponses. Les instances <app>osad</app> réponde à la commande <app>ping</app> via le serveur <app>jabberd</app>. <app>osa-dispatcher</app> reçoit la réponse, et marque le client comme en ligne. Si<app> osa-dispatcher</app> ne reçoit pas de réponse d'une instance <app>osad</app> dans un certain laps de temps, il est marqué comme déconnecté.

Le démon osa-dispatcher interroge aussi périodiquement la base de données pour voir si des clients ont des actions non-exécutées. Et s'il y en a, il envoie un message par <app>jabberd</app> au daemon <app>osad</app> du client, en lui demandant d'exécuter <app>rhn_check</app>. <app>rhn_check</app> prend alors en charge la requête réelle.

Installation de osa-dispatcher sur le serveur

On install le daemon osa-dispatcher sur le serveur Spacewalk, on configure son démarrage automatique

yum install osa-dispatcher
chkconfig osa-dispatcher on

La configuration se fait dans le fichier <path> /etc/rhn/rhn.conf file</path>, dans la section OSA Configuration.

On démarre le démon.

service osa-dispatcher start
Bug.png
osa-dispatcher plante
Si le service <app>osa-dispatcher</app> démarre mais plante après quelques instants. On peut trouver la cause dans les logs <path>/var/log/rhn/osa-dispatcher.log</path>
2013/08/28 12:35:48 +02:00 20147 0.0.0.0: osad/jabber_lib.setup_connection('Connected to jabber server', 'spacewalk.b2pweb.com')
2013/08/28 12:35:48 +02:00 20147 0.0.0.0: osad/jabber_lib.register('ERROR', 'Invalid password')
  • On arrête le service osa-dispatcher
    service osa-dispatcher stop
    
  • On arrête le service jabberd
    service jabberd stop
    
  • On efface le cache des bases de données jabber
    rm -f /var/lib/jabberd/db/*
    
  • On démarre le service jabberd
    service jabberd start
    
  • On démarre le service osa-dispatcher
    service osa-dispatcher start
    

Installation de osad sur le client

La configuration se fait dans les fichiers <path>/etc/sysconfig/rhn/osad.conf</path> et <path>/etc/sysconfig/rhn/up2date</path>

  • Installation du daemon <app>osad</app>
    yum install osad
    
  • On modifie la variable osa_ssl_cert dans le fichier de configuration du daemon: <path>/etc/sysconfig/rhn/osad.conf</path>
    osa_ssl_cert = /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
    
  • On télécharge le certificat du serveur
    cd /usr/share/rhn/ ; wget http://spacewalk.b2pweb.com/pub/RHN-ORG-TRUSTED-SSL-CERT
    
  • On configure le démarrage automatique
    chkconfig osad on
    
  • On démarre le service osad
    service osad start
    

Déploiement de fichiers/dossiers

Pré-requis

Modification sur chaque client

Il faut autoriser le déploiement. On peut visualiser les droits en vigueur ou les modifier avec la commande <app>rhn-actions-control</app>. Celle-ci fait partie du paquet <package>rhncfg-actions</package>.

On visualise les droits en vigueur, comme attendu, aucun droit n'existe

rhn-actions-control --report
deploy is disabled
diff is disabled
upload is disabled
mtime_upload is disabled
run is disabled

On modifie maintenant ces droits

rhn-actions-control --enable-all

Et on peut vérifier que les nouveaux droits ont été appliqués

rhn-actions-control --report
deploy is enabled
diff is enabled
upload is enabled
mtime_upload is enabled
run is enabled

Modification sur le serveur

  • On commence par sélectionner les systèmes concernés (ils doivent déjà être enregistrer dans Spacewalk) en cliquant sur l'onglet System.
  • Puis on sélectionne l'onglet Configuration
    Systems / Target systems
    Et on applique les changements proposés.
Activation de la gestion de configuration sur les clients Spacewalk
  • On créer un canal pour notre configuration:
IconLinux16.pngConfiguration channel
  • Name: CentOS 6 Backup
  • Label: centos-6-backup
  • Description: CentOS 6 mandatory files for backup
  • On peut maintenant ajouter un fichier, un dossier ou un lien symbolique
    Configuration Files / Centrally Managed Files
  • On applique les changements sur les clients
    Configuration Files / Deploy File

Déploiement manuel de nouveaux paquets sur le client

Pour installer un nouveau paquet depuis le dépôt sur un nouveau serveur:

  1. On se connecte à Spacewalk et on va à la section:
system -> "your system" -> Software -> Packages -> Install
  1. On choisit le paquet désiré dans la liste (par exemple xauth) et on clique sur Installer les paquets selectionnés
  2. On choisit l'option Exécuter dès que possible dans la page de confirmation et on clique sur Confirmer
  3. On se connecte sur le client et on liste les canaux auquel il est abonné en exécutant:
    rhn-channel --list
  4. On vérifie que le canal où a été faite la requête d'installation est bien listé. On vérifie ensuite que le paquet n'est pas déjà installé sur le client:
    rpm -qa | grep -i xauth
  5. Si le paquet n'est pas encore installé, on applique les modifications en attente (installation de paquet) en exécutant:
     rhn_check

The server will check for any pending actions (in this case installing the selected package) and execute (install the package) them. Now, check again to verify that the (xauth) package was installed by executing:

# rpm -qa | grep -i xauth
xorg-x11-xauth-1.0.2-7.1.el6.x86_64

Déploiement manuel de fichiers de configuration sur le client

La gestion de fichiers de configuration d'un système linux par Spacewalk peut se faire grâce aux canaux.

  1. On créé un nouveau canal de configuration en allant à la section:
    Configuration -> Configuration channels -> create new config channel
  2. On renseigne les informations d'identification du canal
    • Name: My Config Channel
    • Label: myConfigChannel
    • Description: My Config Channel
  3. On implémente le canal avec des fichiers ou des dossiers en navigant à la page
    Select the configuration channel -> add files -> create file
  4. On peut maintenant créé des fichiers, des dossiers et des liens symboliques, spécifier le propriétaire et les droits d'accès. Dans le cas d'un fichier, on peut ajouter le contenu en ligne via l'éditeur en ligne. On clique sur Create Configuration File pour finaliser l'action.

Pour déployer ce fichier aux systèmes enregistrés, ces systèmes doivent d'abord souscrire au canal de configuration.

  1. Dans Spacewalk, on navigue jusqu'à la page
    systems -> "your system" -> configuration -> manage configuration channels -> subscribe to channels
  2. On vérifie que le client est bien inscrit à notre nouveau canal de configuration en exécutant la commande
    rhncfg-client channels
  3. Si le canal apparait dans la sortie de la commande précédente, on peut acquérir les fichiers (ou répertoires)
    rhncfg-client get
  4. On peut vérifier la différence entre le système et le canal de configuration en tapant
    rhncfg-client diff

Exemple de commandes

rhncfg-client channels

rhncfg-client channels
 Using server name spacewalk
 Config channels:
 Label Name
 ----- ----
 myConfigChannel My Config Channel

rhncfg-client get

rhncfg-client get
 Using server name spacewalk
 Deploying /opt/oracle
 Deploying /opt/oracle/middleware
 Deploying /opt/oracle/middleware/jrockit

Inclure des macros dans vos fichiers de configuration

Dans la gestion des fichiers traditionnelle, vous devriez télécharger et distribuer chaque fichier séparément, même si la différence est minimale et qu'il existe un nombre de variations de l'ordre des centaines ou milliers. RHN simplifie la situation en permettant l'inclusion de macros ou variables, au sein des fichiers de configuration qu'il gère pour des systèmes possédant des droits d'accès d'approvisionnement. En plus des variables pour les informations de systèmes personnalisés, les macros standard suivantes sont prises en charge :

  • rhn.system.sid
  • rhn.system.profile_name
  • rhn.system.description
  • rhn.system.hostname
  • rhn.system.ip_address
  • rhn.system.custom_info(key_name)
  • rhn.system.net_interface.ip_address(eth_device)
  • rhn.system.net_interface.netmask(eth_device)
  • rhn.system.net_interface.broadcast(eth_device)
  • rhn.system.net_interface.hardware_address(eth_device)
  • rhn.system.net_interface.driver_module(eth_device)

Pour utiliser cette fonctionnalité puissante, vous pouvez soit télécharger soit créer un fichier de configuration via la page Configuration des détails pour les canaux. Ensuite, ouvrez sa page intitulée Détails du fichier de configuration et inclure les macros supportées de votre choix. Assurez-vous que les délimiteurs utilisés pour modifier vos variables correspondent à ceux définis dans les champs Délimiteur de début de macro et Délimiteur de fin de macro et qu'ils n'entrent pas en conflit avec d'autres caractères dans le fichier. Les délimiteurs doivent avoir deux caractères et ne peuvent pas contenir de symbole de pourcentage (%). Vous pouvez par exemple avoir un fichier applicable à tous vos serveurs et qui diffère seulement au niveau de l'adresse IP et du nom d'hôte. Plutôt que de gérer un fichier de configuration séparé pour chaque serveur, vous pouvez créer un seul fichier comme server.conf, qui inclut les macros concernant l'adresse IP et le nom d'hôte, comme dans l'extrait ci-dessous :

hostname={| rhn.system.hostname |}
ip_address={| rhn.system.net_interface.ip_address(eth0) |}

Après la livraison du fichier sur les systèmes individuels, que ce soit par le biais d'une action programmée dans le site web de RHN ou en ligne de commande avec le Client de configuration Red Hat Network (rhncfg-client), les variables seront substituées par le nom d'hôte et l'adresse IP du système, comme elles sont enregistrées dans le profil de système de RHN. Dans le fichier de configuration ci-dessus, par exemple, la version déployée ressemble à :

hostname=test.example.domain.com
ip_address=177.18.54.7

Pour saisir les informations personnalisées du système, insérez l'étiquette clé dans la macro des informations personnalisées (rhn.system.custom_info). Par exemple, si vous avez développé un "asset" avec une étiquette clé, vous pouvez l'ajouter à la macro des informations personnalisées dans un fichier de configuration pour que les valeurs soient substituées sur tout système contenant ce dernier. La macro ressemblerait à l'extrait suivant :

asset={@ rhn.system.custom_info(asset) @}

Après le déploiement du fichier sur un système contenant une valeur pour cette clé, la macro est traduite, produisant une chaîne comme dans l'extrait ci-dessous :

asset=Example#456

Pour inclure une valeur par défaut, par exemple si une valeur est nécessaire pour empêcher des erreurs, vous pouvez l'ajouter à la fin de la macro des informations personnalisées, comme dans l'extrait ci-dessous :

asset={@ rhn.system.custom_info(asset) = 'Asset #' @}

Cette valeur par défaut est surchargée par la valeur des systèmes la contenant. L'utilisation du Gestionnaire de configuration Red Hat Network (rhncfg-manager) ne traduira pas et ne changera pas des fichiers étant donné que cet outil ne reconnaît pas de système en particulier — rhncfg-manager ne dépend pas des paramètres système. Les fichiers binaires ne peuvent pas être interpolés.

Kickstart et Cobbler

Créer une distribution

Afin d'automatiser l'installation des systèmes Linux, on peut utiliser la méthode kickstart.

Préparation

  1. Il nous faut tout d'abord récupérer les images ISO des distributions que Spacewalk propose. Ces images seront placés dans le répertoire <path>/var/satellite/isos</path>:
    mkdir /var/satellite/isos && cd /var/satellite/isos
    
    • CentOS 5 i386
      wget http://centos.mirror.fr.planethoster.net/5/isos/i386/CentOS-5.10-i386-bin-DVD-1of2.iso
      
    • CentOS 5 x86_64
      wget http://centos.mirror.fr.planethoster.net/5/isos/x86_64/CentOS-5.10-x86_64-bin-DVD-1of2.iso
      
    • CentOS 6 i386
      wget http://centos.mirror.fr.planethoster.net/6/isos/i386/CentOS-6.5-i386-bin-DVD1.iso
      
    • CentOS 6 x86_64
      wget http://centos.mirror.fr.planethoster.net/6/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso
      
  2. On créer les points de montage temporaires pour ces images
    mkdir /mnt/centos-{5,6}-{i386,x86_64}
    
  3. Ensuite on monte les images ISO sur nos points de montage tout neuf.
    • CentOS 5 i386
      mount -t iso9660 -o loop /var/satellite/isos/CentOS-5.10-i386-bin-DVD-1of2.iso /mnt/centos-5-i386
      
    • CentOS 5 x86_64
      mount -t iso9660 -o loop /var/satellite/isos/CentOS-5.10-x86_64-bin-DVD-1of2.iso /mnt/centos-5-x86_64
      
    • CentOS 6 i386
      mount -t iso9660 -o loop /var/satellite/isos/CentOS-6.5-i386-bin-DVD1.iso /mnt/centos-6-i386
      
    • CentOS 6 x86_64
      mount -t iso9660 -o loop /var/satellite/isos/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/centos-6-x86_64
      
  4. Puis nous devons initialiser une arborescence afin d'y copier le contenu de nos DVD CentOS
    mkdir /var/distro-trees/centos{5.10,6.5}-{i386,x86_64}
    
  5. Et enfin, on va copier les répertoires images, isolinux et repodata dans l'arborescence de chaque distribution
    • CentOS 5 i386
      cp -rp /mnt/centos-5-i386/{images,isolinux,repodata,.treeinfo} /var/distro-trees/centos5.10-i386/
      
    • CentOS 5 x86_64
      cp -rp /mnt/centos-5-x86_64/{images,isolinux,repodata,.treeinfo} /var/distro-trees/centos5.10-x86_64/
      
    • CentOS 6 i386
      cp -rp /mnt/centos-6-i386/{images,isolinux,repodata,.treeinfo} /var/distro-trees/centos6.5-i386/
      
    • CentOS 6 x86_64
      cp -rp /mnt/centos-6-x86_64/{images,isolinux,repodata,.treeinfo} /var/distro-trees/centos6.5-x86_64/
      

Création d'une distribution dans Spacewalk

Dans Spacewalk

systems -> kickstart -> distributions -> new distribution
IconLinux16.pngDistribution
  • Étiquette de la distribution: centos5.9-i386
  • Chemin d'accès de l'arborescence: /var/distro-trees/centos5.9-i386
  • Canal de base: CentOS 5 Base - i386
  • Génération de l'installateur: Red Hat Enterprise Linux 5
IconLinux16.pngDistribution
  • Étiquette de la distribution: centos5.9-x86_64
  • Chemin d'accès de l'arborescence: /var/distro-trees/centos5.9-x86_64
  • Canal de base: CentOS 5 Base - x86_64
  • Génération de l'installateur: Red Hat Enterprise Linux 5
IconLinux16.pngDistribution
  • Étiquette de la distribution: centos6.4-i386
  • Chemin d'accès de l'arborescence: /var/distro-trees/centos6.4-i386
  • Canal de base: CentOS 6 Base - i386
  • Génération de l'installateur: Red Hat Enterprise Linux 6
IconLinux16.pngDistribution
  • Étiquette de la distribution: centos6.4-x86_64
  • Chemin d'accès de l'arborescence: /var/distro-trees/centos6.4-x86_64
  • Canal de base: CentOS 6 Base - x86_64
  • Génération de l'installateur: Red Hat Enterprise Linux 6

On créer ensuite un profil kickstart par canal et par distribution.

Dans l'interface web de Spacewalk

systems -> kickstart -> create new kickstart profile
IconLinux16.pngProfil Kickstart
  • Étiquette: centos-5-9-i386-minimal
  • Canal de base: CentOS 5 Base - i386
  • Arborescence du kickstart: centos5.9-i386
  • Virtualisation: (aucune)
  • Emplacement de téléchargement: /ks/dist/org/1/centos5.9-i386 (par défaut)
  • Mot de passe root: cobbler
IconLinux16.pngProfil Kickstart
  • Étiquette: centos-5-9-x86_64-minimal
  • Canal de base: CentOS 5 Base - x86_64
  • Arborescence du kickstart: centos5.9-x86_64
  • Virtualisation: CentOS 5 Base - x86_64
  • Emplacement de téléchargement: /ks/dist/org/1/centos5.9-x86_64 (par défaut)
  • Mot de passe root: cobbler
IconLinux16.pngProfil Kickstart
  • Étiquette: centos-6-4-i386-minimal
  • Canal de base: CentOS 6 Base - i386
  • Arborescence du kickstart: centos6.4-i386
  • Virtualisation: (aucune)
  • Emplacement de téléchargement: /ks/dist/org/1/centos6.4-i386 (par défaut)
  • Mot de passe root: cobbler
IconLinux16.pngProfil Kickstart
  • Étiquette: centos-6-4-x86_64-minimal
  • Canal de base: CentOS 6 Base - x86_64
  • Arborescence du kickstart: centos6.4-x86_64
  • Virtualisation: (aucune)
  • Emplacement de téléchargement: /ks/dist/org/1/centos6.4-x86_64 (par défaut)
  • Mot de passe root: cobbler
Important.png
Ajout du dépôt Spacewalk-client
Pour chaque profile kickstart, il faut s'assurer que le dépôt Spacewalk-client est utilisé durant l'installation kickstart en utilisant l'interface web
systems -> kickstart -> profiles -> <nom du profil> -> operating system
Et on s'assure que le canal <distribution>-spacewalkclient-<arch> est bien coché.

On peut aussi jeter un coup d'oeil aux autres onglets. Les points les plus intéressants sont:

  • Software: Pour ajouter des paquets supplémentaires à l'installation de base.
    On ajoute un paquet par ligne. Les groupes peuvent être ajoutés en préfixant le nom du groupe par le caractère @. Un paquet peut être exclut en le préfixant par un tiret ( le caractère - )
  • Kickstart details / Kernel options / Kernel options: Ajouter des options noyaux en ajoutant une paire clé/valeur au champs correspondant. Enlever une option en préfixant la clé par ! et en spécifiant ~ comme valeur.
    Par exemple "!text=~ resolution=800×600", dans le champs des options du noyau force à utiliser l'installateur graphique ( en supprimant l'option texte ) et force la résolution d'écran à 800x600.
  • Kickstart details / Advanced options: Autorise une configuration détaillée pour le système de démarrage kickstart.
    Par exemple, pour ajouter un utilisateur durant l'installation, nommé admin avec le mot de passe adminpasswd, on coche la case à cocher User et on spécifie "--name=admin --password=adminpasswd --plaintext" dans le champs prévu pour la valeur.
    C'est aussi ici que l'on précise que l'on veut un clavier français (fr-latin9), la langue française (fr_FR) et désactiver selinux (--disabled)
  • Kickstart details / Variables: L'usage des variables peut être utilisé en ajoutant une paire de clé/valeur et référer à un autre champs.
    Par exemple, même si celui-ci n'est pas pertinent mise à part la démonstration d'utilisation, de définir le nom d'hôte à l'installation en ajoutant une paire de clé/valeur: hostname=myhost et on peut ensuite s'y référer dans les options avancées en ajoutant "--hostname $hostname" dans le champs consacré aux réseaux.
firewall --disabled
keyboard fr-latin9
lang fr_FR
selinux --disabled
timezone --utc Europe/Paris
partitionning
  • une partition /boot de 200Mo
  • un partition de swap de 1Go agrandissable jusqu'à 2Go
  • un virtual group prennant tous l'espace disque restant
    • un volume logique pour la racine de 1Go agrandissable jusqu'à 5Go
    • un volume logique pour /var de 512Mo agrandissable jusqu'à 2Go
part /boot --fstype=ext3 --size=200 
part pv.01 --size=1024 --grow 
part swap --size=1024   --maxsize=2048 
volgroup vg0 pv.01 
logvol / --vgname=vg0 --name=lv0 --size=1024 --maxsize=5120 --grow
logvol /var --vgname=vg0 --name=lv1 --size=512 --maxsize=2048 --grow
scripts
yum update -y

Let’s cobbler

L'étape suivante consiste à créer une image au format ISO pour démarrer l'installation de n'importe laquelle de nos distributions. Dans quelques instants, nous allons pouvoir déployer une nouvelle machine. Si le réseau permet d'avoir un serveur DNS où le serveur Spacewalk peut être atteint par son nom d'hôte pleinement qualifié, on peut se passer de l'étape de modification des fichiers. En d'autre mots, les VMs nouvellement créées doivent pouvoir trouver le serveur Spacewalk en utilisant son nom d'hôte pleinement qualifié durant le démarrage ou l'installation. Si ce n'est pas le cas ou pour ne pas avoir à s'en soucier:

  1. Modification des fichiers de configuration
    1. Dans le fichier <path>/etc/rhn/rhn.conf</path>, modification du paramètre "cobbler.host" avec l'adresse IP du serveur Spacewalk.
    2. Dans le fichier <path>/etc/cobbler/settings</path>, modification des paramètres "server" et "redhat_management_server" avec l'adresse IP du serveur Spacewalk.
  2. Sur le serveur Spacewalk, on va installer les cobbler-loaders
    yum install cobbler-loaders
    
  3. On construit l'image ISO qui pourra servir à installer toutes nos distributions sur les systèmes ne supportant pas le boot PXE:
    cobbler buildiso --iso=/var/lib/tftpboot/b2pinstall.iso
    
    L' image ISO sera téléchargeable via TFTP
    echo 'get b2pinstall.iso' | tftp spacewalk.b2pweb.com
    

On vérifie que cobbler a tous ce qu'il lui faut

cobbler check
The following are potential configuration items that you may want to fix:

1 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'yum install cobbler-loaders' to download them, or,
    if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package
    installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include
    pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'yum install cobbler-loaders' command is the easiest way to resolve these requirements.
2 : debmirror package is not installed, it will be required to manage debian deployments and repositories
3 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is
    still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
4 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
Restart cobblerd and then run 'cobbler sync' to apply changes.
  1. Les boot-loaders ont été installés avec yum, donc le premier warning ne nous concerne pas.
  2. Cobbler nous informe que nous n'avons pas installés le support pour les paquets Debian.
  3. Cobbler nous informe également que le mot de passe root est celui par défaut (cobbler)
  4. Et enfin, Cobbler nous informe que nous n'avons pas de redondance possible car des outils sont manquant.

Donc rien de bloquant pour continuer

On redémarre le service cobblerd

service cobblerd restart

On synchronise cobbler

cobbler sync
task started: 2013-09-02_112553_sync
task started (id=Sync, time=Mon Sep  2 11:25:53 2013)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/Centos5-i386:1:SpacewalkDefaultOrganization
removing: /var/www/cobbler/images/Centos6-x86_64:1:SpacewalkDefaultOrganization
removing: /var/www/cobbler/images/Centos5-i386xen:1:SpacewalkDefaultOrganization
removing: /var/www/cobbler/images/Centos5-x86_64xen:1:SpacewalkDefaultOrganization
removing: /var/www/cobbler/images/Centos6-i386:1:SpacewalkDefaultOrganization
removing: /var/www/cobbler/images/Centos5-x86_64:1:SpacewalkDefaultOrganization
removing: -v/pxelinux.cfg/default
removing: -v/grub/images
removing: -v/grub/efidefault
removing: -v/images/Centos5-i386:1:SpacewalkDefaultOrganization
removing: -v/images/Centos6-x86_64:1:SpacewalkDefaultOrganization
removing: -v/images/Centos5-i386xen:1:SpacewalkDefaultOrganization
removing: -v/images/Centos5-x86_64xen:1:SpacewalkDefaultOrganization
removing: -v/images/Centos6-i386:1:SpacewalkDefaultOrganization
removing: -v/images/Centos5-x86_64:1:SpacewalkDefaultOrganization
removing: -v/s390x/profile_list
copying bootloaders
copying distros
copying files for distro: Centos5-x86_64xen:1:SpacewalkDefaultOrganization
trying hardlink /var/distro-trees/centos-5-x86_64/images/xen/vmlinuz -> -v/images/Centos5-x86_64xen:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-5-x86_64/images/xen/initrd.img -> -v/images/Centos5-x86_64xen:1:SpacewalkDefaultOrganization/initrd.img
trying hardlink /var/distro-trees/centos-5-x86_64/images/xen/vmlinuz -> /var/www/cobbler/images/Centos5-x86_64xen:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-5-x86_64/images/xen/initrd.img -> /var/www/cobbler/images/Centos5-x86_64xen:1:SpacewalkDefaultOrganization/initrd.img
copying files for distro: Centos5-x86_64:1:SpacewalkDefaultOrganization
trying hardlink /var/distro-trees/centos-5-x86_64/images/pxeboot/vmlinuz -> -v/images/Centos5-x86_64:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-5-x86_64/images/pxeboot/initrd.img -> -v/images/Centos5-x86_64:1:SpacewalkDefaultOrganization/initrd.img
trying hardlink /var/distro-trees/centos-5-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/Centos5-x86_64:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-5-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/Centos5-x86_64:1:SpacewalkDefaultOrganization/initrd.img
copying files for distro: Centos6-x86_64:1:SpacewalkDefaultOrganization
trying hardlink /var/distro-trees/centos-6-x86_64/images/pxeboot/vmlinuz -> -v/images/Centos6-x86_64:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-6-x86_64/images/pxeboot/initrd.img -> -v/images/Centos6-x86_64:1:SpacewalkDefaultOrganization/initrd.img
trying hardlink /var/distro-trees/centos-6-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/Centos6-x86_64:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-6-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/Centos6-x86_64:1:SpacewalkDefaultOrganization/initrd.img
copying files for distro: Centos6-i386:1:SpacewalkDefaultOrganization
trying hardlink /var/distro-trees/centos-6-i386/images/pxeboot/vmlinuz -> -v/images/Centos6-i386:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-6-i386/images/pxeboot/initrd.img -> -v/images/Centos6-i386:1:SpacewalkDefaultOrganization/initrd.img
trying hardlink /var/distro-trees/centos-6-i386/images/pxeboot/vmlinuz -> /var/www/cobbler/images/Centos6-i386:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-6-i386/images/pxeboot/initrd.img -> /var/www/cobbler/images/Centos6-i386:1:SpacewalkDefaultOrganization/initrd.img
copying files for distro: Centos5-i386:1:SpacewalkDefaultOrganization
trying hardlink /var/distro-trees/centos-5-i386/images/pxeboot/vmlinuz -> -v/images/Centos5-i386:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-5-i386/images/pxeboot/initrd.img -> -v/images/Centos5-i386:1:SpacewalkDefaultOrganization/initrd.img
trying hardlink /var/distro-trees/centos-5-i386/images/pxeboot/vmlinuz -> /var/www/cobbler/images/Centos5-i386:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-5-i386/images/pxeboot/initrd.img -> /var/www/cobbler/images/Centos5-i386:1:SpacewalkDefaultOrganization/initrd.img
copying files for distro: Centos5-i386xen:1:SpacewalkDefaultOrganization
trying hardlink /var/distro-trees/centos-5-i386/images/xen/vmlinuz -> -v/images/Centos5-i386xen:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-5-i386/images/xen/initrd.img -> -v/images/Centos5-i386xen:1:SpacewalkDefaultOrganization/initrd.img
trying hardlink /var/distro-trees/centos-5-i386/images/xen/vmlinuz -> /var/www/cobbler/images/Centos5-i386xen:1:SpacewalkDefaultOrganization/vmlinuz
trying hardlink /var/distro-trees/centos-5-i386/images/xen/initrd.img -> /var/www/cobbler/images/Centos5-i386xen:1:SpacewalkDefaultOrganization/initrd.img
copying images
generating PXE configuration files
cleaning link caches
generating PXE menu structure
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***
Bug.png
Fichiers pxelinux.0 et/ou menu.c32 non servis
La commande cobbler sync créé un lien symbolique depuis le répertoire <path>/usr/share/syslinux</path> et tftpd ne peut suivre ce lien car il est chrooté dans le répertoire <path>/var/lib/tftpboot</path>. Il faut donc supprimer les deux liens et copier les cibles dans celui-ci.
rm -f /var/lib/tftpboot/pxelinux.0 /var/lib/tftpboot/menu.c32
cp -p /usr/share/syslinux/pxelinux.0 /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

On vérifie maintenant que toutes nos distributions soient présentes

cobbler distro list
   centos59-i386:1:SpacewalkDefaultOrganization
   centos59-i386xen:1:SpacewalkDefaultOrganization
   centos59-x86_64:1:SpacewalkDefaultOrganization
   centos59-x86_64xen:1:SpacewalkDefaultOrganization
   centos64-i386:1:SpacewalkDefaultOrganization
   centos64-x86_64:1:SpacewalkDefaultOrganization

Pareil pour nos profils

cobbler profile list
   centos-5-9-i386-minimal:1:SpacewalkDefaultOrganization
   centos-5-9-x86_64-minimal:1:SpacewalkDefaultOrganization
   centos-6-4-i386-minimal:1:SpacewalkDefaultOrganization
   centos-6-4-x86_64-minimal:1:SpacewalkDefaultOrganization

Let’s kickstart

On peut maintenant démarrer l'installation d'une de nos distributions en bootant soit sur l'image ISO précédemment créée: b2pinstall.iso, soit sur un boot PXE et choisir la distribution à installer.

Menu de boot

Après avoir sélectionner la distribution, l'installation commence. Si tout va bien, celle-ci se fera de manière complètement automatisée, sans aucune intervention humaine.

Warning.png
Message "Error downloading kickstart file"
Si le message d'erreur "Error downloading kickstart file" est affiché, c'est probablement un problème DNS.
Important.png
Système enregistré
Il faut vérifier que le système s'enregistre sur Spacewalk et doit apparaitre dans l'onglet système de l'interface web de Spacewalk. Dans le cas contraire, il faut l'enregistrer à la main.

On peut maintenant configurer cet hôte comme client spacewalk

La configuration de ce nouvel hôte peut être fait par deux moyens:

  • Déploiement de nouveaux paquets sur le client
  • Déploiement de fichiers de configuration sur le client

Let's net-install

On a donc jusqu'à présent deux méthodes d'installation:

  • boot sur un iso
  • boot pxe

On va maintenant rajouter une troisième méthode d'installation: l'installation par le réseau.

Note.png
Copie de fichier
Le fichier à copier dans l'arbre cobbler est <path>.treeinfo</path>, mais celui-ci a déjà été copié précédemment lors de la Préparation

On ajoute un script post cobbler sync: <path>/var/lib/cobbler/triggers/sync/post/treeinfo.sh</path>. On n'oublie pas de le rendre exécutable.

#!/bin/bash

cp /var/distro-trees/centos5.10-i386/.treeinfo /var/www/cobbler/images/centos5-i386\:1\:SpacewalkDefaultOrganization/
cp /var/distro-trees/centos5.10-x86_64/.treeinfo /var/www/cobbler/images/centos5-x86_64\:1\:SpacewalkDefaultOrganization/
cp /var/distro-trees/centos6.5-i386/.treeinfo /var/www/cobbler/images/centos6-i386\:1\:SpacewalkDefaultOrganization/
cp /var/distro-trees/centos6.5-x86_64/.treeinfo /var/www/cobbler/images/centos6-x86_64\:1\:SpacewalkDefaultOrganization/

sed -i -e '/kernel/ s/=.*/= vmlinuz/' -e '/initrd/ s/=.*/= initrd.img/' -e '/mainimage/ s/=.*/= install.img/' /var/www/cobbler/images/centos*-*\:1\:SpacewalkDefaultOrganization/.treeinfo

On lance une synchro Cobbler

cobbler sync

Et c'est tout.

L'installation par le réseau devient possible en spécifiant l'URL Spacewalk correspondante à la distribution souhaitée.

Exemple, pour une CentOS 6 x86_64, il faudra spécifier l'URL suivante:

http://spacewalk.b2pweb.com/cobbler/images/centos6-x86_64:1:SpacewalkDefaultOrganization/

OpenSCAP

  • Installation du daemon <app>oscap-scan</app>
    yum install oscap-scan
    
  • On configure le démarrage automatique
    chkconfig oscap-scan on
    
  • On démarre le service osad
    service oscap-scan start