Guide d'intégration de Puppet

Puppet offre une méthode standardisée de déploiement et d'exploitation de logiciels, quel que soit leur environnement d'exécution. Avec Puppet, vous définissez l'architecture de vos applications et de votre infrastructure à l'aide d'un langage commun et intuitif. Vous pouvez ensuite partager, tester et déployer les modifications souhaitées dans l'ensemble de votre datacenter. À chaque étape, vous bénéficiez de la visibilité et des rapports nécessaires pour prendre des décisions éclairées et garantir la conformité.

Dans PagerDuty

  1. Allez à Configuration menu et sélectionner Services .

  2. Sur la page Services :

    • Si vous créez un nouveau service pour votre intégration, cliquez Ajouter un nouveau service .

    • Si vous ajoutez votre intégration à un service existant, cliquez sur le nom du service auquel vous souhaitez ajouter l'intégration. Cliquez ensuite sur Intégrations onglet et cliquez sur Nouvelle intégration bouton.

  3. Sélectionnez votre application parmi les Type d'intégration menu et entrez un Nom de l'intégration .

    Si vous créez un nouveau service pour votre intégration, dans les paramètres généraux, saisissez un Nom pour votre nouveau service. Ensuite, dans les paramètres d'incident, spécifiez le Politique d'escalade , Notification urgente , et Comportement lors de l'incident pour votre nouveau service.

  4. Cliquez sur Ajouter un service ou Ajouter une intégration Cliquez sur le bouton pour enregistrer votre nouvelle intégration. Vous serez redirigé vers la page Intégrations de votre service.

  5. Copiez le Clé d'intégration pour votre nouvelle intégration.

Dans votre nœud maître Puppet

  1. Installez le pdsupport-pagerduty module:

     /opt/puppetlabs/bin/puppet module install pdsupport-pagerduty 
  2. Installez les dépendances Ruby nécessaires :

     /opt/puppetlabs/server/bin/puppetserver gem install puppet 
     /opt/puppetlabs/server/bin/puppetserver gem install json 
     /opt/puppetlabs/server/bin/puppetserver gem install redphone 
  3. Installez manuellement le pagerduty.rb scénario:

    Remarque : Cette étape est nécessaire en raison d’un problème au sein de Puppet. Les détails de ce problème sont documentés. ici .
     cp /etc/puppetlabs/code/environments/production/modules/pagerduty/lib/puppet/reports/pagerduty.rb /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/reports/ 
  4. Ajouter un pagerduty classe à ajouter au manifeste principal de votre nœud maître :

     classe { 'pagerduty': } 
  5. Liste pagerduty en tant que gestionnaire de rapports sur votre nœud maître puppet.conf déposer:

     [maître] rapports = pagerduty 
  6. Activez la synchronisation des plugins et les rapports sur vos nœuds maître et client si ce n'est pas déjà fait :

    Remarque : Depuis Puppet 3.0.0, ces paramètres sont activés par défaut. Cette étape n’est nécessaire que si l’un de ces paramètres a été désactivé.

    Vous pouvez activer manuellement les paramètres dans puppet.conf :

     [master] rapport = vrai pluginsync = vrai [agent] rapport = vrai pluginsync = vrai 

    Ou vous pouvez activer dans le pagerduty classe dans le manifeste de votre nœud maître :

     classe { 'pagerduty': pagerduty_puppet_reports => 'store,http,pagerduty', pagerduty_puppet_pluginsync => 'true', } 
  7. Redémarrez le serveur Puppet service:

     sudo service puppetserver redémarrer 
  8. Déplacez le pagerduty.yaml.erb modèle dans votre master répertoire de configuration et renommez le fichier pagerduty.yaml :

     mv /etc/puppetlabs/code/environments/production/modules/pagerduty/templates/pagerduty.yaml.erb /etc/puppetlabs/puppet/pagerduty.yaml 
  9. Modifiez votre pagerduty.yaml fichier et insérez le clé d'intégration vous avez copié à l'étape 5 ci-dessus :

     sudo vi /etc/puppetlabs/puppet/pagerduty.yaml 
     --- :pagerduty_api: 'INSÉRER_ICI_CLÉ_D'INTÉGRATION' 
  10. Pour vérifier qu'une exécution échouée déclenchera un incident PagerDuty , modifiez le pagerduty module init.pp manifestez et décommentez les lignes 9 à 13 :

     sudo vi /etc/puppetlabs/code/environments/production/modules/pagerduty/manifests/init.pp 
     if ! defined(Service[$pagerduty_puppet_service]) { service { $pagerduty_puppet_service : ensure => running, } } 
  11. Exécutez ensuite l'agent Puppet sur l'un de vos nœuds clients :

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

FAQ

Avec quelles versions de Puppet cette intégration est-elle compatible ?

Cette intégration a été testée avec Puppet 3.x et 4.x. Pour les versions antérieures de Puppet, veuillez consulter la documentation. ce module , qui a été conçu pour Puppet 2.x.

Est-il possible d'intégrer Puppet à plusieurs services PagerDuty ?

Chaque nœud maître Puppet ne peut être intégré qu'à un seul service PagerDuty . Cependant, si votre environnement comporte plusieurs nœuds maîtres Puppet, vous pouvez intégrer chaque nœud à un service distinct dans PagerDuty. Il vous suffit de mettre à jour la configuration. clé d'intégration dans votre pagerduty.yaml fichier permettant d'indiquer le service que vous souhaitez intégrer à ce nœud particulier.

Les incidents sont-ils résolus automatiquement dans PagerDuty si l'exécution réussit dans Puppet ?

Oui, l'incident dans PagerDuty sera résolu dès que l'exécution sera réussie.

Comment les exécutions Puppet ayant échoué sont-elles dédupliquées dans les incidents PagerDuty ?

Les séquences de Puppet sont dédupliquées en fonction de hôte qui a généré le rapport.

Où puis-je trouver les journaux pour résoudre les problèmes liés à cette intégration ?

Les journaux Puppet se trouvent sur votre nœud maître dans le répertoire journal , qui peut être configuré dans puppet.conf Le répertoire par défaut dans Puppet 4.x est :

 /var/log/puppetlabs/puppetserver 

Prêt à commencer ?

Essayez gratuitement n'importe quel produit sur Operations Cloud . Aucune carte de crédit requise.