Je suis très nouveau dans les services AWS. J'essaie d'utiliser la formation cloud AWS et j'ai créé un modèle. Le modèle est sans erreur et je peux créer des machines en utilisant cela.
Mais j'ai ajouté une configuration dans le modèle de sorte qu'il installe tomcat, git et d'autres choses au démarrage. Mais cela ne m'arrive pas.
Voici une partie du code que j'ai utilisé pour installer tomcat:
"Resources": {
"Tomcat": {
"Type": "AWS::EC2::Instance",
"Metadata": {
"AWS::CloudFormation::Init": {
"config": {
"packages": {
"apt": {
"tomcat6": [],
"git": [],
}
}
}
}
},
Mais lorsque je me connecte à la machine, tomcat
ni git
je n'ai été installé!
Merci d'avance.
ubuntu
tomcat
amazon-web-services
amazon-cloudformation
homme chauve-souris
la source
la source
Réponses:
Je crois que votre problème ici est la confusion autour du fait que cloud-init n'est pas le même que cfn-init.
cloud-init est l'outil qui a démarré dans le cadre des AMI Ubuntu AWS qui permettent d'interpréter le composant de données utilisateur EC2 des métadonnées d'instance. Amazon Linux a également adopté cet outil et l'a intégré à son AMI.
cfn-init fait partie d'un ensemble d'outils différent appelé CloudFormation Helper Scripts créé par AWS pour Amazon Linux qui peut lire une section supplémentaire nommée
Metadata
dans votre modèle CloudFormation.Ainsi, Ubuntu et Amazon Linux AMI ont tous deux les outils cloud-init préinstallés pour accéder aux données utilisateur, mais seul Amazon Linux a les scripts d'aide CloudFormation préinstallés, par exemple cfn-init pour accéder aux métadonnées CloudFormation.
Cependant, AWS distribue des packages que vous pouvez utiliser pour lire les métadonnées CloudFormation. Plus précisément, consultez ce modèle pour savoir comment utiliser un script de données utilisateur cloud-init pour installer python-setuptools, télécharger les scripts d'assistance CloudFormation, les installer à l'aide d'easy_install, puis appeler cfn-init.
Remarque: Il existe d'autres distributions ou AMI qui pourraient prendre en charge cloud-init ou cfn-init, mais je ne couvre que les cas généraux ici.
la source
Vous devez appeler cfn-init ( http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html ) dans la propriété UserData de l'instance:
La propriété UserData est codée en Base64 et vous permet de spécifier un script à exécuter au lancement de l'instance. Ici, vous pouvez appeler cfn-init qui lira les métadonnées CloudFormation :: Init et configurera tout ce qui y est spécifié.
De plus, lors de la création de la pile CF, vous souhaiterez peut-être accéder aux paramètres avancés sur la deuxième page (après avoir donné les paramètres) et vous assurer que la restauration en cas d'erreur est définie sur "Non". De cette façon, si le script cfn-init échoue pour une raison quelconque, vous pouvez ssh sur l'instance et vérifier le fichier /var/log/cfn-init.log pour plus d'informations.
la source
La réponse ci-dessus est correcte. Mais vous devez également vous assurer que vous avez correctement installé les scripts d'assistance CloudFormation. Veuillez suivre http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-helper-scripts-reference.html pour les détails d'installation.
la source
la source