Soy muy nuevo en los servicios de AWS. Estoy tratando de usar la formación en la nube de AWS y creé una plantilla. La plantilla está libre de errores y puedo crear máquinas con eso.
Pero he agregado algo de configuración en la plantilla para que instale tomcat, git y otras cosas durante el inicio. Pero eso no me pasa a mí.
Aquí hay una parte del código que utilicé para instalar tomcat:
"Resources": {
"Tomcat": {
"Type": "AWS::EC2::Instance",
"Metadata": {
"AWS::CloudFormation::Init": {
"config": {
"packages": {
"apt": {
"tomcat6": [],
"git": [],
}
}
}
}
},
¡Pero cuando inicio sesión en la máquina tomcat
ni git
he sido instalado!
Gracias por adelantado.
ubuntu
tomcat
amazon-web-services
amazon-cloudformation
hombre murciélago
fuente
fuente
Respuestas:
Creo que su problema aquí es la confusión en torno a que cloud-init no es lo mismo que cfn-init.
cloud-init es la herramienta que comenzó como parte de las AMI de Ubuntu AWS que permiten la interpretación del componente de datos de usuario EC2 de los metadatos de la instancia. Amazon Linux también adoptó esta herramienta y la incorporó a su AMI.
cfn-init es parte de un conjunto de herramientas diferente llamado CloudFormation Helper Scripts creado por AWS para Amazon Linux que puede leer una sección adicional nombrada
Metadata
en su plantilla CloudFormation.Entonces, las AMI de Ubuntu y Amazon Linux tienen las herramientas de inicio en la nube preinstaladas para acceder a los datos del usuario, pero solo Amazon Linux tiene los scripts de ayuda de CloudFormation preinstalados, por ejemplo, cfn-init para acceder a los metadatos de CloudFormation.
Sin embargo, AWS distribuye paquetes que puede usar para leer los metadatos de CloudFormation. Específicamente, mire esta plantilla para saber cómo puede usar un script de datos de usuario de cloud-init para instalar python-setuptools, descargar los scripts de ayuda de CloudFormation, instalarlos usando easy_install y luego invocar cfn-init.
Nota: Hay otras distribuciones o AMI que pueden admitir cloud-init o cfn-init, pero solo estoy cubriendo los casos generales aquí.
fuente
Debe llamar a cfn-init ( http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html ) dentro de la propiedad UserData de la instancia:
La propiedad UserData está codificada en Base64 y le permite especificar un script que debe ejecutarse en el lanzamiento de la instancia. Aquí puede llamar a cfn-init, que leerá CloudFormation :: Init Metadata y configurará todo lo especificado allí.
Además, al crear la pila CF, es posible que desee acceder a la configuración avanzada en la segunda página (después de proporcionar los parámetros) y asegurarse de que la opción Revertir error esté establecida en "No". De esa forma, si el script cfn-init falla por cualquier razón, puede ingresar a la instancia y consultar el archivo /var/log/cfn-init.log para obtener más información.
fuente
La respuesta anterior es correcta. Pero también debe asegurarse de haber instalado correctamente los scripts de ayuda de CloudFormation. Siga a http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-helper-scripts-reference.html para obtener detalles de la instalación.
fuente
fuente