Mise en œuvre des recettes pour les piles Chef 11.4 - 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.

Mise en œuvre des recettes pour les piles Chef 11.4

Important

Le AWS OpsWorks Stacks le service a pris fin le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez le AWS Support L'équipe sur AWS Re:post ou via AWS Support haut de gamme.

Important

Ne réutilisez pas les noms des livres de recettes intégrés comme livres personnalisés ou de la communauté. Les livres de recettes personnalisés ayant le même nom que les livres intégrés risquent d'échouer. Pour une liste complète des livres de recettes intégrés disponibles avec les piles Chef 11.10, 11.4 et 0.9, consultez le référentiel opsworks-cookbooks sur. GitHub

La principale limitation des piles Chef 11.4 est que les recettes ne peuvent utiliser la recherche ou les conteneurs de données Chef. Cependant, AWS OpsWorks Stacks installe des attributs de configuration et de déploiement de stack sur chaque instance qui contiennent la plupart des informations que vous pourriez obtenir grâce à la recherche, notamment les suivantes :

  • Données définies par l'utilisateur à partir de la console, telles que les noms d'hôte ou d'application.

  • Empiler les données de configuration générées par le AWS OpsWorks Le service Stacks, tel que les couches, les applications et les instances de la pile, ainsi que les détails de chaque instance, tels que l'adresse IP.

  • Des JSON attributs personnalisés qui contiennent les données fournies par l'utilisateur et qui peuvent avoir le même objectif que les sacs de données.

AWS OpsWorks Stacks installe une version actuelle de la configuration de la pile et des attributs de déploiement sur chaque instance pour chaque événement du cycle de vie, avant de démarrer l'exécution Chef de l'événement. Les données sont disponibles pour les recettes via la syntaxe node[:attribute][:child_attribute][...] standard. Par exemple, les attributs de configuration et de déploiement de la pile incluent le nom de la pile, node[:opsworks][:stack][:name].

L'extrait suivant de l'une des recettes intégrées obtient le nom de la pile et l'utilise pour créer un fichier de configuration.

template '/etc/ganglia/gmetad.conf' do source 'gmetad.conf.erb' mode '0644' variables :stack_name => node[:opsworks][:stack][:name] notifies :restart, "service[gmetad]" end

La plupart des valeurs des attributs de configuration et de déploiement de la pile contiennent plusieurs attributs. Vous devez itérer sur ces attributs afin d'obtenir les informations dont vous avez besoin. L'exemple ci-dessous montre un extrait de la configuration de la pile et des attributs de déploiement, qui sont représentés sous forme d'JSONobjet pour des raisons de commodité. Il possède un attribut de niveau supérieur, deploy, qui contient un attribut pour chacune des applications de la pile, nommé d'après le nom court de l'application.

{ ... "deploy": { "app1_shortname": { "document_root": "app1_root", "deploy_to": "deploy_directory", "application_type": "php", ... }, "app2_shortname": { "document_root": "app2_root", ... } }, ... }

Chaque attribut d'application contient un ensemble d'attributs qui caractérisent l'application. Par exemple, l'attribut deploy_to représente le répertoire de déploiement de l'application. L'extrait suivant définit l'utilisateur, le groupe et le chemin d'accès du répertoire de déploiement de chaque application.

node[:deploy].each do |application, deploy| opsworks_deploy_dir do user deploy[:user] group deploy[:group] path deploy[:deploy_to] end ... end

Pour plus d'informations sur les attributs de configuration et de déploiement de la pile, consultez Personnalisation AWS OpsWorks Piles. Pour plus d'informations sur les répertoires de déploiement, consultez Recettes Deploy.

Les piles Chef 11.4 ne prennent pas en charge les sacs de données, mais vous pouvez ajouter des données arbitraires à la configuration de la pile et aux attributs de déploiement en spécifiant personnalisé. JSON Vos recettes peuvent alors accéder aux données en utilisant la syntaxe de nœud Chef standard. Pour de plus amples informations, veuillez consulter Utilisation de Custom JSON.

Si vous avez besoin de la fonctionnalité d'un sac de données chiffré, l'une des options consiste à stocker les attributs sensibles dans un emplacement sécurisé tel qu'un compartiment Amazon S3 privé. Vos recettes peuvent ensuite utiliser le AWSRuby SDK, qui est installé sur toutes AWS OpsWorks Empile les instances, pour télécharger les données depuis le bucket.

Note

Chaque AWS OpsWorks L'instance Stacks possède un profil d'instance. Le IAMrôle associé indique les AWS ressources auxquelles les applications qui s'exécutent sur l'instance peuvent accéder. Pour que vos recettes puissent accéder à un compartiment Amazon S3, la politique du rôle doit inclure une déclaration similaire à la suivante, qui accorde l'autorisation de récupérer des fichiers depuis un compartiment spécifié.

"Action": ["s3:GetObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",

Pour plus d'informations sur les profils d'instance, consultez Spécification des autorisations pour les applications exécutées sur EC2 des instances.