Actualización de las AMIs mediante Automatización y Jenkins - AWS Systems Manager

Actualización de las AMIs mediante Automatización y Jenkins

Si su organización utiliza el software Jenkins en una canalización de CI/CD, puede agregar Automatización como un paso posterior a la compilación para preinstalar las versiones de las aplicaciones en las Amazon Machine Images (AMIs). Automatización es una herramienta de AWS Systems Manager. También puede utilizar la característica de programación de Jenkins para llamar a Automatización y crear su propia cadencia de revisiones de sistema operativo (SO).

En el siguiente ejemplo, se muestra cómo invocar a Automatización desde un servidor Jenkins que se ejecuta en las instalaciones o en Amazon Elastic Compute Cloud (Amazon EC2). Para la autenticación, el servidor Jenkins utiliza las credenciales AWS basadas en una política de (IAM) que usted crea en el ejemplo y adjunta al perfil de instancia.

nota

Asegúrese de seguir las prácticas recomendadas de seguridad Jenkins al configurar la instancia.

Antes de empezar

Complete las siguientes tareas antes de configurar Automatización con Jenkins:

Para crear una política de IAM para el servidor Jenkins
  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Políticas y, a continuación, Crear política.

  3. Seleccione la pestaña JSON.

  4. Reemplace cada example resource placeholder con su propia información.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": [ "arn:aws:ssm:region:account ID:document/UpdateMyLatestWindowsAmi", "arn:aws:ssm:region:account ID:automation-definition/UpdateMyLatestWindowsAmi:$DEFAULT" ] } ] }
  5. Elija Revisar política.

  6. En la página Review Policy (Revisar política), en Name (Nombre), escriba un nombre para la política insertada, como JenkinsPolicy.

  7. Seleccione Crear política.

  8. Seleccione Roles en el panel de navegación.

  9. Elija el perfil de instancia que está asociado a su servidor Jenkins.

  10. En la pestaña Permisos, elija Agregar permisos y, a continuación, Adjuntar políticas.

  11. En la sección Otras políticas de permisos, ingrese el nombre de la política que ha creado en los pasos anteriores. Por ejemplo, JenkinsPolicy.

  12. Marque la casilla de verificación situada junto a la política y, a continuación, elija Adjuntar políticas.

Utilice el siguiente procedimiento para configurar AWS CLI en su servidor Jenkins.

Configuración del servidor Jenkins para Automatización
  1. Conéctese a su servidor Jenkins en el puerto 8080 con su navegador preferido para acceder a la interfaz de administración.

  2. Ingrese la contraseña que se encuentra en /var/lib/jenkins/secrets/initialAdminPassword. Para mostrar la contraseña, ejecute el comando siguiente.

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  3. El script de instalación Jenkins lo dirige a la página Personalizar Jenkins. Seleccione Install suggested plugins (Instalar complementos sugeridos).

  4. Una vez que se complete la instalación, elija Credenciales de Administrador, seleccione Guardar credenciales y, a continuación, seleccione Empezar a usarJenkins.

  5. En el panel de navegación de la izquierda, elija AdministrarJenkins y, a continuación, elija Administrar complementos.

  6. Seleccione la pestaña Available (Disponible) y, a continuación, ingrese Amazon EC2 plugin.

  7. Seleccione la casilla de verificación para Amazon EC2 plugin y, a continuación, Install without restart (Instalar sin reiniciar).

  8. Una vez que se complete la instalación, seleccione Go back to the top page (Volver a la página superior).

  9. Elija Administrar Jenkins y, a continuación, seleccione Administrar nodos y nubes.

  10. En la sección Configurar nubes, seleccione Agregar una nube nueva y, a continuación, elija Amazon EC2.

  11. Ingrese su información en los campos restantes. Asegúrese de seleccionar la opción Usar perfil de instancia de EC2 para obtener credenciales.

Utilice el siguiente procedimiento a fin de configurar su proyecto de Jenkins para invocar a Automatización.

Configuración del servidor Jenkins para invocar a Automatización
  1. Abra la consola Jenkins en un navegador web.

  2. Elija el proyecto que desee configurar con Automation y, a continuación, elija Configure.

  3. En la pestaña Build, elija Add Build Step.

  4. Elija Execute shell o Execute Windows batch command (en función de su sistema operativo).

  5. En el campo Command (Comando), ejecute un comando de la AWS CLI como el siguiente. Reemplace cada example resource placeholder con su propia información.

    aws ssm start-automation-execution \ --document-name runbook name \ --region Región de AWS of your source AMI \ --parameters runbook parameters

    El siguiente comando de ejemplo usa el manual de procedimientos UpdateMyLatestWindowsAmi y el parámetro latestAmi de Systems Manager creado en Actualice un golden AMI mediante la Automation, AWS Lambda, y Parameter Store.

    aws ssm start-automation-execution \ --document-name UpdateMyLatestWindowsAmi \ --parameters \ "sourceAMIid='{{ssm:latestAmi}}'" --region region

    En Jenkins, el comando se parece al ejemplo de la siguiente captura de pantalla.

    Un comando de ejemplo en el software de Jenkins.
  6. En el proyecto Jenkins, seleccione Construir ahora. Jenkins devuelve un resultado similar al del siguiente ejemplo.

    Ejemplo de salida de comandos en el software de Jenkins.