Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Tutorial: Crear una canalización con las acciones de implementación de AWS CloudFormation StackSets
En este tutorial, utilizará la consola de para crear una canalización con acciones de implementación para crear un conjunto de pilas y crear instancias de pila. Cuando se ejecuta la canalización, la plantilla crea un conjunto de pilas y también crea y actualiza las instancias en las que se implementa el conjunto de pilas.
importante
Como parte de la creación de una canalización, CodePipeline utilizará un bucket de artefactos de S3 proporcionado por el cliente para los artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el bucket de artefactos de S3 se encuentra en una cuenta diferente a la cuenta de su canalización, asegúrese de que el bucket de artefactos de S3 pertenezca a Cuentas de AWS que sean seguras y fiables.
Hay dos formas de administrar los permisos de un conjunto apilado: los roles de IAM autoadministrados y los administrados con AWS. En este tutorial, se proporcionan ejemplos con permisos autoadministrados.
Para utilizar Stacksets en CodePipeline de la forma más eficaz, debe tener un conocimiento claro de los conceptos que hay detrás de CloudFormation StackSets y cómo funcionan. Consulte Conceptos de StackSets en la Guía del usuario de AWS CloudFormation.
Temas
Requisitos previos
Para las operaciones de conjuntos apilados, se utilizan dos cuentas diferentes: una cuenta de administración y una cuenta de destino. Los conjuntos de pilas se crean en la cuenta de administrador. Se crean pilas individuales que pertenecen a un conjunto de pilas de la cuenta de destino.
Para crear un rol de administrador con su cuenta de administrador
-
Siga las instrucciones de Configuración de permisos básicos para operaciones con conjuntos de pilas. Su rol debe llamarse
AWSCloudFormationStackSetAdministrationRole.
Para crear el rol de servicio en la cuenta de destino
-
Cree un rol de servicio en la cuenta de destino que confíe en la cuenta de administrador. Siga las instrucciones de Configuración de permisos básicos para operaciones con conjuntos de pilas. Su rol debe llamarse
AWSCloudFormationStackSetExecutionRole.
Paso 1: Cargar la plantilla de AWS CloudFormation de muestra y el archivo de parámetros
Cree un bucket de origen para los archivos de parámetros y plantillas del conjunto de pilas. Descargue el ejemplo de archivo de plantilla de AWS CloudFormation, configure un archivo de parámetros y, a continuación, comprima los archivos antes de cargarlos en su bucket de origen de S3.
nota
Asegúrese de comprimir los archivos de origen antes de subirlos a su bucket de origen de S3, incluso si el único archivo fuente es la plantilla.
Para crear un bucket de origen de S3
Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
Elija Crear bucket.
-
En Nombre del bucket, escriba un nombre para el bucket.
En Región la región en la que desea crear la canalización. Elija Crear bucket.
-
Una vez creado el bucket, aparecerá un banner donde se indicará que la operación se ha realizado correctamente. Elija Go to bucket details (Acceder a los detalles del bucket).
-
En la pestaña Properties (Propiedades), elija Versioning (Control de versiones). Elija Enable versioning (Habilitar control de versiones) y haga clic en Save (Guardar).
Para crear el archivo de plantilla de AWS CloudFormation
-
Descargue el siguiente archivo de plantilla de ejemplo para generar la configuración de CloudTrail para conjuntos de pilas: https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml
. -
Guarde el archivo como
template.yml.
Para crear el archivo parameters.txt
-
Cree un archivo con los parámetros para la implementación. Los parámetros son valores que desea actualizar en su pila en tiempo de ejecución. El siguiente archivo de ejemplo actualiza los parámetros de la plantilla del conjunto de pilas para permitir la validación del registro y los eventos globales.
[ { "ParameterKey": "EnableLogFileValidation", "ParameterValue": "true" }, { "ParameterKey": "IncludeGlobalEvents", "ParameterValue": "true" } ] -
Guarde el archivo como
parameters.txt.
Para crear el archivo accounts.txt
-
Cree un archivo con las cuentas en las que desee crear las instancias, como se muestra en el siguiente archivo de ejemplo.
[ "111111222222","333333444444" ] -
Guarde el archivo como
accounts.txt.
Para crear y cargar los archivos de origen
-
Combine los archivos .zip en un solo archivo ZIP. Sus archivos deberían aparecer así en el archivo ZIP.
template.yml parameters.txt accounts.txt -
Cargue el archivo ZIP en el bucket de S3. Este archivo es el artefacto de origen creado por el asistente Crear canalización para la acción de implementación en CodePipeline.
Paso 2: Crear la canalización
En esta sección, debe crear una canalización con las siguientes acciones:
-
Una fase de origen con una acción de origen de S3 en la que el artefacto de origen es el archivo de plantilla y cualquier archivo de origen de respaldo.
-
Una etapa de implementación con una acción de despliegue del conjunto de pilas de CloudFormation que crea el conjunto de pilas.
-
Una etapa de implementación con una acción de implementación de instancias de pila de CloudFormation que crea las pilas e instancias dentro de las cuentas de destino.
Para crear una canalización con una acción de CloudFormationStackSet
Inicie sesión en la Consola de administración de AWS y abra la consola de CodePipeline en http://console.aws.amazon.com/codesuite/codepipeline/home
. -
En la página Bienvenido, Introducción o en la página Canalizaciones, elija Crear canalización.
-
En la página Paso 1: elección de la opción de creación, en Opciones de creación, seleccione la opción Crear una canalización personalizada. Elija Siguiente.
-
En Paso 2: elegir la configuración de la canalización, en Nombre de la canalización, escriba
MyStackSetsPipeline. -
En Tipo de canalización, elija V1 para los fines de este tutorial. También puede elegir V2; sin embargo, tenga en cuenta que los tipos de canalización difieren en cuanto a características y precio. Para obtener más información, consulte Tipos de canalización.
-
En Rol de servicio, elija Nuevo rol de servicio para permitir que CodePipeline cree un rol de servicio en IAM.
-
En Almacén de artefactos, deje los valores predeterminados.
nota
Este no es el bucket de origen para su código fuente. Este es el almacén de artefactos de la canalización. Cada canalización debe tener su propio almacén de artefactos independiente, como un bucket de S3. Al crear o editar una canalización, debe tener un bucket de artefactos en la región de la canalización y un bucket de artefactos en cada región de AWS en la que ejecute una acción.
Para obtener más información, consulte Artefactos de entrada y salida y CodePipeline referencia de estructura de tubería.
Elija Siguiente.
-
En la página Paso 3: agregar la etapa de origen, en Proveedor de origen, elija Amazon S3.
-
En Bucket, introduzca el bucket de origen de S3 creado para este tutorial, por ejemplo
BucketName. En Clave de objeto de S3, escriba la ruta y el nombre del archivo ZIP, comoMyFiles.zip. -
Elija Siguiente.
-
En Paso 4: agregar la etapa de compilación, elija Omitir la etapa de compilación y, a continuación, acepte el mensaje de advertencia eligiendo Omitir una vez más.
Elija Siguiente.
-
En Paso 5: agregación de la etapa de prueba, elija Omitir la etapa de prueba y, a continuación, acepte el mensaje de advertencia eligiendo Omitir una vez más.
Elija Siguiente.
-
En Paso 6: agregar la etapa de implementación:
-
En Proveedor de implementación, elija Conjunto de pilas de AWS CloudFormation).
-
En Nombre de conjunto de pilas, escriba un nombre para el conjunto de pilas. Este es el nombre del conjunto de pilas que crea la plantilla.
nota
Anote el nombre del conjunto de pilas. La usará cuando añada la segunda acción de implementación de StackSets a su canalización.
-
En Ruta de plantilla, introduzca el nombre del artefacto y la ruta del archivo donde subió el archivo de plantilla. Por ejemplo, introduzca lo siguiente utilizando el el nombre del artefacto de origen por defecto
SourceArtifact.SourceArtifact::template.yml -
En Destinos de implementación, introduzca el nombre del artefacto y la ruta del archivo donde subió el archivo de cuentas. Por ejemplo, introduzca lo siguiente utilizando el el nombre del artefacto de origen por defecto
SourceArtifact.SourceArtifact::accounts.txt -
En Regiones de Regiones de AWS de destino de implementación), introduzca una región para la implementación de su instancia de pila inicial, como
us-east-1. -
Expanda Opciones de implementación. En Parámetros, introduzca el nombre del artefacto y la ruta del archivo donde cargó el archivo de parámetros. Por ejemplo, introduzca lo siguiente utilizando el el nombre del artefacto de origen por defecto
SourceArtifact.SourceArtifact::parameters.txtPara introducir los parámetros como una entrada literal en lugar de como una ruta de archivo, introduzca lo siguiente:
ParameterKey=EnableLogFileValidation,ParameterValue=true ParameterKey=IncludeGlobalEvents,ParameterValue=true -
En Capacidades, elija CAPABILITY_IAM y CAPABILITY_NAMED_IAM.
-
En Modelo de permiso, elija SELF_MANAGED.
-
En Porcentaje de tolerancia a errores, introduzca
20. -
En Porcentaje máximo simultáneo, introduzca
25. -
Elija Siguiente.
-
En Paso 7: revisión, elija Crear canalización. Aparece su canalización.
-
Permita que su canalización se ejecute.
-
Paso 3: Ver la implementación inicial
Vea los recursos y el estado de su implementación inicial. Tras comprobar que la implementación ha creado correctamente el conjunto de pilas, puede añadir la segunda acción a la fase Deploy /Implementación).
Para ver los recursos
Abra la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/
. -
En Canalizaciones, elija la canalización y luego Ver. El diagrama muestra las etapas de código fuente e implementación de la canalización.
-
Elija la CloudFormation acción en la acción CloudFormationStackSet de su canalización. La plantilla, los recursos y los eventos del conjunto de pilas se muestran en la consola CloudFormation.
-
En el panel de navegación de la izquierda, seleccione StackSets. En la lista, elija el nuevo conjunto de pilas.
-
Elija la pestaña Instancias de la pila. Verifique que se haya creado una instancia de pila para cada cuenta que haya proporcionado en la región us-east-1. Compruebe que el estado de cada instancia de pila sea
CURRENT.
Paso 4: Añadir una acción de CloudFormationStackInstances
Cree una siguiente acción en su proceso que permita a CloudFormation StackSets crear las instancias de pila restantes.
Para crear una acción siguiente en su canalización
-
Abra la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/
. En Canalizaciones, elija la canalización y luego Ver. El diagrama muestra las etapas de código fuente e implementación de la canalización.
-
Elija esta opción para editar la canalización. La canalización se muestra en modo de edición.
-
En la etapa Implementar, elija Editar.
-
En la acción de implementación de Conjunto de pilas de AWS CloudFormationCloudFormation, seleccione Añadir grupo de acciones.
-
En la página Editar acción, añada los detalles de la acción:
-
En Nombre de la acción, escriba un nombre para la acción.
-
En Proveedor de acciones, elija Instancias de pila de AWS CloudFormation).
-
En Artefactos de entrada, seleccione SourceArtifact.
-
En Nombre de conjunto de pilas, introduzca el nombre para el conjunto de pilas. Este es el nombre del conjunto de pilas proporcionado en la primera acción.
-
En Destinos de implementación, introduzca el nombre del artefacto y la ruta del archivo donde subió el archivo de cuentas. Por ejemplo, introduzca lo siguiente utilizando el el nombre del artefacto de origen por defecto
SourceArtifact.SourceArtifact::accounts.txt -
En Regiones de AWS de destino de implementación), introduzca las regiones en las que se van a implementar las instancias de pila restantes, por ejemplo,
us-east-2yeu-central-1de la siguiente manera:us-east2, eu-central-1 -
En Porcentaje de tolerancia a errores, introduzca
20. -
En Porcentaje máximo simultáneo, introduzca
25. -
Seleccione Save.
-
Publica un cambio manualmente. La canalización actualizada se muestra con dos acciones en la etapa de implementación.
-
Paso 5: Ver los recursos del conjunto de pilas para su implementación
Puede ver los recursos y el estado de su implementación del conjunto de pilas.
Para ver los recursos
Abra la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/
. -
En Canalizaciones, elija la canalización y luego Ver. El diagrama muestra las etapas de código fuente e implementación de la canalización.
-
Elija la acción CloudFormation en la acción
AWS CloudFormation Stack Instancesde su canalización. La plantilla, los recursos y los eventos del conjunto de pilas se muestran en la consola CloudFormation. -
En el panel de navegación de la izquierda, seleccione StackSets. En la lista, elija el conjunto de pilas.
-
Elija la pestaña Instancias de la pila. Compruebe que todas las instancias de pila restantes de cada cuenta que haya proporcionado se hayan creado o actualizado en las regiones esperadas. Compruebe que el estado de cada instancia de pila sea
CURRENT.
Paso 6: Actualizar el conjunto de pilas
Actualice su conjunto de pilas e impleméntela en las instancias. En este ejemplo, también cambia los objetivos de implementación que desea designar para la actualización. Las instancias que no forman parte de la actualización pasan a un estado desactualizado.
Abra la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/
. -
En Canalizaciones, elija la canalización y luego Editar. En la etapa Implementar, elija Editar.
-
Elija editar la acción Conjunto de pila de AWS CloudFormation) en su canalización. En Descripción, sobrescriba la descripción existente por una nueva descripción para el conjunto de pilas.
-
Elija editar la acción Instancias de pila de AWS CloudFormation) en su canalización. En Regiones de AWS de destino de implementación), elimine el valor
us-east-2que introducido al crear la acción. -
Guarde los cambios. Elija Publicar modificación para ejecutar su canalización.
-
Abra su acción en CloudFormation. Seleccione la pestaña Información de StackSet. En Descripción de StackSet, verifique que se muestre la nueva descripción.
-
Elija la pestaña Instancias de la pila. En Estado, verifique que el estado de las instancias de la pila en us-east-2 sea
OUTDATED.