Pourquoi utiliser Puppet pour l'automatisation et l'orchestration

Puppet, la société, considère que l'outil d'automatisation Puppet est la norme de facto pour automatiser la livraison et l'exploitation continue d'une infrastructure hybride. Cela était certainement vrai à un moment donné: Puppet remonte non seulement à 2005, mais revendique également actuellement 40 000 organisations dans le monde en tant qu'utilisateurs, dont 75% des entreprises du Fortune 100. Alors que Puppet est toujours un produit très puissant et a augmenté sa vitesse et ses capacités au fil des ans. au fil des ans, ses concurrents, en particulier Chef, ont réduit l'écart.

Comme vous pouvez vous attendre de la doyenne de l'espace d'automatisation informatique, Puppet possède une très grande collection de modules et couvre toute la gamme allant de CI / CD à l'infrastructure cloud native, bien qu'une grande partie de cette fonctionnalité soit fournie par des produits supplémentaires. Alors que Puppet est principalement un système basé sur un modèle avec des agents, il prend en charge les opérations push avec les tâches Puppet. Puppet Enterprise est même disponible en tant que service sur Amazon.

Produits de marionnettes

Les offres actuelles de Puppet incluent Puppet open source, Puppet Enterprise, Puppet Pipelines, Puppet Discovery, Puppet Bolt, Puppet Container Registry et Puppet Forge. Open source Puppet, un moteur d'administration automatisé pour vos systèmes Linux, Unix et Windows, effectue des tâches administratives (telles que l'ajout d'utilisateurs, l'installation de packages et la mise à jour des configurations de serveur) sur la base d'une spécification centralisée.

Puppet Enterprise ajoute des fonctionnalités d'orchestration, une console Web et une assistance professionnelle à Puppet open source. Il vous aide à étendre l'automatisation de manière large et approfondie à travers votre infrastructure et à la maintenir conforme. Puppet Discovery découvre l'infrastructure traditionnelle, les ressources natives du cloud et les conteneurs et vous permet de les gérer.

Devops de marionnettes

Puppet Pipelines est une plateforme d'intégration continue / de livraison continue, disponible en tant que service hébergé et installation sur site. Il existe deux versions distinctes de Pipelines, pour les applications et pour les conteneurs avec Kubernetes.

La fonction Tâches Puppet sans agent vous permet d'effectuer des tâches ad hoc, par opposition à l'automatisation basée sur un modèle avec des agents. Les tâches sont disponibles en deux versions: Puppet Bolt open source et Puppet Enterprise Task Management. Bolt est destiné aux petites infrastructures, tandis que Enterprise Task Management, un composant de Puppet Enterprise, est destiné aux infrastructures à grande échelle nécessitant un contrôle d'accès basé sur les rôles, des pistes d'audit et des flux de travail orientés équipe.

Puppet Container Registry (anciennement Distelli Europa), disponible en versions gratuite, premium (ou équipe) et entreprise, offre une vue unifiée des registres locaux et distants pour les conteneurs Docker. La version premium ajoute un support multi-utilisateur et un contrôle d'accès; la version entreprise ajoute l'authentification unique.

Forge de marionnettes

Puppet Forge est un référentiel de modules pour Puppet et Puppet Enterprise open source. Il contient actuellement plus de 5 500 modules prédéfinis. Certains modules ont des tâches Puppet, mais pas tous. Certains modules sont testés et pris en charge par Puppet dans le cadre de Puppet Enterprise, et certains ne sont approuvés que par Puppet.

Chaque module a ses propres prérequis et procédure d'installation. Je ne dirai pas «Voici les dragons», mais je dirai que l'installation de modules est un domaine dans lequel Puppet n'essaye même pas de camoufler ses racines en tant qu'outil pour les administrateurs système Linux / Unix, même s'il fait assez bien Windows de nos jours (sauf en tant que Master).

Entreprise de marionnettes

Puppet Enterprise est une plate-forme unifiée qui combine une approche de configuration basée sur un modèle avec une exécution impérative des tâches, afin que vous puissiez gérer une infrastructure hybride. Il prend en charge les pratiques devops telles que le contrôle de version, la révision de code, les tests automatisés, l'intégration continue et le déploiement automatisé. Vous pouvez également utiliser Puppet pour migrer les charges de travail vers le cloud, les conteneurs et le cloud hybride. Puppet vous permet d'appliquer l'état souhaité de vos configurations, de corriger automatiquement les modifications inattendues et d'automatiser les tâches ad hoc.

Puppet Enterprise aide à réduire les risques associés aux erreurs de configuration de sécurité et aux audits échoués en appliquant en permanence vos politiques de sécurité et en prouvant la conformité. Fondamentalement, Puppet Master envoie automatiquement (pousse) les catalogues à ses clients toutes les demi-heures, et les agents Puppet sur les clients comparent ensuite ce catalogue avec des faits sur sa configuration existante et appliquent des modifications si nécessaire. Ensuite, les agents renvoient un rapport d'état au maître, qui peut générer un rapport de conformité global. La sécurité et la conformité sont gérées dans le cadre de la gestion de la configuration de base de Puppet, et non dans un composant séparé.

Marionnette dans le cloud

Puppet Enterprise est intégré aux principaux fournisseurs de services cloud: Amazon, Microsoft, VMware et Google. Il vous permet de rationaliser la gestion des ressources de calcul, de stockage et de réseau et de faire évoluer les charges de travail dans des environnements hétérogènes. La fonctionnalité se trouve principalement dans les modules spécifiques au cloud, par exemple le module puppetlabs / aws, qui fournit une interface à l'API AWS et vous permet non seulement de provisionner des instances, mais également de décrire l'ensemble de votre infrastructure AWS et de modéliser les relations entre différents Composants.

Puppet Enterprise ne prend actuellement pas en charge les fonctions sans serveur. Puppet Pipelines, une autre partie du portefeuille, est un outil de gestion du cycle de vie des versions du code d'application de développeur, qui peut inclure des fonctions sans serveur.

Kit de développement de marionnettes

Puppet permet un développement personnalisé en profondeur en vous permettant d'écrire vos propres modules. Il propose désormais un kit de développement qui facilite la génération de nouveaux modules et rend également possible la conversion d'anciens modules pour qu'ils soient compatibles avec le Puppet Development Kit (PDK). Le PDK comprend des outils de test, un modèle de module complet (sous forme de fichiers YAML, Ruby et Ruby intégrés) et des outils de ligne de commande pour vous aider à créer, valider et exécuter des tests sur les modules Puppet.

Installation et configuration de marionnettes

Il existe deux façons principales d'installer réellement Puppet Enterprise: à l'aide d'AWS OpsWorks, ou en le téléchargeant et en l'installant vous-même sur site ou dans une ou plusieurs instances cloud. (La gestion d'un maximum de 10 nœuds est gratuite.) Avant d'essayer l'une de ces installations, vous souhaiterez peut-être apprendre Puppet avec la machine virtuelle Puppet Learning ou l'émulateur en ligne Puppet illustré ci-dessous.

En utilisant AWS OpsWorks pour Puppet Enterprise, un service géré, vous pouvez avoir un maître Puppet entièrement configuré opérationnel sur AWS en moins de 20 minutes. OpsWorks est un bon choix pour les petites équipes et les magasins qui ne peuvent ou ne veulent pas gérer leur propre infrastructure Puppet.

Les étapes de base de la création d'une instance AWS OpsWorks pour Puppet Enterprise commencent par le téléchargement et l'installation de l'AWS CLI, de Git et des outils client Puppet Enterprise. Créez une clé SSH, configurez un compte GitHub à l'aide de la clé SSH, connectez-vous à la console AWS, accédez au service OpsWorks et cliquez sur «Créer un serveur Puppet Enterprise». Donnez à votre serveur un nom court, choisissez une région et sélectionnez le type d'instance c4.large. Sur la page suivante, disons que vous n'utilisez pas de clé SSH (pour AWS, cela n'a rien à voir avec la clé SSH GitHub) et fournissez un lien vers votre référentiel de contrôle GitHub. Acceptez les valeurs par défaut sur la page des paramètres avancés, lancez votre instance de serveur et téléchargez les informations d'identification et le Starter Kit avant que l'instance ne termine son initialisation. Le reste de ce dont vous avez besoin se trouve dans le Starter Kit,mais à ce stade, vous aurez déjà un maître fonctionnel qui applique sa propre configuration.

L'installation de Puppet Enterprise vous-même est une opération beaucoup plus longue et plus compliquée, et vous configure pour effectuer une mise à niveau chaque fois que Puppet publie une nouvelle version. D'un autre côté, vous pouvez profiter des ressources serveur que vous possédez déjà.

Vous pouvez installer Puppet Enterprise avec un programme d'installation basé sur le Web ou sur du texte sur un système RHEL, Ubuntu LTS ou Suse Linux, après avoir téléchargé l'archive tar appropriée et vérifié son empreinte digitale. Vous devrez fournir votre e-mail pour obtenir le lien. Je suggérerais de commencer par une installation mono basée sur le Web (tout sur un seul nœud) et de prendre toutes les valeurs par défaut. Vous pouvez toujours effectuer une mise à niveau plus tard. Vous pouvez éviter la plupart des problèmes si vous commencez avec une nouvelle image système Linux. N'aidez pas en installant PostgreSQL à l'avance, par exemple.

-

Coût: Open source Puppet: gratuit. Puppet Enterprise: 10 nœuds gratuits, 120 $ / nœud / an jusqu'à 500 nœuds avec prise en charge standard. Puppet Discovery est actuellement en préversion technique. Pipelines Puppet: cinq nœuds gratuits, 29,99 $ / nœud / mois jusqu'à 100 nœuds avec prise en charge standard.

Plate-forme: Master: Red Hat, SUSE ou Ubuntu Linux. Agents: Linux, Windows Vista ou version ultérieure, MacOS 10.10 ou version ultérieure, Solaris 10 ou 11. Cloud master disponible en tant qu'AWS OpsWorks for Puppet Enterprise.