Remplacement des modèles intégrés - AWS OpsWorks

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Remplacement des modèles intégrés

Important

AWS OpsWorks Stacksn'accepte plus de nouveaux clients. Les clients existants pourront utiliser la OpsWorks console, l'API, la CLI et les CloudFormation ressources normalement jusqu'au 26 mai 2024, date à laquelle elles ne seront plus disponibles. Pour préparer cette transition, nous vous recommandons de transférer vos piles AWS Systems Manager dès que possible. Pour plus d’informations, consultez AWS OpsWorks StacksFAQ sur la fin de vie et Migration de vos AWS OpsWorks Stacks applications vers AWS Systems Manager Application Manager.

Note

Cette rubrique s'applique uniquement aux piles Linux. Vous ne pouvez pas remplacer des modèles intégrés sur des piles Windows.

Les recettes intégrées AWS OpsWorks Stacks utilisent des modèles pour créer des fichiers sur les instances, principalement des fichiers de configuration pour les serveurs, par exemple Apache. Par exemple, les recettes apache2 utilisent le modèle apache2.conf.erb pour créer le fichier de configuration principal du serveur Apache, httpd.conf (Amazon Linux) ou apache2.conf (Ubuntu).

La plupart des paramètres de configuration de ces modèles sont représentés par des attributs, le meilleur moyen de personnaliser un fichier de configuration est donc de remplacer les attributs intégrés appropriés. Pour obtenir un exemple, consultez Remplacement des attributs intégrés. Toutefois, si les paramètres que vous souhaitez personnaliser ne sont pas représentés par des attributs intégrées, ou s'ils ne sont pas du tout dans le modèle, vous devez remplacer le modèle lui-même. Cette rubrique décrit comment remplacer un modèle intégré pour spécifier un paramètre de configuration personnalisé Apache.

Vous pouvez fournir des réponses d'erreur personnalisées à Apache en ajoutant les paramètres ErrorDocument au fichier httpd.conf. apache2.conf.erb contient uniquement des exemples mis en commentaire, comme indiqué ci-après :

... # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...

Etant donné que ces paramètres sont des commentaires codés en dur, vous ne pouvez pas spécifier de valeurs personnalisées en remplaçant les attributs ; vous devez remplacer le modèle lui-même. Cependant, contrairement à ce qui se passe avec les attributs, il n'est pas possible de remplacer certaines parties d'un modèle de fichier. Vous devez créer un livre de recettes personnalisé portant le même nom que la version intégrée, copier le modèle de fichier dans le même sous-répertoire et modifier le fichier en fonction des besoins. Cette rubrique montre comment remplacer apache2.conf.erb pour fournir une réponse personnalisée à une erreur 500. Pour plus d'informations générales sur le remplacement des modèles, consultez Utilisation de modèles personnalisés.

Important

Lorsque vous remplacez un modèle intégré, les recettes intégrées utilisent votre version personnalisée du modèle au lieu de la version intégrée. Si AWS OpsWorks Stacks met à jour le modèle intégré, le modèle personnalisé devient désynchronisé et risque de ne pas fonctionner correctement. AWS OpsWorks Stacks n'apporte pas souvent de telles modifications, et lorsqu'un modèle change, AWS OpsWorks Stacks répertorie les modifications et vous donne la possibilité de passer à une nouvelle version. Nous vous recommandons de surveiller le référentiel AWS OpsWorks Stacks pour détecter des modifications et de mettre à jour manuellement votre modèle personnalisé en fonction des besoins. Notez que le référentiel a une branche distincte pour chaque version de Chef prise en charge, alors veillez à utiliser la branche appropriée.

Pour commencer, créez un livre de recettes personnalisé.

Pour créer le livre de recettes
  1. Dans le répertoire opsworks_cookbooks, créez un répertoire de livres de recettes nommé apache2 et accédez à celui-ci. Pour que vous puissiez remplacer les modèles intégrés, le livre de recettes personnalisé doit avoir le même nom que le livre de recettes intégré, apache2 pour cet exemple.

    Note

    Si vous avez déjà découvert la procédure Remplacement des attributs intégrés, vous pouvez utiliser le même livre de recettes apache2 pour cet exemple et ignorer l'étape 2.

  2. Créez un fichier metadata.rb avec le contenu suivant, puis enregistrez-le dans le répertoire apache2.

    name "apache2" version "0.1.0"
  3. Dans le répertoire apache2, créez un répertoire templates/default.

    Note

    Le templates/default répertoire fonctionne pour les instances Amazon Linux, qui utilisent le apache2.conf.erb modèle par défaut. Les instances Ubuntu 14.04 utilisent un modèle apache2.conf.erb propre au système d'exploitation et se trouvant dans le répertoire templates/ubuntu-14.04. Si vous souhaitez que la personnalisation s'applique également aux instances Ubuntu 14.04, vous devez également remplacer ce modèle.

  4. Copiez le modèle apache2.conf.erb intégré dans votre répertoire templates/default. Ouvrez le fichier du modèle, supprimez le commentaire de la ligne ErrorDocument 500 et entrez un message d'erreur personnalisé, comme suit :

    ... ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html ...
  5. Créez une .zip archive opsworks_cookbooks nomméeopsworks_cookbooks.zip, puis chargez le fichier dans un compartiment Amazon Simple Storage Service (Amazon S3). Pour simplifier les choses, rendez l'archive publique. Enregistrez l'URL de l'archive pour une utilisation ultérieure. Vous pouvez également stocker vos livres de recettes dans une archive privée Amazon S3 ou dans d'autres types de référentiels. Pour plus d’informations, consultez Référentiels de livres de recettes.

    Le contenu livré aux compartiments Amazon S3 peut contenir du contenu client. Pour plus d'informations sur la suppression de données sensibles, consultez How Do I Empty an S3 Bucket? (Comment puis-je vider un compartiment S3 ?) ou How Do I Delete an S3 Bucket? (Comment supprimer un compartiment S3 ?).

Note

Pour plus de simplicité, cet exemple ajoute un message d'erreur codé en dur au modèle. Pour le changer, vous devez modifier le modèle et réinstaller le livre de recettes. Afin de bénéficier d'une plus grande souplesse, vous pouvez définir un attribut personnalisé par défaut pour la chaîne d'erreur dans le fichier d'attribut customize.rb du livre de recettes personnalisées et attribuer la valeur de cet attribut à ErrorDocument 500. Par exemple, si vous nommez l'attribut [:apache][:custom][:error500], la ligne correspondante dans apache2.conf.erb ressemble à ce qui suit :

... ErrorDocument 500 <%= node[:apache][:custom][:error500] %> #ErrorDocument 404 /missing.html ...

Vous pouvez ensuite modifier le message d'erreur personnalisé à tout moment en remplaçant [:apache][:custom][:error500]. Si vous utilisez le JSON personnalisé pour remplacer l'attribut, vous n'avez même pas besoin de toucher le livre de recettes.

Pour utiliser le modèle personnalisé, créez une pile et installez le livre de recettes.

Pour utiliser le modèle personnalisé
  1. Ouvrez la console AWS OpsWorks, puis choisissez Add Stack (Ajouter une pile).

  2. Spécifiez les paramètres standard suivants :

    • Nom — ApacheTemplate

    • Région — Ouest des États-Unis (Oregon)

    • Clé SSH par défaut : une paire de clés Amazon Elastic Compute Cloud (Amazon EC2)

      Si vous devez créer une paire de clés Amazon EC2, consultez la section Paires de clés Amazon EC2. Notez que la paire de clés doit appartenir à la même région AWS que l'instance.

    Choisissez Advanced>> (Avancé>>), puis Use custom Chef cookbooks (Utiliser les livres de recettes Chef personnalisés) pour spécifier les paramètres suivants :

    • Type de référentielHttp Archive

    • URL du référentiel : URL de l'archive du livre de recettes que vous avez enregistrée précédemment

    Acceptez les valeurs par défaut pour les autres paramètres, puis choisissez Add Stack (Ajouter une pile) pour créer la pile.

  3. Choisissez Ajouter une couche, puis ajoutez une couche Java App Server à la pile avec les paramètres par défaut.

  4. Ajoutez une instance 24/7 avec les paramètres par défaut dans la couche, puis lancez l'instance.

    Une instance t2.micro suffit pour cet exemple.

  5. Une fois que l'instance est en ligne, connectez-la avec SSH. Le fichier httpd.conf se trouve dans le répertoire /etc/httpd/conf. Le fichier doit contenir le paramètre personnalisé ErrorDocument, qui doit ressembler à ce qui suit :

    ... # Some examples: ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...