Pour gérer un parc grandissant de machines RHEL ou CentOS, il existe plusieurs solutions. La plus connue et la plus répandue est l’utilisation de Puppet et de Foreman ou de Red Hat Satellite 6.

  • Foreman est un outil Open Source vous permettant d’automatiser le provisioning (la création) de vos serveurs grâce à des profils Kickstart (pour l’installation initiale du système) et des modules Puppet (pour la configuration de vos systèmes). Foreman va aussi vous permettre de visualiser l’historique de vos déploiements à des fins de reporting et d’audit.
  • Katello est un plugin de lifecycle management pour Foreman qui gère les dépôts et les souscriptions. Grâce à ce plugin, vous aurez la possibilité de versionner vos canaux afin de distribuer des niveaux de patching différents à différents sous-ensembles de votre parc. Ceci vous permet de facilement mettre en place un processus de validation des mises à jour de sécurité arrivant des dépôts Red Hat ou CentOS, ainsi que de gérer vos propres dépôts internes.
  • Puppet est un logiciel Open Source de gestion des configurations qui vous permet de définir de façon centralisée les configurations de vos serveurs et de vous assurer que le parc entier se situe dans l’état voulu. Avec Puppet, vous pouvez aussi visualiser l’état de chaque serveur avec toutes ses caractéristiques.

System Components

Foreman : Foreman est une application open source utilisée pour le provisionnement et la gestion du cycle de vie de systèmes physiques et virtuels. Foreman configure automatiquement ces systèmes à l'aide de diverses méthodes, notamment les modules kickstart et Puppet. Foreman fournit également des données historiques pour la création de rapports, l'audit et le dépannage.

Katello : Katello est un plug-in Foreman pour la gestion des abonnements et des référentiels. Il fournit un moyen de s'abonner aux référentiels et de télécharger du contenu. Vous pouvez créer et gérer différentes versions de ce contenu et les appliquer à des systèmes spécifiques dans le cadre d'étapes du cycle de vie de l'application définies par l'utilisateur.

Candlepin : Candlepin est un service de Katello qui gère la gestion des abonnements.

Pulp : Pulp est un service de Katello qui gère les référentiels et les contenus. Pulp garantit un espace de stockage efficace en ne dupliquant pas les packages RPM, même à la demande des vues de contenu de différentes organisations.

Hammer : Hammer est un outil CLI qui fournit des équivalents de ligne de commande et de shell de la plupart des fonctions de l'interface utilisateur Web.

REST API : La plateforme inclut un service API RESTful qui permet aux administrateurs système et aux développeurs d'écrire des scripts personnalisés et des applications tierces en interface.

Capsule (Smart proxy) : Capsule Server est utilisée pour inclure les datacenters distants dans le processus de gestion. Une instance de Capsule Server est généralement déployée dans chaque datacenter distant pour fédérer les services comme l'approvisionnement, de manière à ce qu'ils puissent être exécutés localement. Capsule Server remplace Spacewalk Proxy.

Hardware Requirements

Katello peut être installé sur un hôte baremetal ou sur un invité virtuel.

Les exigences minimales sont les suivantes:

  • 2 processeurs logiques (4 processeurs logiques hautement recommandés)
  • 8 GB de memoire (12 GB hautement recommandé)
  • 4 GB de swap recommandés (il s'agit d'un minimum)
  • Le système de fichiers contenant /var/lib/pulp doit être volumineux, mais peut varier en fonction du nombre de systèmes d'exploitation différents que vous souhaitez synchroniser:
  • Allouer 30 Go d'espace pour chaque système d'exploitation. Même si un système d'exploitation peut ne pas occuper autant d'espace maintenant, cela laisse de la place pour les futures mises à jour qui seront synchronisées ultérieurement.
  • Le chemin /var/spool/squid/ est utilisé comme emplacement temporaire pour certains types de synchronisation de référentiel et peut atteindre 10 Go d'espace disque avant que les fichiers ne soient migrés vers /var/lib/pulp. Vous voudrez peut-être placer ceci sur la même partition que /var/lib/pulp.
  • Le système de fichiers contenant /var/lib/mongodb doit être installé sur une partition d'au moins 4 Go, mais cela dépend du nombre de systèmes d'exploitation que vous souhaitez synchroniser:
  • Allouer environ 40% de la capacité donnée au système de fichiers /var/lib/pulp
  • Le système de fichiers racine nécessite au moins 20 Go d'espace disque

Software Requirements

Une fois le système d'exploitation installé, l'administrateur aura besoin d'un accès root pour exécuter le programme d'installation. Une résolution DNS directe et inverse complète du domaine pleinement qualifié nommé de l'hôte est également requise. Les administrateurs doivent également vérifier que le nom d'hôte du système et l'hôte local sont résolus correctement à l'aide des commandes suivantes.

[root@foreman ~]# ping -c1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.076 ms
 
--- localhost ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.076/0.076/0.076/0.000 ms
[root@foreman ~]# ping -c1 $(hostname -s)
PING foreman.oowy.lan (10.75.168.22) 56(84) bytes of data.
64 bytes from foreman.oowy.lan (10.75.168.22): icmp_seq=1 ttl=64 time=0.056 ms
 
--- foreman.oowy.lan ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.056/0.056/0.056/0.000 ms
[root@foreman ~]# ping -c1 $(hostname -f)
PING foreman.oowy.lan (10.75.168.22) 56(84) bytes of data.
64 bytes from foreman.oowy.lan (10.75.168.22): icmp_seq=1 ttl=64 time=0.168 ms
 
--- foreman.oowy.lan ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.168/0.168/0.168/0.000 ms

L’hôte doit disposer des autorisations SELinux définies pour l’application forcée. Cela peut être configuré lors de l'installation du système d'exploitation avec l'option “kickstart” suivante :

selinux --enforcing
[root@foreman ~]# timedatectl set-timezone Europe/Paris
[root@foreman ~]# yum install chrony -y
[root@foreman ~]# systemctl enable chronyd && systemctl start chronyd
[root@foreman ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* ntp0.rrze.uni-erlangen.de     1  10   377   652   +252us[ +371us] +/-   29ms
^+ ntp-3.arkena.net              2  10   377   202    +12ms[  +12ms] +/-   97ms
^- master.servme.fr              3  10   357  1172   +349us[ +456us] +/-   66ms
^+ support4.russianbridesne>     3  10   377   21m   +547us[ +652us] +/-   95ms
[root@foreman ~]#

Les ports suivants doivent être ouverts aux connexions externes :

Port Protocol Service
80 TCP HTTP, used for provisioning purposes
443 TCP HTTPS, used for web access and api communication
5646 TCP qdrouterd - used for client and Smart Proxy actions
5647 TCP qdrouterd - used for client and Smart Proxy actions
5671 TCP amqp
8140 TCP Puppet
9090 TCP HTTPS - used for communication with the Smart Proxy
53 UDP/TCP DNS
67 UDP DHCP
68 UDP DHCP
69 UDP TFTP

Pour ajouter des règles dans firewalld.

[root@foreman ~]# firewall-cmd --permanent --add-port=80/tcp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=443/tcp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=5646/tcp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=5647/tcp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=5671/tcp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=8140/tcp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=9090/tcp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=53/tcp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=67/udp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=68/udp
success
[root@foreman ~]# firewall-cmd --permanent --add-port=69/udp
success
 
[root@foreman ~]# firewall-cmd --reload
success

Pour visualiser les règles.

[root@foreman ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources: 
  services: dhcpv6-client ssh
  ports: 53/tcp 67-69/udp 80/tcp 443/tcp 8140/tcp 5646/tcp 5647/tcp 5671/tcp 9090/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Required Repositories

yum -y localinstall http://fedorapeople.org/groups/katello/releases/yum/3.10/katello/el7/x86_64/katello-repos-latest.rpm
yum -y localinstall http://yum.theforeman.org/releases/1.20/el7/x86_64/foreman-release.rpm
yum -y localinstall https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm
yum -y localinstall install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install foreman-release-scl python-django

Installation

Après avoir configuré les référentiels appropriés, mettez à jour votre système :

yum -y update

Installez ensuite Katello:

yum -y install katello

À ce stade, l'installateur “foreman-installer” devrait être disponible pour configurer le serveur. L'installation peut être personnalisée pour afficher une liste d'options :

foreman-installer --scenario katello --help

Note:

Avant de lancer l'installateur, la machine doit être configurée avec un service d'horloge tel que ntpd ou chrony, car plusieurs fonctionnalités de Katello ne fonctionneront pas correctement s'il y a un décalage d'horloge mineur.

Celles-ci peuvent être définies comme options de ligne de commande ou dans le fichier de réponses (/etc/foreman-installer/scenarios.d/katello-answers.yaml). Exécutez maintenant les options:

Pour Foreman 1.20

foreman-installer --scenario katello --foreman-admin-username admin --foreman-admin-password <Specify_Password>

Pour Foreman 1.21

foreman-installer --scenario katello --foreman-initial-admin-username admin --foreman-initial-admin-password <Specify_Password>
[root@satellite ~]# foreman-installer --scenario katello --foreman-initial-admin-username admin --foreman-initial-admin-password 'admin@123!'
Resetting puppet server version param...
Installing        Done                                    [100%] [........................................]
  Success!
  * Katello is running at https://satellite.oowy.lan
      Initial credentials are admin / admin@123!
  * To install an additional Foreman proxy on separate machine continue by running:
 
      foreman-proxy-certs-generate --foreman-proxy-fqdn "$FOREMAN_PROXY" --certs-tar "/root/$FOREMAN_PROXY-certs.tar"
  The full log is at /var/log/foreman-installer/katello.log
Upgrade Step: remove_legacy_mongo...
yum install -y -q rh-mongodb34-syspaths finished successfully!

Une fois l'installation terminée, il nous suffit de nous rendre sur l'interface d'administration

Après l’installation, l’installateur de Foreman aura configuré un “puppet master” sur l’hôte, entièrement intégré à Foreman.

Exécutez d’abord l’agent Puppet sur l’hôte Foreman, qui enverra le premier rapport Puppet à Foreman, créant ainsi automatiquement l’hôte dans la base de données de Foreman.

# /opt/puppetlabs/bin/puppet agent --test

Note:

Puppet affichera un avertissement la première fois que le nœud est introuvable, cela peut être ignoré.

Dans Foreman, cliquez sur l'onglet Hosts et votre hôte devrait être visible dans la liste avec le statut «O». Cela indique que son statut est OK et qu'aucune modification n'a été apportée lors de la dernière exécution de Puppet.

Administration

Hammer CLI fournit aux utilisateurs une interface de ligne de commande permettant d’interagir avec Katello.

L'objectif est de rendre toutes les fonctionnalités accessibles depuis l'interface Web de Katello également disponibles via Hammer, afin que les utilisateurs puissent utiliser Hammer pour l'ensemble de leur flux de production.

La première étape pour installer le CLI consiste à configurer les référentiels appropriés: Foreman, Katello et Epel.

# yum -y localinstall http://fedorapeople.org/groups/katello/releases/yum/3.10/katello/el7/x86_64/katello-repos-latest.rpm
# yum -y localinstall http://yum.theforeman.org/releases/1.20/el7/x86_64/foreman-release.rpm
# yum -y localinstall http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Après avoir configuré les référentiels appropriés, installez Katello:

# yum -y install tfm-rubygem-hammer_cli_katello

Si l'on ne souhaite pas fournir à chaque commande hammer les identifiants.

# cat <<EOF> ~/.hammer/cli.modules.d/foreman.yml
:foreman:
 :host: 'foreman.oowy.lan'
 :username: 'admin'
 :password: '**********'
EOF

Si l'on souhaite définir une organisation et une localisation par défaut.

# hammer defaults add --param-name organization --param-value "OOWY.LAN" (Nom de l'organisation et pas le label)
# hammer defaults add --param-name location --param-value "paris" (Nom de la localisation)

Pour démarrer avec hammer, consultez l'aide:

hammer -u <user> -p <password> --help

Notre plateforme est maintenant installé et opérationnel. Nous allons maintenant créer notre organisation.

Manage Organisations > New Organisation :

La location (Localisation) est un objet qui va nous permettre de classer nos serveurs par CONTINENT/PAYS/VILLE, etc…

Manage locations > New location

Récupérer la clé GPG de CentOS 7 depuis les miroirs officiels.

Content > Content Credentials > Create Content Credential

Content > Sync Plans > Create Sync Plan

Content > Products > Create Product

Content > Lifecycle Environment Paths > Create Environment Paths

Création de 2 environnements :

  • Development
  • Production

Pour l'environnement de développement :

Pour l'environnement de production :

Une fois crée, on peut voir la liste des environnements :

Cliquez sur le bouton nouveau réferentiel

Entrez les informations relative au repository et cliquez sur sauvegarder

Répétez l’operation autant de fois que vous le souhaitez, une fois crée, on peut voir la liste des environnements.

Une fois les repositories ajoutés au produit, sélectionner les et cliquez sur le bouton synchroniser

Content > Content Views > Create Content View

Ajout de repositories à la vue de contenu Centos

Une fois les repositories ajoutés à l’affichage de contenu, selectionnez les et cliquez sur “Add repository”

Publication d’une nouvelle version de la vue de contenu Centos

Aprés l’ajout des repositories, Cliquez sur le bouton Publier la nouvelle version

Entrez une description et cliquez sur le bouton “save”

Promotion à un environnement de la version de notre “content view” Centos

Pour attacher votre version de vue de contenu a un environnement, cliquez sur “Promote”

Choisissez l’environnement pour lequel vous voulez publier cette version, par exemple “Development”, cliquez ensuite sur le bouton “Promote version” et sauvegardez.

Les hosts attachés a cette environnement auront accès aux repositories dans la version promue à cette environnement. Si nous mettons a jour nos repos, il faudra en publier et la promovoir a cette environnement pour les hosts y aient accès.

Content > Activation Keys > Create Activation Keys

Création de 2 clés d'activations (Development / Production)

Une fois la clé d’activation sauvegardée, cliquez sur l’onglet “Subscriptions”

Sélectionnez le produit pour y ajouter les repositories associés et cliquez sur le bouton “Add selected”

Prérequis :

  • chrony - synchronisé à une référence de temps
  • hosts - le server foreman est connue dans le hosts du client si il n'y a pas de DNS

Pour inscrire un hôte à notre serveur de management, procédez comme suit.

[root@client01 ~]# yum -y install subscription-manager
Modules complémentaires chargés : fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.plusserver.com
 * extras: miroir.univ-paris13.fr
 * updates: miroir.univ-paris13.fr
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet subscription-manager.x86_64 0:1.21.10-3.el7.centos sera installé
--> Traitement de la dépendance : subscription-manager-rhsm = 1.21.10 pour le paquet : subscription-manager-1.21.10-3.el7.centos.x86_64
--> Traitement de la dépendance : python-dmidecode >= 3.12.2-2 pour le paquet : subscription-manager-1.21.10-3.el7.centos.x86_64
--> Traitement de la dépendance : usermode pour le paquet : subscription-manager-1.21.10-3.el7.centos.x86_64
--> Traitement de la dépendance : python-six pour le paquet : subscription-manager-1.21.10-3.el7.centos.x86_64
--> Traitement de la dépendance : python-setuptools pour le paquet : subscription-manager-1.21.10-3.el7.centos.x86_64
--> Traitement de la dépendance : python-inotify pour le paquet : subscription-manager-1.21.10-3.el7.centos.x86_64
--> Traitement de la dépendance : python-ethtool pour le paquet : subscription-manager-1.21.10-3.el7.centos.x86_64
--> Traitement de la dépendance : python-dateutil pour le paquet : subscription-manager-1.21.10-3.el7.centos.x86_64
--> Lancement de la transaction de test
---> Le paquet python-dateutil.noarch 0:1.5-7.el7 sera installé
---> Le paquet python-dmidecode.x86_64 0:3.12.2-3.el7 sera installé
--> Traitement de la dépendance : libxml2-python pour le paquet : python-dmidecode-3.12.2-3.el7.x86_64
--> Traitement de la dépendance : libxml2mod.so()(64bit) pour le paquet : python-dmidecode-3.12.2-3.el7.x86_64
---> Le paquet python-ethtool.x86_64 0:0.8-7.el7 sera installé
--> Traitement de la dépendance : libnl.so.1()(64bit) pour le paquet : python-ethtool-0.8-7.el7.x86_64
---> Le paquet python-inotify.noarch 0:0.9.4-4.el7 sera installé
---> Le paquet python-setuptools.noarch 0:0.9.8-7.el7 sera installé
--> Traitement de la dépendance : python-backports-ssl_match_hostname pour le paquet : python-setuptools-0.9.8-7.el7.noarch
---> Le paquet python-six.noarch 0:1.9.0-2.el7 sera installé
---> Le paquet subscription-manager-rhsm.x86_64 0:1.21.10-3.el7.centos sera installé
--> Traitement de la dépendance : subscription-manager-rhsm-certificates = 1.21.10-3.el7.centos pour le paquet : subscription-manager-rhsm-1.21.10-3.el7.centos.x86_64
---> Le paquet usermode.x86_64 0:1.111-5.el7 sera installé
--> Lancement de la transaction de test
---> Le paquet libnl.x86_64 0:1.1.4-3.el7 sera installé
---> Le paquet libxml2-python.x86_64 0:2.9.1-6.el7_2.3 sera installé
---> Le paquet python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 sera installé
--> Traitement de la dépendance : python-ipaddress pour le paquet : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch
--> Traitement de la dépendance : python-backports pour le paquet : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch
---> Le paquet subscription-manager-rhsm-certificates.x86_64 0:1.21.10-3.el7.centos sera installé
--> Lancement de la transaction de test
---> Le paquet python-backports.x86_64 0:1.0-8.el7 sera installé
---> Le paquet python-ipaddress.noarch 0:1.0.16-2.el7 sera installé
--> Résolution des dépendances terminée

Dépendances résolues

=============================================================================================================================================
 Package                                              Architecture         Version                               Dépôt                 Taille
=============================================================================================================================================
Installation :
 subscription-manager                                 x86_64               1.21.10-3.el7.centos                  updates               1.0 M
Installation pour dépendances :
 libnl                                                x86_64               1.1.4-3.el7                           base                  128 k
 libxml2-python                                       x86_64               2.9.1-6.el7_2.3                       base                  247 k
 python-backports                                     x86_64               1.0-8.el7                             base                  5.8 k
 python-backports-ssl_match_hostname                  noarch               3.5.0.1-1.el7                         base                   13 k
 python-dateutil                                      noarch               1.5-7.el7                             base                   85 k
 python-dmidecode                                     x86_64               3.12.2-3.el7                          base                   83 k
 python-ethtool                                       x86_64               0.8-7.el7                             base                   33 k
 python-inotify                                       noarch               0.9.4-4.el7                           base                   49 k
 python-ipaddress                                     noarch               1.0.16-2.el7                          base                   34 k
 python-setuptools                                    noarch               0.9.8-7.el7                           base                  397 k
 python-six                                           noarch               1.9.0-2.el7                           base                   29 k
 subscription-manager-rhsm                            x86_64               1.21.10-3.el7.centos                  updates               297 k
 subscription-manager-rhsm-certificates               x86_64               1.21.10-3.el7.centos                  updates               207 k
 usermode                                             x86_64               1.111-5.el7                           base                  193 k

Résumé de la transaction
=============================================================================================================================================
Installation   1 Paquet (+14 Paquets en dépendance)

Taille totale des téléchargements : 2.8 M
Taille d'installation : 10 M
Downloading packages:
(1/15): python-backports-1.0-8.el7.x86_64.rpm                                                                         | 5.8 kB  00:00:00     
(2/15): libnl-1.1.4-3.el7.x86_64.rpm                                                                                  | 128 kB  00:00:00     
(3/15): python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm                                                  |  13 kB  00:00:00     
(4/15): libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm                                                                     | 247 kB  00:00:00     
(5/15): python-dmidecode-3.12.2-3.el7.x86_64.rpm                                                                      |  83 kB  00:00:00     
(6/15): python-dateutil-1.5-7.el7.noarch.rpm                                                                          |  85 kB  00:00:00     
(7/15): python-inotify-0.9.4-4.el7.noarch.rpm                                                                         |  49 kB  00:00:00     
(8/15): python-ethtool-0.8-7.el7.x86_64.rpm                                                                           |  33 kB  00:00:00     
(9/15): python-six-1.9.0-2.el7.noarch.rpm                                                                             |  29 kB  00:00:00     
(10/15): python-setuptools-0.9.8-7.el7.noarch.rpm                                                                     | 397 kB  00:00:00     
(11/15): python-ipaddress-1.0.16-2.el7.noarch.rpm                                                                     |  34 kB  00:00:01     
(12/15): usermode-1.111-5.el7.x86_64.rpm                                                                              | 193 kB  00:00:00     
(13/15): subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64.rpm                                       | 207 kB  00:00:02     
(14/15): subscription-manager-rhsm-1.21.10-3.el7.centos.x86_64.rpm                                                    | 297 kB  00:00:03     
(15/15): subscription-manager-1.21.10-3.el7.centos.x86_64.rpm                                                         | 1.0 MB  00:00:05     
---------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                        369 kB/s | 2.8 MB  00:00:07     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : python-six-1.9.0-2.el7.noarch                                                                                          1/15 
  Installation : python-dateutil-1.5-7.el7.noarch                                                                                       2/15 
  Installation : usermode-1.111-5.el7.x86_64                                                                                            3/15 
  Installation : libnl-1.1.4-3.el7.x86_64                                                                                               4/15 
  Installation : python-ethtool-0.8-7.el7.x86_64                                                                                        5/15 
  Installation : python-ipaddress-1.0.16-2.el7.noarch                                                                                   6/15 
  Installation : subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64                                                     7/15 
  Installation : subscription-manager-rhsm-1.21.10-3.el7.centos.x86_64                                                                  8/15 
  Installation : python-backports-1.0-8.el7.x86_64                                                                                      9/15 
  Installation : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch                                                              10/15 
  Installation : python-setuptools-0.9.8-7.el7.noarch                                                                                  11/15 
  Installation : python-inotify-0.9.4-4.el7.noarch                                                                                     12/15 
  Installation : libxml2-python-2.9.1-6.el7_2.3.x86_64                                                                                 13/15 
  Installation : python-dmidecode-3.12.2-3.el7.x86_64                                                                                  14/15 
  Installation : subscription-manager-1.21.10-3.el7.centos.x86_64                                                                      15/15 
  Vérification : subscription-manager-rhsm-1.21.10-3.el7.centos.x86_64                                                                  1/15 
  Vérification : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch                                                               2/15 
  Vérification : python-dateutil-1.5-7.el7.noarch                                                                                       3/15 
  Vérification : libxml2-python-2.9.1-6.el7_2.3.x86_64                                                                                  4/15 
  Vérification : python-inotify-0.9.4-4.el7.noarch                                                                                      5/15 
  Vérification : python-backports-1.0-8.el7.x86_64                                                                                      6/15 
  Vérification : subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64                                                     7/15 
  Vérification : python-ipaddress-1.0.16-2.el7.noarch                                                                                   8/15 
  Vérification : libnl-1.1.4-3.el7.x86_64                                                                                               9/15 
  Vérification : subscription-manager-1.21.10-3.el7.centos.x86_64                                                                      10/15 
  Vérification : python-six-1.9.0-2.el7.noarch                                                                                         11/15 
  Vérification : python-setuptools-0.9.8-7.el7.noarch                                                                                  12/15 
  Vérification : usermode-1.111-5.el7.x86_64                                                                                           13/15 
  Vérification : python-ethtool-0.8-7.el7.x86_64                                                                                       14/15 
  Vérification : python-dmidecode-3.12.2-3.el7.x86_64                                                                                  15/15 

Installé :
  subscription-manager.x86_64 0:1.21.10-3.el7.centos                                                                                         

Dépendances installées :
  libnl.x86_64 0:1.1.4-3.el7                                                 libxml2-python.x86_64 0:2.9.1-6.el7_2.3                         
  python-backports.x86_64 0:1.0-8.el7                                        python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7      
  python-dateutil.noarch 0:1.5-7.el7                                         python-dmidecode.x86_64 0:3.12.2-3.el7                          
  python-ethtool.x86_64 0:0.8-7.el7                                          python-inotify.noarch 0:0.9.4-4.el7                             
  python-ipaddress.noarch 0:1.0.16-2.el7                                     python-setuptools.noarch 0:0.9.8-7.el7                          
  python-six.noarch 0:1.9.0-2.el7                                            subscription-manager-rhsm.x86_64 0:1.21.10-3.el7.centos         
  subscription-manager-rhsm-certificates.x86_64 0:1.21.10-3.el7.centos       usermode.x86_64 0:1.111-5.el7                                   

Terminé !
[root@client01 ~]# curl --insecure --output katello-ca-consumer-latest.noarch.rpm https://foreman.oowy.lan/pub/katello-ca-consumer-latest.noarch.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7140  100  7140    0     0  17927      0 --:--:-- --:--:-- --:--:-- 17984
[root@client01 ~]# yum localinstall katello-ca-consumer-latest.noarch.rpm
Modules complémentaires chargés : fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Examen de katello-ca-consumer-latest.noarch.rpm : katello-ca-consumer-foreman.oowy.lan-1.0-1.noarch
Sélection de katello-ca-consumer-latest.noarch.rpm pour installation 
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet katello-ca-consumer-foreman.oowy.lan.noarch 0:1.0-1 sera installé
--> Résolution des dépendances terminée

Dépendances résolues

=============================================================================================================================================
 Package                                          Architecture       Version            Dépôt                                          Taille
=============================================================================================================================================
Installation :
 katello-ca-consumer-foreman.oowy.lan             noarch             1.0-1              /katello-ca-consumer-latest.noarch              15 k

Résumé de la transaction
=============================================================================================================================================
Installation   1 Paquet

Taille totale  : 15 k
Taille d'installation : 15 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : katello-ca-consumer-foreman.oowy.lan-1.0-1.noarch                                                                       1/1 
Loading mirror speeds from cached hostfile
 * base: mirror.plusserver.com
 * extras: miroir.univ-paris13.fr
 * updates: miroir.univ-paris13.fr
  Vérification : katello-ca-consumer-foreman.oowy.lan-1.0-1.noarch                                                                       1/1 

Installé :
  katello-ca-consumer-foreman.oowy.lan.noarch 0:1.0-1                                                                                        

Terminé !
[root@client01 ~]# subscription-manager register --org="oowy" --activationkey="CentOS-7-Development"
Le système a été enregistré avec l'ID : 7fb1892f-dd94-47c9-b956-49a66a4c152a
Le nom du système enregistré est : client01.oowy.lan
Aucun produit installé

Vous pouvez maintenant retourner vers le dashboard Katello.

Comme nous pouvons le constater, cet hôte est automatiquement enregistré dans l’environnement “development” et le contenu auquel il aura accès est dans “CentOS_7_Content_View”.

Toujours sur le client, nous pouvons déplacer les anciens référentiels.

[root@client01 ~]# mv /etc/yum.repos.d/*.repo /tmp/

On clear le cache et on vérifie quels référentiels sont activés.

Exécutez les commandes ci-dessous.

[root@client01 ~]# yum clean all
Modules complémentaires chargés : fastestmirror, product-id, search-disabled-repos, subscription-manager
Nettoyage des dépôts : oowy_CentOS_7_base_x86_64 oowy_CentOS_7_extras_x86_64 oowy_CentOS_7_updates_x86_64

[root@client01 ~]# subscription-manager repos --list
+----------------------------------------------------------+
    Référentiels disponibles dans /etc/yum.repos.d/redhat.repo
+----------------------------------------------------------+
ID du référentiel :  oowy_CentOS_7_updates_x86_64
Nom du référentiel : updates_x86_64
URL du référentiel : https://foreman.oowy.lan/pulp/repos/oowy/Development/CentOS_7_Content_View/custom/CentOS_7/updates_x86_64
Activé :             1

ID du référentiel :  oowy_CentOS_7_base_x86_64
Nom du référentiel : base_x86_64
URL du référentiel : https://foreman.oowy.lan/pulp/repos/oowy/Development/CentOS_7_Content_View/custom/CentOS_7/base_x86_64
Activé :             1

ID du référentiel :  oowy_CentOS_7_extras_x86_64
Nom du référentiel : extras_x86_64
URL du référentiel : https://foreman.oowy.lan/pulp/repos/oowy/Development/CentOS_7_Content_View/custom/CentOS_7/extras_x86_64
Activé :             1
[root@client01 ~]# yum repolist
Modules complémentaires chargés : fastestmirror, product-id, search-disabled-repos, subscription-manager
Determining fastest mirrors
oowy_CentOS_7_base_x86_64                                                                                             | 2.1 kB  00:00:00     
oowy_CentOS_7_extras_x86_64                                                                                           | 2.5 kB  00:00:00     
oowy_CentOS_7_updates_x86_64                                                                                          | 2.5 kB  00:00:00     
(1/9): oowy_CentOS_7_base_x86_64/updateinfo                                                                           |   92 B  00:00:01     
(2/9): oowy_CentOS_7_extras_x86_64/group                                                                              |  124 B  00:00:01     
(3/9): oowy_CentOS_7_extras_x86_64/updateinfo                                                                         |   92 B  00:00:01     
(4/9): oowy_CentOS_7_updates_x86_64/updateinfo                                                                        |   92 B  00:00:01     
(5/9): oowy_CentOS_7_updates_x86_64/group                                                                             |  124 B  00:00:01     
(6/9): oowy_CentOS_7_extras_x86_64/primary                                                                            | 128 kB  00:00:04     
(7/9): oowy_CentOS_7_base_x86_64/group                                                                                | 896 kB  00:00:08     
(8/9): oowy_CentOS_7_updates_x86_64/primary                                                                           | 1.9 MB  00:00:16     
(9/9): oowy_CentOS_7_base_x86_64/primary                                                                              | 3.7 MB  00:00:26     
oowy_CentOS_7_base_x86_64                                                                                                        10019/10019
oowy_CentOS_7_extras_x86_64                                                                                                          382/382
oowy_CentOS_7_updates_x86_64                                                                                                       1477/1477
id du dépôt                                                                nom du dépôt                                                statut
!oowy_CentOS_7_base_x86_64                                                 base_x86_64                                                 10 019
!oowy_CentOS_7_extras_x86_64                                               extras_x86_64                                                  382
!oowy_CentOS_7_updates_x86_64                                              updates_x86_64                                               1 477
repolist: 11 878

A cette étape, seuls les référentiels Katello doivent être disponibles.

Si nous voulons transmettre les mises à jour du tableau de bord Katello à ses hôtes de contenu, le package katello-agent doit être installé sur les clients.

Installer les packages clients :

yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum install -y https://yum.theforeman.org/client/1.21/el7/x86_64/foreman-client-release.rpm

Pour la remonter des informations sur les paquets et les errata:

  # yum -y install katello-host-tools

Pour signaler éventuellement des informations de traçage:

  # yum -y install katello-host-tools-tracer

Pour les actions à distance et les informations sur le package de rapports et les errata:

  # yum -y install katello-agent
  # systemctl start goferd
  # systemctl enable goferd

Prérequis

Vérifier que les prérequis suivants sont bien respectés.

  • chrony - synchronisé à une référence de temps
  • hosts - le server foreman est connue dans le hosts du client si il n'y a pas de DNS

Installation puppet-agent

On déclare le repository puppet

yum -y localinstall https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

On installe le package puppet agent

yum install -y puppet-agent

Configuration puppet-agent

Une fois l'installation terminée, vous devrez mettre à jour le fichier /etc/puppetlabs/puppet/puppet.conf.

vi /etc/puppetlabs/puppet/puppet.conf

Ajoutez les paramètres suivants à vos paramètres [agent]. Entrez vos informations “Foreman plateform”.

[agent]
    server = foreman.oowy.lan
    certname = client01.oowy.lan
    runinterval = 180
    environment = production
    listen = false
    pluginsync = true
    report = true

Exécutez la commande suivante pour activer et exécuter le service 'puppet'.

/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

Si nécessaire, redémarrer le service “puppet”

service puppet restart

Signer le certificat "puppet-agent"

Maintenant, vous devrez signer le certificat des agents puppet pour travailler avec Foreman, et vous pouvez le faire en utilisant la ligne de commande ou la console Web Foreman.

Se rendre dans : Infrastructures > Smart Proxies

Comme vous le voyez ci-dessous, une certificat d'agent (client01.oowy.lan) est en attente de signature.

Pour signer, cliquez sur le bouton “Sign”.

Maintenant, l'agent (client01.oowy.lan) est signé avec succès.

Vérification du dashboard

Une fois toutes les actions réalisés, nous allons vérifier l'états du client au niveau du dashboard.

Se rendre dans : Host > All hosts

En sélectionner le nouveau client, on voit maintenant que différentes informations remontent sur la plateforme centrale “foreman”.

Upgrade de la plateforme

Avant de procéder à la mise à niveau, vous devez vérifier qu'il n'y ai plus de tache en cours.

Exécuter le script:

[root@foreman ~]# foreman-rake katello:upgrade_check
/usr/share/foreman/lib/foreman.rb:8: warning: already initialized constant Foreman::UUID_REGEXP
/usr/share/foreman/lib/foreman.rb:8: warning: previous definition of UUID_REGEXP was here
...
...
Checking upgradeability...
 
Checking for running tasks...
[PASS] - There are 0 active tasks. 
         You may proceed with the upgrade.

Si Katello est exécuté sur une machine virtuelle, nous vous recommandons de prendre un instantané avant la mise à niveau. Sinon, effectuez une sauvegarde des bases de données pertinentes en suivant les instructions fournies ici.

Assurez-vous que votre système d'exploitation est complètement à jour:

[root@foreman ~]# yum -y update

Attention:

Si les packages du noyau sont mis à jour (par exemple, en mettant à niveau les versions 7.3 à 7.4), vous devez redémarrer et vous assurer que le nouveau noyau et la stratégie SELinux sont chargés avant de mettre à niveau Katello.

Mettez à jour les packages de versions de Foreman et Katello:

RHEL7 / CentOS 7:

[root@foreman ~]# yum update -y http://fedorapeople.org/groups/katello/releases/yum/3.11/katello/el7/x86_64/katello-repos-latest.rpm
[root@foreman ~]# yum update -y http://yum.theforeman.org/releases/1.21/el7/x86_64/foreman-release.rpm
[root@foreman ~]# yum update -y foreman-release-scl

Arrêtez les services Katello

# katello-service stop
Redirecting to 'foreman-maintain service'
Running Stop Services
================================================================================
Check if command is run as root user:                                 [OK]
--------------------------------------------------------------------------------
Stop applicable services:
Stopping the following service(s):
 
postgresql, rh-mongodb34-mongod, qdrouterd, qpidd, squid, pulp_resource_manager, pulp_streamer, fore                                                                                                 man-proxy, pulp_celerybeat, pulp_workers, tomcat, goferd, dynflowd, httpd, puppetserver
 
| All services stopped                                                [OK]
--------------------------------------------------------------------------------

Nettoyer le cache yum

# yum clean all

Mettez à jour les packages requis:

# yum -y update

Le programme d’installation portant l’indicateur --upgrade lancera les migrations de base de données appropriées pour tous les services de composants, et ajustera la configuration pour refléter les nouveautés de Katello 3.11.

# foreman-installer --scenario katello --upgrade

Une fois la mise à jour terminée, il faut démarrer le service

# katello-service start

Annexe

Pour réinitialiser le mots de passe il suffira de passer par la commande “foreman-rake permissions:reset”.

[root@foreman ~]# foreman-rake permissions:reset
/usr/share/foreman/lib/foreman.rb:8: warning: already initialized constant Foreman::UUID_REGEXP
/usr/share/foreman/lib/foreman.rb:8: warning: previous definition of UUID_REGEXP was here
...
...
Reset to user: admin, password: bwzpqNLSf92Q3NCe
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus