Foreman est un outil de configuration et d'approvisionnement gratuit et open source qui peut être installé sur les systèmes Red Hat, CentOS, Scientific Linux, Debian et Ubuntu. Avec l'outil Forman, nous pouvons facilement provisionner des machines virtuelles et des serveurs bare metal, puis configurer les systèmes installés à l'aide d'outils de configuration tels que Puppet et Ansible. Chaque fois que nous installons le serveur Foreman, il installe automatiquement Puppet Master dessus.
Avec l'aide de Foreman GUI, les administrateurs système peuvent appliquer des modules de marionnettes spécifiques aux serveurs enregistrés pour effectuer les tâches répétitives et peuvent également automatiser facilement les tâches d'exploitation quotidiennes.
Dans ce tutoriel, nous allons parcourir les étapes d'installation de Foreman 1.16 sur Debian 9 et Ubuntu 16.04 Server.
Voici la configuration minimale requise pour le serveur Foreman :
- 4 Go de RAM (lorsque Puppet Master est installé sur le même serveur Foreman)
- Processeur à 2 cœurs
- Debian 9/Ubuntu 16.04 fraîchement installé
Ci-dessous se trouvent les détails de configuration de mon laboratoire pour Foreman Server
- L'adresse IP du serveur Foreman est "192.168.1.20"
- Nom d'hôte du serveur Foreman "foreman.linuxtechi.com"
- Puppet Master 5 sera installé sur le serveur Foreman
- SE :serveur Debian 9/Ubuntu 16.04 LTS
Connectons-nous au système Debian 9 / Ubuntu 16.04 LTS
Étape :1) Configurer le nom d'hôte et mettre à jour ses entrées dans le fichier d'hôtes
Utilisez la commande systemctl pour configurer le nom d'hôte de votre système.
$ sudo hostnamectl set-hostname "foreman.linuxtechi.com" $ exec bash
Mettez à jour les entrées du nom d'hôte de votre système dans le fichier /etc/hosts.
192.168.1.20 foreman.linuxtechi.com foreman
Étape : 2) Activez les référentiels requis pour Foreman et Puppet
Pour le système Debian 9 :
Activez les référentiels Puppet 5 à l'aide des commandes ci-dessous
[email protected]:~$ sudo apt-get -y install ca-certificates [email protected]:~$ wget https://apt.puppetlabs.com/puppet5-release-stretch.deb [email protected]:~$ sudo dpkg -i puppet5-release-stretch.deb
Activez les référentiels Foreman 1.16 à l'aide des commandes ci-dessous
[email protected]:~$ echo "deb http://deb.theforeman.org/ stretch 1.16" | sudo tee /etc/apt/sources.list.d/foreman.list [email protected]:~$ echo "deb http://deb.theforeman.org/ plugins 1.16" | sudo tee -a /etc/apt/sources.list.d/foreman.list li[email protected]:~$ wget -q https://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add - OK [email protected]:~$
Pour le système Ubuntu 16.04 LTS
Activer les référentiels Puppet 5
[email protected]:~$ sudo apt-get -y install ca-certificates [email protected]:~$ wget https://apt.puppetlabs.com/puppet5-release-xenial.deb [email protected]:~$ sudo dpkg -i puppet5-release-xenial.deb
Activer les référentiels Foreman 1.16
[email protected]:~$ echo "deb http://deb.theforeman.org/ xenial 1.16" | sudo tee /etc/apt/sources.list.d/foreman.list [email protected]:~$ echo "deb http://deb.theforeman.org/ plugins 1.16" | sudo tee -a /etc/apt/sources.list.d/foreman.list [email protected]:~$ wget -q https://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add - OK [email protected]:~$
Étape 3) Téléchargez "foreman-installer" à l'aide de la commande apt-get
Exécutez la commande ci-dessous pour installer foreman-installer,
[email protected]:~$ sudo apt-get update && sudo apt-get -y install foreman-installer
Foreman-installer est l'outil d'installation pour contremaître.
Étape 4) Installez Foreman à l'aide de "foreman-installer"
Exécutez la commande foreman-installer pour installer le serveur foreman. Par défaut, le programme d'installation de foreman installera et configurera les composants suivants :
- Interface Web Foreman (Apache HTTP avec SSL)
- Proxy intelligent
- Maître des marionnettes
- Agent marionnette
- Serveur TFTP
[email protected]:~$ sudo foreman-installer --foreman-admin-username admin --foreman-admin-password "[email protected]#"
Une fois l'installation terminée avec succès, nous obtiendrons une sortie comme ci-dessous :
Si le pare-feu du système d'exploitation est activé et en cours d'exécution sur votre système, ouvrez les ports suivants pour le serveur Foreman
[email protected]:~$ sudo ufw allow 53/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 67:69/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 80/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 443/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 3000/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 3306/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 5910:5930/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 5432/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 8140/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 8443/tcp Rule added Rule added (v6) [email protected]:~$
Remarque : Dans mon cas, lors de l'installation de Foreman, j'obtenais cette erreur « Erreur lors de l'exécution de SQL ; psql a renvoyé le pid 32532 exit 1 : ERREUR :nom de paramètres régionaux invalide :"en_US.utf8", j'ai résolu cette erreur en exécutant la commande ci-dessous :
[email protected]:~$ sudo dpkg-reconfigure locales
Sélectionnez "en_US.UTF-8 UTF-8 ", puis sélectionnez OK et redémarrez la machine, puis relancez la commande foreman-installer.
Étape :5) Accéder à l'interface Web de Foreman
Nous pouvons accéder à l'interface Web de Foreman en utilisant l'URL suivante :
https://{Foreman_Server_IP}
ou
https://{Hostname_Foreman_Server}
Utilisez le nom d'utilisateur comme "admin" et le mot de passe que nous spécifions dans la commande foreman-installer,
Accédez à Hôtes Tab -> Cliquez sur "Tous les hôtes ”
À l'heure actuelle, un seul hôte est enregistré, c'est-à-dire notre serveur de contremaître. Chaque fois que nous enregistrons de nouveaux serveurs auprès du contremaître, ces serveurs seront répertoriés ici. En dehors de cela, l'environnement de production est également créé par défaut et tous les serveurs seront enregistrés sur l'environnement par défaut. Vous pouvez créer vos environnements adaptés à votre organisation à partir de l'interface utilisateur de Foreman.
Télécharger et importer le module marionnette NTP sur Foreman Server
Utilisez la commande ci-dessous pour télécharger le module de marionnettes ntp à partir de "forge.puppet.com"
[email protected]:~$ sudo su - [email protected]:~# puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/modules/
Nous obtiendrons quelque chose comme ci-dessous :
Importez le module NTP installé dans le tableau de bord du contremaître
Depuis le tableau de bord, accédez à Configurer Tab -> Sélectionnez Marionnette –> Cours , Cliquez sur Importer
Sélectionnez les environnements auxquels vous souhaitez associer ce module, dans mon cas, je vais l'associer à Production et développement.
Cliquez sur Mettre à jour,
Nous aurons la fenêtre suivante quelque chose comme ci-dessous :
Enregistrons un hôte CentOS 7 sur le tableau de bord du contremaître, puis nous y attacherons le module ntp,
Enregistrement d'un serveur CentOS 7
Connectez-vous au système et activez le référentiel puppetlabs yum, puis installez le package puppet
[[email protected] ~]# yum install https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm -y [[email protected] ~]# yum install puppet -y
Remarque : Si vous n'avez pas le serveur DNS, ajoutez des entrées dans le fichier hosts. Dans mon cas, j'ai ajouté les lignes suivantes dans le fichier /etc/hosts
192.168.1.20 foreman.linuxtechi.com 192.168.1.2 mx2.linuxtechi.com
Exécutez la commande ci-dessous à partir de votre serveur Centos 7 pour enregistrer cette machine dans le tableau de bord Puppet Master &Foreman.
[[email protected] ~]# /opt/puppetlabs/bin/puppet agent -td --server=foreman.linuxtechi.com
Vous obtiendrez la sortie de la commande quelque chose comme ci-dessous :
…………………………………………………… Debug: Finishing transaction 22347940 Info: Creating a new SSL key for mx2.linuxtechi.com Info: Caching certificate for ca Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml Info: Creating a new SSL certificate request for mx2.linuxtechi.com Info: Certificate Request fingerprint (SHA256): A4:D3:15:0D:8D:10:48:93:96:1D:E4:61:5F:F7:F6:B4:CB:C2:01:F4:4C:02:99:37:03:2C:9E:24:0E:30:CF:CC Debug: Using cached certificate for ca Info: Caching certificate for ca Debug: Using cached certificate_request for mx2.linuxtechi.com Debug: Using cached certificate for ca Debug: Using cached certificate for ca Exiting; no certificate found and waitforcert is disabled [[email protected] ~]#
Cela signifie que nous devons signer manuellement le certificat du serveur CentOS 7 à partir de la machine contremaître. Pour signer le certificat à partir du tableau de bord du contremaître, reportez-vous aux étapes ci-dessous
De l'Infrastructure Onglet -> Sélectionnez Proxies intelligents puis cliquez sur Modifier option et sélectionnez "Certificats ”
Signez maintenant le certificat de la machine dont l'état est en attente, exemple ci-dessous :
Cliquez sur le signe
Reportez-vous aux étapes ci-dessous pour configurer la signature automatique
De l'Infrastructure Onglet -> Sélectionnez Proxies intelligents puis cliquez sur Modifier option et sélectionnez "Signature automatique ”
Créez une entrée de signature automatique et spécifiez le nom de domaine pour lequel nous voulons que le contremaître signe automatiquement les certificats
Cliquez sur Enregistrer . La prochaine fois qu'un serveur du domaine "linuxtechi.com" est enregistré sur le serveur Foreman, il sera automatiquement signé,
Maintenant, allez à nouveau sur le serveur CentOS 7 et relancez la commande de l'agent de marionnettes. Cette fois, la commande doit être exécutée avec succès,
[[email protected] ~]# /opt/puppetlabs/bin/puppet agent -td --server=foreman.linuxtechi.com
Vérifiez l'hôte à partir du tableau de bord, à partir des hôtes Tab -> Sélectionnez "Tous les hôtes ", nous y retrouverons notre hôte nouvellement enregistré (serveur CentOS 7)
Attachons le module NTP au serveur nouvellement enregistré (mx2.linuxtechi.com), sélectionnez l'hôte et cliquez sur Modifier , puis allez dans "Cours de marionnettes ” Onglet
Cliquez sur ‘+’ connectez-vous devant ntp pour ajouter le module puis cliquez sur 'Soumettre ‘
Accédez au serveur CentOS7 et relancez la commande de l'agent de marionnettes, cette fois, il configurera ntp sur votre serveur CentOS 7.
[[email protected] puppet]# /opt/puppetlabs/bin/puppet agent -td --server=foreman.linuxtechi.com
La sortie de la commande ci-dessus sera quelque chose comme ci-dessous :
Cela confirme que le serveur CentOS 7 a été enregistré et configuré avec succès via Foreman Server. Il conclut également l'article, veuillez partager vos commentaires dans la section des commentaires ci-dessous.
En savoir plus sur "Bare metal et provisionnement de machines virtuelles via Foreman Server “