Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le...

33
Puppet sur AWS Guide de déploiement de référence Quick Start

Transcript of Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le...

Page 1: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWSGuide de déploiement

de référence Quick Start

Page 2: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Puppet sur AWS: Guide de déploiement de référence Quick StartCopyright © 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Table of ContentsHome ................................................................................................................................................ 1

A propos des Quick Starts ........................................................................................................... 2Présentation ....................................................................................................................................... 3

Puppet sur AWS ........................................................................................................................ 3Coût et licences ......................................................................................................................... 3

Architecture ....................................................................................................................................... 5Détails de l'implémentation ................................................................................................................... 8

Services AWS ............................................................................................................................ 8Installation du maître Puppet ........................................................................................................ 8Certificats et noms DNS .............................................................................................................. 8Installation d'agent Puppet ........................................................................................................... 9Gestion des ressources AWS avec Puppet ..................................................................................... 9

Etapes de déploiement et de configuration ........................................................................................... 11Sujets abordés ......................................................................................................................... 11Prérequis ................................................................................................................................. 11Étape 1. Préparation du compte .................................................................................................. 12Étape 2. Lancement de la pile .................................................................................................... 15Étape 3. Configuration des agents Puppet .................................................................................... 17

Présentation des modules et des manifestes ......................................................................... 17Connexion aux agents Puppet ............................................................................................ 21Application des configurations ............................................................................................. 22

Dépannage ...................................................................................................................................... 26Sécurité ........................................................................................................................................... 27Ressources ...................................................................................................................................... 28Commentaire .................................................................................................................................... 29Révisions du document ...................................................................................................................... 30

.............................................................................................................................................. 30

iii

Page 4: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Puppet sur le cloud AWS :déploiement de référence Quick Start

Guide de déploiement

Equipe de référence Quick Start AWS

Mars 2016 (dernière mise à jour (p. 30) : mai 2017)

Ce guide de déploiement de référence Quick Start présente les étapes pour déployer et tester un maîtrePuppet et des agents Puppet sur le cloud Amazon Web Services (AWS). Il fournit également des lienspour afficher et lancer les modèles AWS CloudFormation qui automatisent le déploiement, ainsi qu'uneprocédure montrant comment configurer des instances Amazon Elastic Compute Cloud (Amazon EC2) quitiennent lieu d'agents Puppet.

Le guide est destiné aux architectes d'infrastructure informatique, aux administrateurs et aux professionnelsDevOps qui prévoient d'implémenter ou d'étendre leurs charges de travail Puppet sur le cloud AWS.

• Si vous disposez d'un compte AWS et que vous connaissez déjà AWS et Puppet, vous pouvez lancerle Quick Start pour créer l'architecture illustrée à la figure 1 (p. 5). Le déploiement dure environ20 minutes. Si vous n'êtes pas encore familiarisé avec AWS ou Puppet, veuillez consulter les détailsd'implémentation et suivre les instructions pas à pas (p. 11) fournies plus loin dans ce guide pourlancer le Quick Start.

 

 • Si vous souhaitez voir ce qui se passe en coulisses, vous pouvez consulter le modèle pour afficher

le script AWS CloudFormation qui automatise ce déploiement. La configuration par défaut déploietrois serveurs qui utilisent le type d'instance t2.medium par défaut, mais vous pouvez personnaliser lemodèle si vous le souhaitez.

 

Note

Vous êtes responsable des coûts liés à votre utilisation des services AWS utilisés lors del'exécution de ce déploiement de référence Quick Start. Les prix sont susceptibles d'être modifiés.Consultez la section Coût et licences (p. 3) et les pages de tarifs des services AWS que vousutiliserez pour plus de détails.

1

Page 5: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

A propos des Quick Starts

Option AWS OpsWorks

Ce Quick Start est destiné aux clients souhaitant exécuter et gérer leur infrastructure de maîtrePuppet sur AWS. Cependant, nous vous recommandons également d'examiner AWS OpsWorks,qui est un service de gestion de la configuration fourni par AWS, pour déterminer si celui-ci estplus adapté à vos besoins. AWS OpsWorks vous permet de configurer et de faire fonctionnerdes applications de tous les types et de toutes tailles. Vous pouvez définir l'architecture del'application ainsi que les spécifications de chaque composant, y compris les packages à installer,la configuration logicielle et les ressources telles que le stockage. Pour plus d'informations,consultez le Guide de l'utilisateur AWS OpsWorks.

A propos des Quick StartsLes Quick Starts sont des déploiements de référence automatisés pour les charges de travail clés sur lecloud AWS. Chaque Quick Start lance, configure et exécute les services AWS de calcul, de réseau, destockage et autres, requis pour déployer une charge de travail spécifique sur AWS, en utilisant les bonnespratiques AWS de sécurité et de disponibilité.

2

Page 6: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Puppet sur AWS

PrésentationPuppet sur AWS

Puppet est une solution de gestion de configuration basée sur des modèles issus de Puppet Labs quivous permet de définir l'état de votre infrastructure informatique et applique automatiquement l'étatsouhaité sur vos systèmes. Il est possible d'automatiser chaque étape de votre processus de livraison deslogiciels, du provisionnement des instances à l'orchestration et à la génération de rapports, y compris lapublication dans un environnement de production des logiciels et des mises à jour. Des outils de gestionde configuration comme Puppet peuvent vous aider à en faire plus en moins de temps, et à garantir lacohérence et la fiabilité quel que soit l'état de votre infrastructure. Puppet utilise un modèle client/serveurdans lequel des nœuds d'agent récupèrent des profils de configuration auprès du maître Puppet, qui est unserveur qui contrôle les informations de configuration. Pour plus d'informations, consultez la présentationde l'architecture sur le site web Puppet Labs.

A l'aide de ce Quick Start, vous pouvez lancer un maître Puppet d'un simple clic pour obtenir un accèsinstantané aux fonctions suivantes :

• Puppet vous permet de définir des configurations qui sont idempotentes, ce qui signifie qu'elles peuventêtre exécutées plusieurs fois sans risques. Une fois que vous avez développé vos configurations, vosagents peuvent appliquer la configuration à intervalles réguliers (30 minutes par défaut), ce qui conservevos systèmes à leur état souhaité. Si votre système sort de la configuration souhaitée, l'agent Puppetréapplique votre configuration.

• Puppet vous offre une prise en charge multiplateforme pour plusieurs types d'agent s'exécutant surdifférents systèmes d'exploitation. Par exemple, si vous utilisez déjà Puppet pour la gestion de laconfiguration des systèmes Linux, vous pouvez utiliser Puppet pour gérer également vos serveursMicrosoft Windows. Cela comprend les instances EC2 s'exécutant sous Linux ou Windows, voire lesmachines physiques qui s'exécutent dans votre centre de données.

• Outre l'utilisation de modules Puppet natifs pour configurer vos systèmes, vous pouvez utiliser le code duréférentiel Puppet Forge pour étendre les fonctionnalités de Puppet. Puppet Forge est un référentiel demodules développés par la communauté Puppet. Il vous fournit du code réutilisable pouvant automatiserdes tâches comme la configuration de bases de données, serveurs web et serveurs de messagerie lesplus divers.

Ce Quick Start est destiné aux utilisateurs souhaitant passer à AWS, ou qui exécutent déjà leurs systèmessur AWS, et veulent également déployer et à gérer leur propre infrastructure de maître Puppet. L'objectifde ce guide est de vous aider à démarrer avec Puppet sur AWS, même si vous n'avez aucune expérienceconcernant Puppet.

Ce Quick Start automatise le lancement du maître Puppet, effectue la configuration serveur initiale, etcrée des agents Puppet Linux et Windows au sein d'un Virtual Private Cloud (VPC). Vous pouvez suivrela procédure dans ce guide pour apprendre à appliquer des configurations à des agents Puppet et àinstaller un serveur web basique. Cette procédure vous montrera les avantages de l'automatisation del'installation et de la configuration des logiciels, et vous aidera à comprendre comment faire en sorte quevos paramètres système restent cohérents et reproductibles, et toujours à leur état souhaité.

Coût et licencesVous êtes responsable des coûts des services AWS utilisés lors de l'exécution de ce déploiement deréférence Quick Start. L'utilisation du Quick Start n'entraîne aucun coût supplémentaire. Consultez lespages de tarification de chaque service AWS que vous utiliserez pour plus de détails.

3

Page 7: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Coût et licences

Ce Quick Start déploie Open Source Puppet version 3.8.6 par défaut. Open Source Puppet est disponiblepour téléchargement et utilisation sous la licence Apache 2.0. Vous pouvez effectuer une mise à niveauvers Puppet Enterprise en vous inscrivant auprès de Puppet Labs et en téléchargeant un essai gratuit pourgérer 10 nœuds.

4

Page 8: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

ArchitectureLe déploiement de ce Quick Start avec les paramètres par défaut crée l'environnement suivant dans lecloud AWS.

5

Page 9: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Figure 1 : Architecture Quick Start pour Puppet sur AWS

6

Page 10: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Ce Quick Start déploie les ressources illustrées dans la figure 1 et les utilise comme suit :

• Un VPC est créé dans la région que vous choisissez lorsque vous lancez la pile. Un sous-réseau VPCpublic unique est créé dans la première zone de disponibilité.

• Un maître Puppet est déployé dans le sous-réseau VPC. Lors du lancement de l'instance, le maîtrePuppet est amorcé automatiquement pour installer tous les logiciels requis, ainsi que des modules etmanifestes Puppet qui peuvent être utilisés pour configurer les agents Puppet.

• Un serveur Ubuntu Server est déployé dans le sous-réseau VPC. Vous pouvez ensuite suivre laprocédure de ce guide pour appliquer une configuration de serveur web qui installera et configurera leserveur web Apache et PHP.

• Un serveur Windows Server 2012 R2 est déployé dans le sous-réseau VPC. Vous pouvez ensuite suivrela procédure de ce guide pour appliquer une configuration de serveur web qui installera et configurera leserveur web Internet Information Services (IIS) et ASP.NET.

7

Page 11: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Services AWS

Détails de l'implémentationCette section décrit l'implémentation de ce Quick Start et explique les considérations relatives à l'installationet à la configuration de Puppet sur AWS. Notez que certaines étapes sont manuelles et que d'autres sontautomatisées pour vous par ce Quick Start.

Services AWSLes composants AWS de base utilisés par ce Quick Start comprennent les services AWS suivants. (Si vousn'êtes pas encore familiarisé avec AWS, consultez la section Mise en route de la documentation AWS.)

• Amazon VPC – Le service Amazon Virtual Private Cloud (Amazon VPC) vous permet de provisionnerune section isolée et privée du cloud AWS où vous pouvez lancer des services et d'autresressources AWS dans un réseau virtuel que vous définissez. Vous conservez ainsi la totale maîtrisede votre environnement de mise en réseau virtuel, y compris pour la sélection de votre propre plaged'adresses IP, la création de sous-réseaux et la configuration de tables de routage et de passerellesréseau.

• Amazon EC2 – Le service Amazon Elastic Compute Cloud (Amazon EC2) vous permet de lancer desinstances de machine virtuelle avec différents systèmes d'exploitation. Vous pouvez choisir parmi lesAmazon Machine Images (AMI) existantes ou importer vos propres images de machine virtuelle.

• Amazon Route 53 – Amazon Route 53 est un service web de système de noms de domaine (DNS) cloudhautement disponible et scalable. Ce service est conçu pour donner aux développeurs et aux entreprisesun moyen extrêmement fiable et économique pour diriger les utilisateurs finaux vers des applicationsInternet ou internes en convertissant les noms d'hôte en adresses IP.

Installation du maître PuppetCe Quick Start déploie le maître Puppet sur une instance EC2 qui exécute Ubuntu 14.04. L'installationest automatisée à l'aide d'un script de données utilisateur qui s'exécute lorsque l'instance est lancéevia AWS CloudFormation. La version open source de Puppet est installée à l'aide d'un package appelépuppetmaster-passenger, qui est fourni par Puppet Labs. Ce package déploie le maître Puppet, y comprisune implémentation de serveur web prêt pour le production de Passenger avec Apache. Pour plusd'informations sur Passenger, consultez la documentation sur le site web Puppet Labs.

En plus d'installer le maître Puppet, ce Quick Start télécharge des modules Puppet préconfigurés depuisAmazon Simple Storage Service (Amazon S3), ce qui vous permet d'appliquer une configuration de serveurweb sur les nœuds Windows et Linux.

Certificats et noms DNSLe maître Puppet tient lieu d'autorité de certification (CA), et des certificats SSL sont utilisés pourauthentifier les communications entre les nœuds maître et agent. Comme le maître Puppet est une autoritéde certification, il génère ses propres certificats qui seront utilisés pour signer les demandes de certificatdes agents.

Comme ce Quick Start pré-provisionne des jeux d'enregistrements pour chaque instance EC2 dansAmazon Route 53, le maître Puppet utilise le nom d'hôte puppet.example.com par défaut. Pendant laconfiguration automatisée de Puppet, les certificats d'autorité de certification du maître sont générés

8

Page 12: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Installation d'agent Puppet

à l'aide de ce nom d'hôte. Ainsi, les clients qui se connectent au maître en utilisant son nom d'hôteprédéterminé verront le nom d'hôte correct sur le certificat. L'utilisation du nom d'hôte par défaut évite dedevoir régénérer les certificats après une installation standard pour inclure le nom approprié.

Les agents Puppet doivent être configurés pour se connecter à votre maître Puppet et le Quick Startautomatise cette tâche. Si vous souhaitez utiliser des noms d'hôte différents, il vous suffit de téléchargerune copie des modèles, de les modifier pour utiliser les noms d'hôte souhaités, puis de lancer la pile pourconfigurer automatiquement votre maître et les agents. Gardez à l'esprit que le Quick Start télécharge desfichiers de configuration, des modules et des manifestes, depuis Amazon S3, lesquels incluent ces noms.Vous devrez donc également télécharger et modifier ces éléments si vous souhaitez personnaliser votredéploiement.

La première fois que l'agent Puppet s'exécute sur un nœud, il envoie une demande de signature decertificat au maître. En général, cette opération n'est pas effectuée automatiquement et vous devez signerle certificat de l'agent sur le serveur maître avant de pouvoir commencer à contrôler le nœud.

Dans ce Quick Start, les demandes de signature de certificat provenant d'agents Linux et Windows sontmises sur liste blanche à l'aide du fichier de configuration autosign.conf sur le maître Puppet. Ce fichierinclut les noms linuxagent.example.com et windowsagent.example.com. Comme avec la résolution denoms DNS, le Quick Start provisionne pour vous des jeux d'enregistrements pour ces noms dans une zonehébergée privée Amazon Route 53 et configure les agents de sorte qu'ils utilisent ces noms d'hôtes dans lesystème d'exploitation. L'utilisation du fichier de configuration de signature automatique avec ce Quick Startvous permet d'être opérationnel rapidement. Cependant, pour les environnements de production, voussouhaiterez probablement signer manuellement les demandes d'agent ou utiliser l'interface basée sur lesstratégies de Puppet pour les certificats de signature automatique.

Installation d'agent PuppetL'agent Linux déployé par ce Quick Start exécute également Ubuntu 14.04, comme le maître. L'installationde l'agent a lieu une fois que le maître a été déployé. Le Quick Start exécute un script de donnéesutilisateur simple lorsqu'il lance l'agent via AWS CloudFormation. Ce script installe l'agent et le configurepour pointer vers le maître sur puppet.example.com, et le serveur demande et signe automatiquement lecertificat de l'agent.

L'agent Windows est déployé sur une instance exécutant Windows Server 2012 R2. Comme avec Linux, leQuick Start exécute un script de données utilisateur simple pour installer et configurer l'agent au lancementune fois que le maître a déjà été déployé. En outre, le Quick Start télécharge et installe automatiquementles modules puppetlabs-powershell et puppetlabs-windowsfeature depuis Puppet Forge. Ces modules sontutilisés dans un manifeste de module qui installe le serveur web IIS avec tous les composants requis etprennent en charge les sites web ASP.NET.

Gestion des ressources AWS avec PuppetVous pouvez utiliser le module AWS de Puppet Labs pour provisionner, configurer et gérer les ressourcesAWS de manière cohérente et reproductible. Vous pouvez utiliser ce module pour auditer des ressourcesAWS, lancer des groupes Auto Scaling dans le VPC, effectuer des tests d'unité, et plus encore. Le moduleprend en charge les services AWS suivants :

• Amazon EC2• Amazon VPC• Elastic Load Balancing• Auto Scaling• Groupes de sécurité

9

Page 13: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Gestion des ressources AWS avec Puppet

• DNS Amazon Route 53

Pour en savoir plus, consultez Provision, Configure & Manage AWS Resources with Puppet Enterprise surle site web Puppet Labs.

10

Page 14: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Sujets abordés

Etapes de déploiement et deconfiguration

Le modèle AWS CloudFormation fourni avec ce Quick Start amorce l'infrastructure AWS et automatisele déploiement d'un maître Puppet et d'agents Puppet sur le cloud AWS à partir de zéro. Suivez lesinstructions pas à pas de cette section pour configurer votre compte AWS, personnaliser le modèle etdéployer le logiciel dans votre compte.

Sujets abordésLa procédure de déploiement de Puppet sur AWS comprend les étapes suivantes. Pour obtenir desinstructions détaillées, suivez les liens pour chaque étape.

• Prérequis (p. 11)

Configurez et activez la résolution de nom via DNS. Assurez-vous que vous pouvez utiliser Secure Shell(SSH) ou le protocole RDP (Remote Desktop Protocol) pour les connexions à distance.

• Étape 1. Préparation d'un compte AWS (p. 12)

Inscription à un compte AWS, choix d'une région, création d'une paire de clés et demanded'augmentation des limites de compte, si nécessaire.

• Étape 2. Lancement de la pile (p. 15)

Lancez le modèle AWS CloudFormation dans votre compte AWS, spécifiez des valeurs de paramètre etcréez la pile.

• Étape 3. Configuration des agents Puppet (p. 17)

Vérifiez les manifestes de module pour les agents Linux et Windows, connectez-vous aux agents viaSSH ou RDP, puis appliquez les configurations.

PrérequisPour activer la communication entre le maître Puppet et les agents Puppet, vous devez configurer et activerla résolution de nom via DNS. Les agents accèdent au maître Puppet à l'aide d'un nom DNS completcomme puppet.exemple.com.

Pour assurer la résolution de nom au sein de l'Amazon VPC créé par ce Quick Start, le modèleAWS CloudFormation crée une zone hébergée privée Amazon Route 53 et provisionne des jeuxd'enregistrements pour chaque instance EC2 en fonction des adresses IP fournies par les paramètres demodèle au moment du lancement.

L'utilisation de Amazon Route 53 n'est pas une obligation. Vous pouvez utiliser votre propre infrastructurede serveur DNS, et créer des enregistrements et configurer manuellement vos instances. Si vous décidezd'utiliser votre propre serveur DNS, veillez à ce que les instances EC2 résolvent les noms par rapport àvotre propre infrastructure de serveur DNS, et créez des enregistrements (A) hôte qui correspondent àchaque adresse IP d'instance EC2.

Outre la résolution du nom, un petit nombre de ports réseau doivent être ouverts pour permettre lacommunication entre les agents et le maître Puppet. Le maître Puppet doit être accessible par les agents

11

Page 15: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Étape 1. Préparation du compte

via le port TCP 8140. Pour ce Quick Start, le maître Puppet est associé à un groupe de sécurité EC2 quiautorise l'accès entrant au port TCP 8140 depuis n'importe quelle adresse au sein de la plage CIDR duVPC.

Pour gérer vos agents, vous devez être en mesure de vous connecter à distance via SSH ou RDP.Ce Quick Start crée et associe des groupes de sécurité EC2 pour l'accès aux agents à distance. Cesrègles entrantes incluent l'accès au port TCP 22 pour SSH et au port TCP 3389 pour RDP. En outre, unerègle entrante pour le port TCP 80 est autorisée par l'adresse CIDR que vous définissez pour l'accès àdistance. Cela vous permet de vérifier que vos serveurs web sont opérationnels après l'application de vosconfigurations Puppet sur les agents.

Étape 1. Préparation d'un compte AWS1. Si vous n'avez pas encore de compte AWS, créez-en un à l'adresse https://aws.amazon.com en

suivant les instructions qui s'affichent à l'écran. Dans le cadre de la procédure d'inscription, vousrecevrez un appel téléphonique et vous saisirez un code PIN en utilisant le clavier numérique de votretéléphone.

2. Utilisez le sélecteur de région dans la barre de navigation pour choisir la région AWS dans laquellevous souhaitez déployer Puppet sur AWS.

Les emplacements Amazon EC2 sont composés de régions et de zones de disponibilité. Les régionssont dispersées et situées dans des zones géographiques distinctes.

Figure 2 : Choix d'une région AWS

Conseil

Il est recommandé de sélectionner une région proche de votre centre de données ou réseaud'entreprise pour réduire la latence réseau entre les systèmes qui s'exécutent sur AWS, et lessystèmes et utilisateurs de votre réseau d'entreprise.

3. Créez une paire de clés dans votre région préférée. Pour ce faire, dans le volet de navigation dela console Amazon EC2, choisissez Paire de clés, Créer une paire de clés, saisissez un nom, puischoisissez Créer.

12

Page 16: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Étape 1. Préparation du compte

Figure 3 : Création d'une paire de clés

Amazon EC2 utilise le chiffrement de clé publique pour chiffrer et déchiffrer les informations deconnexion. Pour pouvoir vous connecter à vos instances, vous devez créer une paire de clés. Avecdes instances Windows, nous utilisons la paire de clés pour obtenir le mot de passe administrateur viala console Amazon EC2, puis nous connecter à l'aide du protocole RDP (Remote Desktop Protocol)comme expliqué dans les instructions pas à pas du Guide de l'utilisateur Amazon Elastic ComputeCloud. Sous Linux, nous utilisons la paire de clés pour authentifier la connexion SSH.

4. Si nécessaire, demandez une augmentation de limite de service pour le type d'instance t2.medium.Pour ce faire, dans le Centre AWS Support, choisissez Create Case, Service Limit Increase, EC2instances, puis complétez les champs du formulaire d'augmentation de limite. La limite par défaut pource type d'instance est de 20 instances.

Vous pouvez avoir besoin de demander une augmentation si vous disposez déjà d'un déploiementexistant qui utilise ce type d'instance et que vous pensez que vous pourriez dépasser la limite pardéfaut avec ce déploiement de référence. Plusieurs jours peuvent être nécessaires pour que lanouvelle limite de service soit effective. Pour plus d'informations, consultez Limites de service AmazonEC2 dans la documentation AWS.

13

Page 17: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Étape 1. Préparation du compte

Figure 4 : Demande d'une augmentation de limite de service

14

Page 18: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Étape 2. Lancement de la pile

Étape 2. Lancement de la pile Puppet

Ce modèle AWS CloudFormation automatisé fourni avec ce Quick Start déploie Puppet dans un VPC.Veuillez vous assurer d'avoir terminé les étapes précédentes avant de lancer la pile.

1. Lancez le modèle AWS CloudFormation dans votre compte AWS.

Le modèle est lancé dans la région USA Ouest (Oregon) par défaut. Vous pouvez changer de régionen utilisant le sélecteur de région dans la barre de navigation.

La création de cette pile dure environ 20 minutes.

Note

Vous êtes responsable des coûts des services AWS utilisés lors de l'exécution de cedéploiement de référence Quick Start. L'utilisation de ce Quick Start n'entraîne aucun coûtsupplémentaire. Consultez les pages de tarification de chaque service AWS que vousutiliserez pour plus de détails.

2. Sur la page Select Template, conservez l'URL par défaut pour le modèle AWS CloudFormation, puischoisissez Next.

3. Sur la page Specify Details, vérifiez les paramètres du modèle. Elles sont décrites dans le tableausuivant.

Fournissez une valeur pour le paramètre KeyPairName. Vous devez entrer une valeur pour ceparamètre. Pour tous les autres paramètres, le modèle fournit des paramètres par défaut que vouspouvez personnaliser.

Configuration de la sécurité :

Etiquette de paramètre Nom du paramètre Par défaut Description

Sélectionner une pairede clés

KeyPairName Entréeobligatoire

Paire de clés publique/privée qui vous permetde vous connecter demanière sécurisée àvotre instance aprèsson lancement. Quandvous avez créé uncompte AWS, il s'agitde la paire de clés quevous avez créée dansvotre région préférée.

IP source pour l'accèsà distance

RemoteAdminCIDR Entréeobligatoire

Bloc d'adresseCIDR ou adresse IPpour l'accès SSH etRDP (par exemple,1.1.1.1/32).

15

Page 19: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Étape 2. Lancement de la pile

Configuration d'AWS Quick Start :

Etiquette de paramètre Nom du paramètre Par défaut Description

Nom de compartimentQuick Start S3

QSS3BucketName quickstart-reference Compartiment S3 oùles modèles et lesscripts Quick Startsont installés. Utilisezce paramètre pourspécifier le nom ducompartiment S3que vous avez créépour votre copie desressources QuickStart si vous décidezde personnaliser oud'étendre le QuickStart pour votre propreutilisation. Le nom decompartiment peutinclure des chiffres,des minuscules, desmajuscules et destirets, mais ne doitpas commencer ou seterminer par un tiret.

Préfixe de clé QuickStart S3

QSS3KeyPrefix puppet/latest/ Préfixe de nom declé S3 utilisé poursimuler un dossierpour votre copie desressources QuickStart si vous décidezde personnaliser oud'étendre le QuickStart pour votrepropre utilisation. Cepréfixe peut incluredes chiffres, desminuscules, desmajuscules, des tiretset des barres obliques.

Configuration réseau:

Etiquette de paramètre Nom du paramètre Par défaut Description

Plage CIDR pour votreVPC

VPCCIDR 10.0.0.0/16 Bloc d'adresse CIDRde l'Amazon VPC.

Plage CIDR pour lesous-réseau dans votreVPC

SubnetCIDR 10.0.0.0/19 Bloc d'adresse CIDRpour le sous-réseau.

16

Page 20: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Étape 3. Configuration des agents Puppet

Etiquette de paramètre Nom du paramètre Par défaut Description

Adresse IP pour lemaître Puppet

PuppetMasterIP 10.0.0.10 Adresse IP pourl'instance où le maîtrePuppet est déployé.

Adresse IP pour l'agentPuppet Linux

PuppetAgentLinuxIP 10.0.0.11 Adresse IP pourl'instance où l'agentPuppet Linux estdéployé.

Adresse IP pour l'agentPuppet Windows

PuppetAgentWindowsIP 10.0.0.12 Adresse IP pourl'instance où l'agentPuppet Windows estdéployé.

4. Sur la page Options, vous pouvez spécifier des balises (paires clé-valeur) pour les ressources de votrepile et définir des options supplémentaires. Lorsque vous avez terminé, sélectionnez Next.

5. Sur la page Review, vérifiez et confirmez les paramètres du modèle. Sous Capabilities, cochez la casepour accepter que le modèle crée des ressources IAM.

6. Choisissez Create pour déployer la pile.7. Surveillez le statut de la pile. Quand le statut affiche CREATE_COMPLETE, le cluster Puppet est prêt.

Étape 3. Configuration des agents PuppetVous pouvez suivre ces instructions de cette section pour tester votre configuration Puppet sur AWS. Nousallons examiner les manifestes de module pour les agents Puppet, appliquer les configurations et vérifierque les configurations ont été appliquées avec succès.

Présentation des modules et des manifestesVous pouvez appliquer des configurations à vos nœuds d'agent de plusieurs manières (voir ladocumentation Puppet Labs). Ce Quick Start utilise des modules pour chaque nœud Linux et Windows, ettélécharge ces modules depuis Amazon S3 vers le maître pendant la phase d'amorçage.

Ces programmes Puppet, appelés manifestes, sont développées à l'aide du code Puppet. (Pour plusd'informations sur le langage Puppet consultez la documentation Puppet Labs.) Le manifeste principals'appelle site.pp et est situé sur le maître dans le dossier manifests. La figure 5 montre le manifeste site.pputilisé par le maître dans ce Quick Start.

17

Page 21: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Présentation des modules et des manifestes

Figure 5 : Le manifeste principal

Ce manifeste comprend trois déclarations de nœud :

• Ligne 1 – Définit un bloc de nœuds qui peut être appliqué par défaut à n'importe quel système. Commenous n'effectuons pas de configurations communes, il n'y a pas de code au sein des accolades.

• Ligne 3 – Définit un bloc de nœuds pour un agent nommé linuxagent.example.com. Il s'agit de l'agentUbuntu lancé par le Quick Start. Au lieu de placer des définitions de ressource dans ce bloc de nœuds,nous faisons référence à une classe à partir d'un module appelé lampserver. L'utilisation de classesconstitue un excellent moyen de réduire la duplication de code. Dans le cas présent, lorsque l'agentLinux applique sa configuration, il utilise le code à partir de la classe lampserver pour définir l'état dusystème.

• Ligne 7 – Définit un bloc de nœuds pour un agent nommé windowsagent.example.com. Il s'agit de l'agentWindows Server 2012 R2 lancé par le Quick Start. Au lieu de placer des définitions de ressource dans cebloc de nœuds, nous faisons référence à une classe à partir d'un module appelé iisserver. Lorsquel'agent Windows applique sa configuration, il utilise le code à partir de la classe iisserver pour définirl'état du système.

Observons maintenant les classes lampserver et iisserver pour voir ce qu'elles font.

La classe lampserver est définie dans un module appelé lampserver. Le fichier manifeste pour lemodule est nommé init.pp et est situé dans /etc/puppet/modules/lampserver/manifests sur le maître.

18

Page 22: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Présentation des modules et des manifestes

Figure 6 : La classe lampserver

Notez les points suivants à propos du code lampserver illustré dans la figure 6 :

19

Page 23: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Présentation des modules et des manifestes

• Ligne 1 – Il s'agit de la définition de classe lampserver, qui est référencée dans notre fichier manifesteprincipal.

• Ligne 2 - Le mot-clé exec définit une déclaration de ressource. Vous utilisez des ressources pour décrirel'état souhaité du système. Ici, nous utilisons la ressource exec pour exécuter la commande apt-update sur le nœud.

• Ligne 6 – La ressource package est utilisée pour installer Apache 2 sur le nœud. Notez que l'instructionrequire s'assure que apt-update a déjà été exécuté avant que cette ressource puisse être installée.

• Ligne 11 – La ressource service s'assure que le service Apache 2 s'exécute.• Ligne 15 – La ressource package s'assure que le serveur MySQL est installé, tant que apt-update a

été exécuté avec succès.• Ligne 20 – La ressource service s'assure que MySQL s'exécute.• Ligne 24 – La ressource package s'assure que PHP 5 est installé, tant que apt-update a été exécuté

avec succès.• Ligne 29 – La ressource file s'assure qu'un nouveau fichier nommé info.php est créé dans le répertoire

racine apache par défaut. Ceci nécessite qu'Apache 2 soit installé. Le code PHP est ajouté au contenudu fichier pour fournir une page d'informations sur le serveur web lorsque l'utilisateur consulte le sitedans un navigateur web.

La classe iisserver est définie dans un module appelé iisserver. Le fichier manifeste pour le moduleest nommé init.pp et est situé dans /etc/puppet/modules/iisserver/manifests sur le maître.

Figure 7 : La classe iisserver

Notez les points suivants à propos du code iisserver illustré dans la figure 7 :

• Ligne 1 – Il s'agit de la définition de classe iisserver, qui est référencée dans notre fichier manifesteprincipal.

20

Page 24: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Connexion aux agents Puppet

• Ligne 15 – La ressource windowsfeature tire parti de Windows PowerShell pour s'assurer que tous lescomposants requis pour IIS et ASP.NET sont installés.

• Ligne 19 – La ressource windowsfeature installe les outils de gestion pour l'administration d'IIS.• Ligne 25 – La ressource file s'assure qu'une page web ASP.NET d'information appelée info.aspx est

présente dans le répertoire racine du serveur web. Le contenu de cette page web est tronqué dans lafigure 7 en raison de contraintes d'espace, mais il contient une directive de page unique qui fournit desinformations sur le serveur, tout comme info.php sur le nœud Linux.

En plus de créer vos propres modules, vous pouvez utiliser directement des manifestes ou tirer partide modules pré-existants issus de Puppet Forge. Pour plus de détails sur l'écriture de modules et demanifestes, consultez Module Fundamentals et les cours de formation sur le site web Puppet Labs.

Connexion aux agents PuppetMaintenant que vous comprenez l'objectif des exemples de modules, vous êtes prêt à vous connecter àvos agents à distance.

Agent LinuxVous devez utiliser SSH pour vous connecter à votre agent Linux depuis l'extérieur du VPC. Dans laconsole Amazon EC2, sélectionnez l'instance EC2 balisée LinuxAgent, comme indiqué dans la figure 8.

Figure 8 : Sélection de l'instance LinuxAgent

Extrayez le nom DNS public pour LinuxAgent et suivez les instructions fournies dans le Guide del'utilisateur Amazon EC2 pour les instances Linux pour connecter votre client SSH à l'instance. Vous aurezbesoin d'avoir votre paire de clés à disposition pour établir une connexion SSH distante.

Agent WindowsVous pouvez utiliser RDP pour vous connecter à l'agent Windows sur Internet. Dans la console AmazonEC2, sélectionnez l'instance EC2 balisée WindowsAgent, comme indiqué dans la figure 9.

21

Page 25: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Application des configurations

Figure 9 : Sélection de l'instance WindowsAgent

Extrayez le nom DNS public pour WindowsAgent et suivez les instructions fournies dans le Guide del'utilisateur Amazon EC2 pour les instances Microsoft Windows pour vous connecter. Vous aurez besoind'avoir votre paire de clés à disposition pour déchiffrer le mot de passe administrateur Windows et établirune connexion distante.

Application des configurationsDans cette section, vous allez appliquer des configurations de nœud et vérifier que tout a été configuréavec succès.

Agent LinuxUne fois connecté à votre agent Linux via SSH, exécutez la commande suivante pour appliquer laconfiguration dans le module lampserver :

sudo puppet agent --test

Vous devez voir une sortie similaire à celle de la figure 10, indiquant que la configuration a été appliquéeavec succès.

22

Page 26: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Application des configurations

Figure 10 : Sortie de l'agent Puppet Linux

Ouvrez ensuite un navigateur web et accédez à la page info.php. Vous devez utiliser le nom DNS public del'instance EC2 LinuxAgent, par exemple, http://<nom_DNS_public>/info.php.

Figure 11 : Test du serveur web Apache

23

Page 27: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Application des configurations

Vous devriez voir une page de version PHP similaire à celle illustrée dans la figure 11. Cela indique quevous avez appliqué la configuration à votre agent Linux avec succès.

Agent WindowsUne fois connecté à votre agent Windows via RDP, recherchez le raccourci Start Command Prompt withPuppet dans l'écran de démarrage. Ouvrez le menu contextuel (clic droit) du raccourci, puis choisissezExécuter en tant qu'administrateur. Exécutez la commande suivante pour appliquer la configuration dans lemodule iisserver.

puppet_interactive.bat

Vous devez voir une sortie similaire à celle de la figure 12, indiquant que la configuration a été appliquéeavec succès.

Figure 12 : Sortie de l'agent Puppet Windows

Pour finir, ouvrez un navigateur web et accédez à la page info.aspx. Vous devez utiliser le nom DNS publicde l'instance EC2 WindowsAgent, par exemple, http://<nom_DNS_public>/info.aspx.

24

Page 28: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Application des configurations

Figure 13 : Test du serveur web IIS

Vous devriez voir une page de version IIS similaire à celle illustrée dans la figure 13. Cela indique que vousavez appliqué la configuration à votre agent Windows avec succès.

25

Page 29: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

DépannageQ. Une erreur CREATE_FAILED s'est produite quand j'ai lancé Quick Start. Que dois-je faire ?

R.Si AWS CloudFormation ne parvient pas à créer la pile, nous vous recommandons de relancer lemodèle avec Restauration en cas d'échec défini sur Non. (Ce paramètre se trouve sous Avancé sur lapage Options de la console AWS CloudFormation.) Avec ce paramètre, l'état de la pile sera conservé etl'instance continuera de s'exécuter pour vous permettre de résoudre le problème. (Vous devez examinerles fichiers journaux dans %ProgramFiles%\Amazon\EC2ConfigService et C:\cfn\log.)

Important

Si vous définissez Restauration en cas d'échec sur Non, vous continuerez de vous acquitter defrais AWS pour cette pile. Veillez à supprimer la pile lorsque vous avez terminé le dépannage.

Pour plus d'informations, consultez Dépannage AWS CloudFormation sur le site web AWS ou contactez-nous sur le Forum de discussion AWS Quick Start.

Q. Une erreur de limitation de taille s'est produite quand j'ai déployé les modèles AWS Cloudformation.

R. Nous vous recommandons de lancer les modèles Quick Start à partir de l'emplacement que nous avonsfourni, ou à partir d'un autre compartiment S3. Si vous déployez les modèles à partir d'une copie localesur votre ordinateur ou à partir d'un emplacement non S3, vous pouvez être confronté à des limitations detaille de modèle lorsque vous créez la pile. Pour plus d'informations sur les limites AWS CloudFormation,consultez la documentation AWS.

26

Page 30: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

SécuritéUn groupe de sécurité fonctionne comme un pare-feu contrôlant le trafic d'une ou de plusieurs instances.Lorsque vous démarrez une instance, vous lui associez un ou plusieurs groupes de sécurité. Vous ajoutezdes règles à chaque groupe de sécurité pour autoriser le trafic vers ou depuis ses instances associées.Vous pouvez modifier les règles d'un groupe de sécurité à tout moment. Les nouvelles règles sontappliquées automatiquement à toutes les instances associées au groupe de sécurité.

Les groupes de sécurité créés et attribués aux instances individuelles dans le cadre de cette solution sontrestreints autant que possible, tout en autorisant l'accès aux différentes fonctions requises par Puppet.Nous vous recommandons de vérifier les groupes de sécurité pour restreindre encore plus l'accès sinécessaire une fois que Puppet est opérationnel.

27

Page 31: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Ressources supplémentairesServices AWS

• Amazon EC2• AWS CloudFormation• Amazon VPC• Amazon Route 53

Ressources Puppet

• Documentation Puppet• Formations Puppet Labs• Puppet sur AWS• Provision AWS Infrastructure Using Puppet (article de blog)• Automating AWS with Puppet (vidéo)• Puppet and AWS: Getting the Best of Both Worlds (vidéo)• Puppet Forge• Communauté Puppet

Déploiements de référence Quick Start

• Page d'accueil d'AWS Quick Start

28

Page 32: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Envoyez-nous vos commentairesVous pouvez accéder à notre référentiel GitHub pour télécharger les modèles et les scripts pour cedéploiement Quick Start, publier des commentaires et partager vos personnalisations avec d'autresutilisateurs.

29

Page 33: Puppet sur AWS · Puppet sur AWS Guide de déploiement de référence Quick Start Puppet sur le cloud AWS : déploiement de référence Quick Start Guide de déploiement

Puppet sur AWS Guide dedéploiement de référence Quick Start

Révisions du documentDate Modification Emplacement

 mai 2017 Ajout du signalement AWSCloudFormation pour le maîtrePuppet, ajout d'améliorationspour la portabilité de Quick Start

Mises à jour de modèles etmodifications dans l'ensemble duguide

Mars 2016 Publication initiale –

AvisCe guide de déploiement est fourni à titre informatif uniquement. Il présente l'offre de produits et lespratiques actuelles d'AWS à la date de publication de ce document, des informations qui sont susceptiblesde modification sans préavis. Il incombe aux clients de procéder à leur propre évaluation indépendante desinformations contenues dans ce document et chaque client est responsable de son utilisation des produitsou services AWS, chacun étant fourni « en l'état », sans garantie d'aucune sorte, qu'elle soit explicite ouimplicite. Ce document ne crée pas de garanties, représentations, engagements contractuels, conditionsou assurances à l'encontre d'AWS, de ses affiliés, fournisseurs ou donneurs de licence. Les responsabilitéset obligations d'AWS vis-à-vis de ses clients sont régies par les contrats AWS. Le présent document ne faitpartie d'aucun, et ne modifie aucun, contrat entre AWS et ses clients.

Le logiciel décrit dans le présent livre blanc est soumis à la licence Apache, version 2.0 (la « Licence »).L'utilisation de ce fichier est soumise au respect de la Licence. Vous pouvez obtenir une copie de la licenceà l'adresse http://aws.amazon.com/apache2.0/ ou dans le fichier « license » accompagnant ce fichier. Lecode est fourni EN L'ETAT, SANS GARANTIE OU CONDITION D'AUCUNE SORTE, explicite ou implicite.Consultez la Licence pour les dispositions spécifiques régissant les autorisations et limitations dans lecadre de la Licence.

30