Comment utiliser le contremaître pour gérer les nœuds de marionnettes sur Ubuntu 14.04

introduction

Foreman est un outil open source qui peut aider à la gestion des serveurs en offrant un moyen facile d’interagir avec Puppet (ou Chef) pour automatiser le déploiement d’applications et d’applications. Foreman fournit une interface utilisateur Web, une API et une CLI robustes qui peuvent être utilisées pour provisionner, configurer et surveiller vos serveurs. Il convient aux infrastructures de toutes tailles et fonctionne avec la plupart des distributions de Linux.

Dans ce tutoriel, nous allons vous montrer comment installer Foreman avec Puppet et commencer à l’utiliser pour gérer vos serveurs. Nous utiliserons Foreman pour ses fonctions de génération de rapports et ses fonctionnalités de classificateur de nœud externe (ENC), afin de faciliter la gestion de Puppet.

Conditions préalables

Ce tutoriel suppose que vous installerez Foreman sur un nouveau serveur, appelé qui agira également comme serveur maître de Puppet. Si vous avez déjà un serveur maître Puppet, vous pouvez y installer Foreman, mais gardez à l’esprit que votre site par défaut + site.pp + sera remplacé (vos nœuds d’agent Puppet existants seront dans un état unmanaged), et vous devrez le configurer. Foreman pour gérer vos nœuds d’agent Puppet existants.

Comme Foreman dépend de Puppet pour la gestion de la configuration des hôtes, il nécessite tout le nécessaire pour une configuration agent / maître Puppet. La liste suivante couvre les éléments dont vous aurez besoin avant de commencer ce tutoriel:

  • * Accès racine: * + sudo + accès à tous les serveurs que vous souhaitez gérer

  • * DNS de réseau privé: * Les DNS inverses et inverses doivent être configurés et chaque serveur doit avoir un nom d’hôte unique. Voici un tutoriel pour configurez le vôtre réseau privé serveur DNS. Si le DNS n’est pas configuré, vous devez utiliser votre fichier hosts pour la résolution du nom. Nous supposerons que vous utiliserez votre réseau privé pour la communication au sein de votre infrastructure.

  • * Ports ouverts du pare-feu: * Le maître de marionnettes doit être accessible sur le port 8140. Si votre pare-feu est trop restrictif, consultez cette https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud- serveur [Didacticiel UFW] pour des instructions sur l’autorisation des demandes entrantes sur le port 8140.

Une fois toutes les conditions préalables remplies, passons à la création du serveur Foreman (et du maître Puppet)!

Créer un serveur de contremaître

Créez un nouveau serveur * Ubuntu 14.04 * x64, en utilisant «foreman» comme nom d’hôte. Ajoutez son réseau privé à votre DNS avec les détails suivants:

Hostname Role Private FQDN

foreman

Foreman / Puppet Master

foreman.nyc2.example.com

Si vous venez de configurer votre DNS et ne savez pas comment ajouter votre hôte à DNS, reportez-vous à la page https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network -dns-server-on-ubuntu-14-04 # Maintenance de DNSRecords [Maintenance des enregistrements DNS] du didacticiel DNS. Pour l’essentiel, vous devez ajouter un enregistrement "A" et "PTR" et permettre au nouvel hôte d’effectuer des requêtes récursives. Assurez-vous également de configurer votre domaine de recherche de sorte que vos serveurs puissent utiliser des noms d’hôte abrégés pour se rechercher.

Assurez-vous que le nom d’hôte est défini sur FQDN

Pour vérifier le nom d’hôte complet de votre serveur, entrez la commande suivante:

hostname -f

Vous devriez voir la version longue du nom de votre serveur, par exemple “Foreman.nyc2.example.com”. Si votre nom d’hôte est défini sur votre nom de domaine complet, vous pouvez passer à la section suivante.

Sinon, si un nom abrégé est renvoyé, par exemple “Contremaître”, vous devez définir votre nom d’hôte sur le nom long. Pour ce faire, éditez votre fichier + hosts:

sudo vi /etc/hosts

Recherchez la première entrée de votre nom d’hôte abrégé et ajoutez le nom de domaine complet (FQDN) avant celle-ci. Par exemple:

127.0.1.1       foreman

Devrait être changé en:

127.0.1.1        foreman

Puis enregistrez et quittez.

Ensuite, éditez votre fichier + hostname +:

sudo vi /etc/hostname

Remplacez l’entrée du fichier par le nom de domaine complet de votre serveur, par exemple. “Foreman.nyc2.example.com”. Puis enregistrez et quittez.

Ensuite, exécutez la commande suivante pour lire immédiatement le changement de configuration que vous venez d’apporter:

sudo hostname --file /etc/hostname

Votre nom d’hôte long a été défini. Continuez à installer Foreman!

Installer contremaître

Le moyen le plus simple d’installer Foreman consiste à utiliser son programme d’installation. Foreman Installer installe et configure tous les composants nécessaires à l’exécution de Foreman, notamment:

  • Contremaître

  • Marionnettiste et agent

  • Serveur Web Apache avec module SSL et passager

Téléchargez le programme d’installation Foreman avec les commandes suivantes:

sudo sh -c 'echo "deb http://deb.theforeman.org/ trusty 1.5" > /etc/apt/sources.list.d/foreman.list'
sudo sh -c 'echo "deb http://deb.theforeman.org/ plugins 1.5" >> /etc/apt/sources.list.d/foreman.list'
wget -q http://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add -
sudo apt-get update && sudo apt-get install foreman-installer

Ensuite, exécutez Foreman Installer avec la commande suivante:

sudo foreman-installer

Vous devriez voir la sortie suivante:

Your puppet version does not support progress bar
Preparing installation Done
 Success!
 * Foreman is running at https://foreman.nyc2.example.com
     Default credentials are 'admin:changeme'
 * Foreman Proxy is running at https://foreman.nyc2.example.com:8443
 * Puppetmaster is running at port 8140
 The full log is at /var/log/foreman-installer/foreman-installer.log

Si votre sortie ressemble à celle ci-dessus, Foreman et ses composants requis ont été installés!

Activer les diffs

Avant de continuer, nous allons faire un léger changement de configuration pour activer les «diffs». Cette modification vous permettra d’afficher les différences, ce qui vous permettra de voir les modifications du fichier de configuration à partir de la vue Rapports du contremaître.

Éditez + puppet.conf +:

sudo vi /etc/puppet/puppet.conf

Recherchez la ligne qui définit + show_diff + et remplacez sa valeur par + true +:

   show_diff     = true

Sauvegarder et quitter.

Ajouter l’hôte du contremaître à la base de données du contremaître

Pour ajouter l’hôte Foreman à la base de données Foreman en exécutant la ligne de commande + puppet agent ainsi:

sudo puppet agent --test

Cela ajoute l’hôte Foreman en tant que premier nœud d’agent Puppet géré par Foreman.

Connexion à l’interface Web du contremaître

Connectez-vous au contremaître et changez le mot de passe de l’administrateur. L’interface Web de Foreman est accessible via l’interface réseau publique de votre VPS (son nom de domaine complet ou son adresse IP publique). + Regardez Infrastructure → Proxy intelligents. Créé automatiquement (et montre les fonctionnalités disponibles).

Par défaut, Foreman utilise vos certificats Puppet, qui ne sont probablement pas approuvés par votre navigateur. Acceptez l’avertissement concernant le certificat et continuez. Vous pouvez également remplacer le certificat par un autre qui correspond à votre nom de domaine et qui est signé par une autorité de certification approuvée. Après avoir accepté le certificat et procédé, vous verrez la page de connexion suivante:

image: https: //assets.digitalocean.com/articles/foreman/foreman_login.png [Page de connexion du contremaître]

Comme vous l’avez peut-être remarqué lors de l’exécution de + foreman-installer +, voici les informations d’identification par défaut:

  • * Nom d’utilisateur *: admin

  • * Mot de passe *: changeme

Tableau de bord du contremaître

Lorsque vous vous connectez pour la première fois, vous verrez le tableau de bord Foreman, qui présente un aperçu de votre environnement Puppet. Vous verrez ici un résumé de «État de configuration de l’hôte», qui indique le nombre de nœuds d’agent Puppet et leurs statuts respectifs. Lorsque vous démarrez Foreman pour la première fois, vous devriez voir un seul serveur dans la section «bon hôte»:

image: https: //assets.digitalocean.com/articles/foreman/dashboard.png [État de la configuration de l’hôte]

Ci-dessous, vous verrez un résumé des événements récents et un graphique avec le nombre de «clients» ayant exécuté leur travail de marionnettes au cours des 30 dernières minutes. Ces informations peuvent vous aider à comprendre le fonctionnement de votre configuration générale de marionnettes.

Changer le mot de passe administrateur

Avant de faire autre chose, vous voudrez changer votre mot de passe utilisateur + admin +. Pour ce faire, pointez la souris sur l’élément Admin User dans le coin supérieur droit, puis cliquez sur My Account:

image: https: //assets.digitalocean.com/articles/foreman/account.png [Mon compte]

Trouvez la forme Password. Mettez à jour votre mot de passe avec quelque chose de sécurisé, puis cliquez sur Soumettre.

Ajouter un module NTP au contremaître

Puppet nécessite un chronométrage précis, nous allons donc utiliser Foreman pour gérer le service NTP sur son hôte Foreman (qui est également le maître des marionnettes).

Dans un navigateur Web, accédez à https://forge.puppetlabs.com/. Rechercher un module NTP. Le premier résultat devrait être + puppetlabs / ntp +. Cliquez sur le module et lisez-le pour voir ce qu’il fait.

Nous allons maintenant l’installer dans l’environnement Production de notre maître de marionnettes à l’aide de la commande suivante:

sudo puppet module install -i /etc/puppet/environments/production/modules puppetlabs/ntp

Vous devriez voir une sortie comme celle-ci, indiquant que le module a été installé correctement:

Notice: Preparing to install into /etc/puppet/environments/production/modules ...
Notice: Downloading from https://forge.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/etc/puppet/environments/production/modules
└─┬ puppetlabs-ntp (v3.1.2)
 └── puppetlabs-stdlib (v4.3.2)

Le module a été installé dans le maître de marionnettes, mais il doit être ajouté à Foreman avant de pouvoir être utilisé.

Dans l’interface Web de Foreman, passez la souris sur Configure, puis cliquez sur Puppet classes:

image: https: //assets.digitalocean.com/articles/foreman/puppet_classes.png [Classes de marionnettes]

Cliquez sur le bouton Import de foreman.nyc2.example.com. Ensuite, vous verrez un écran qui ressemble à ceci:

image: https: //assets.digitalocean.com/articles/foreman/import_ntp_class.png [Importer une classe NTP]

Cochez la case en regard de l’élément et cliquez sur le bouton Mise à jour. Le module ntp est maintenant importé dans Foreman et prêt à être utilisé avec un hôte.

Remplacer le pool NTP par défaut

Maintenant, nous voulons remplacer les paramètres par défaut du module NTP et configurer le module NTP pour utiliser le pool NTP américain par défaut. N’hésitez pas à rechercher un pool NTP de votre choix sur le /NTP Pool Project.

Vous devriez être dans l’écran «Classes de marionnettes». Cliquez sur la classe "ntp" pour passer en mode édition. Cliquez maintenant sur l’onglet «Smart Class Parameter».

Faites défiler l’écran vers le bas, recherchez l’élément «serveurs» dans la barre latérale gauche et sélectionnez-le:

image: https: //assets.digitalocean.com/articles/foreman/ntp_servers.png [Serveurs NTP]

Recherchez et cochez la case «Remplacer». Modifiez la liste déroulante Parameter type en «tableau». Ensuite, remplacez la «valeur par défaut» du pool NTP par défaut par l’un de vos choix, sous forme de tableau. Nous allons utiliser le pool US NTP:

["0.us.pool.ntp.org","1.us.pool.ntp.org","2.us.pool.ntp.org","3.us.pool.ntp.org"]

Faites défiler vers le bas et cliquez sur le bouton vert «Soumettre». Désormais, tous les hôtes ou groupes d’hôtes utilisant ce module utiliseront par défaut le pool US NTP.

Configurer l’hôte Foreman pour utiliser le module NTP

Nous sommes maintenant prêts à utiliser le module NTP pour gérer NTP sur l’hôte Foreman.

Accédez à l’écran Hosts (passez la souris sur Hosts, puis cliquez sur All Hosts). Cliquez sur le bouton «Modifier» à l’extrême droite de votre hôte Foreman.

Cliquez sur l’onglet Classes de marionnettes. Sous Available Classes, cliquez sur la classe ntp pour la développer, puis cliquez sur le signe plus en regard de «ntp»:

image: https: //assets.digitalocean.com/articles/foreman/available_classes.png [Classes disponibles]

Cela déplace la classe ntp vers la section Included Classes. Cela signifie que lors de l’enregistrement de l’agent de marionnettes de l’hôte Foreman, ce module de marionnettes lui sera appliqué.

Cliquez sur le bouton Soumettre pour appliquer les modifications.

Voir la configuration des marionnettes

Après avoir modifié la configuration de l’hôte Foreman, vous serez dirigé vers la page de résumé de celui-ci.

Pour voir les informations données à Puppet lors de l’enregistrement d’un nœud agent, cliquez sur le bouton YAML:

image: https: //assets.digitalocean.com/articles/foreman/yaml.png [Bouton YAML]

Vous verrez une page avec une sortie similaire à ceci:

---
classes:
 ntp:
   server_list:
   - 0.us.pool.ntp.org
   - 1.us.pool.ntp.org
   - 2.us.pool.ntp.org
   - 3.us.pool.ntp.org
parameters:
 puppetmaster: foreman.nyc2.example.com
 root_pw:
 foreman_env: production
 owner_name: Admin User
 owner_email: [email protected]
environment: production

Exécuter l’agent de marionnettes

Appliquons ce changement maintenant pour que nous puissions voir ce qu’il fait.

Sur le serveur Foreman, exécutez l’agent Puppet:

sudo puppet agent --test

Dans l’interface utilisateur Web, retournez sur votre hôte Foreman, puis cliquez sur le bouton Reports (à côté du bouton YAML). Vous devriez voir une nouvelle entrée de rapport indiquant que certaines modifications ont été appliquées et qu’un service a été redémarré; cliquez sur le rapport. Ici, vous verrez plusieurs notifications indiquant que le paquet NTP a été installé, configuré et redémarré.

Notez que vous venez d’utiliser Foreman pour configurer le serveur Foreman. La gestion de tout autre hôte fonctionne de la même manière.

Si vous le souhaitez, cliquez sur le lien “View Diff” en regard de l’élément + ntp.conf / content. Ceci est utile si vous voulez voir comment Puppet modifie les fichiers de configuration qu’il gère.

Ajout de nouveaux hôtes au contremaître

Maintenant que votre serveur Foreman est configuré, vous voudrez probablement ajouter plus d’hôtes à gérer. Le processus d’ajout d’autres hôtes est identique à l’ajout de nœuds d’agent Puppet à un maître. Vous trouverez des instructions détaillées à ce sujet dans le first tutorial dans cette série. Assurez-vous de configurer l’agent pour qu’il pointe vers votre serveur Puppet master (Foreman).

Après avoir installé et exécuté l’agent, vous devez signer son certificat sur le serveur Foreman. Vous pouvez signer les certificats par la ligne de commande , comme avec une configuration normale de marionnettes, ou vous pouvez utiliser l’interface Web de Foreman.

Pour utiliser l’interface Web pour signer les certificats, allez à Infrastructure, puis cliquez sur Proxy intelligents, puis sur le bouton Certificats:

image: https: //assets.digitalocean.com/articles/foreman/certificates.png [Certificats]

Ici, vous verrez tous les certificats de la PuppetCA. Cliquez sur le bouton Sign (à l’extrême droite) en regard des nouveaux hôtes que vous avez définis pour utiliser ce maître de marionnettes.

Vos nouveaux hôtes sont prêts à être gérés par Foreman!

Conclusion

Maintenant que vous avez une instance Foreman opérationnelle, vous disposez d’un moyen simple d’utiliser les modules Puppet pour gérer votre infrastructure de serveur. N’hésitez pas à parcourir les modules de Puppet disponibles au public ou à écrire les vôtres (voir le didacticiel précédent de cette série) pour gérer votre environnement.

Bonne chance!

Related