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
DNS resolver
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
SELinux
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
Time sync
[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 ~]#
Required Ports
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
Qu'est-ce que le CLI Hammer ?
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.
Installation du CLI
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
Configuration de la cli
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)
Comment utiliser Hammer ?
Pour démarrer avec hammer, consultez l'aide:
hammer -u <user> -p <password> --help
Création d'une organisation
Notre plateforme est maintenant installé et opérationnel. Nous allons maintenant créer notre organisation.
Manage Organisations > New Organisation :
Création d'une location
La location (Localisation) est un objet qui va nous permettre de classer nos serveurs par CONTINENT/PAYS/VILLE, etc…
Manage locations > New location
Configuration management suite
Création GPG key
Récupérer la clé GPG de CentOS 7 depuis les miroirs officiels.
Content > Content Credentials > Create Content Credential
Création plan de synchronisation
Content > Sync Plans > Create Sync Plan
Création d'un produit : CentOS 7
Content > Products > Create Product
Création d'un environnement
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 :
Création de repositories : CentOS 7
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.
Synchronisation de repositories : CentOS 7
Une fois les repositories ajoutés au produit, sélectionner les et cliquez sur le bouton synchroniser
Gestion des Erratas : CentOS 7
Gestion Content views
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.
Gestion des clées d'activations
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”
Gestion des clients
Subscription manager
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.
Add-on Katello Agent
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
Puppet-agent
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
Pré upgrade
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.
Step 1 - Backup
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.
Step 2 - Operating System
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.
Step 3 - Repositories
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
Step 4 - Update Packages
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
Step 5 - Run Installer
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
Reset root password
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