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:
-
Complete el ejemplo Actualice un golden AMI mediante la Automation, AWS Lambda, y Parameter Store. En el siguiente ejemplo, se utiliza el manual de procedimientos UpdateMyLatestWindowsAmi creado en ese ejemplo.
-
Configure los roles de IAM para Automation. Systems Manager requiere un rol de perfil de instancia y un ARN de rol de servicio para procesar automatizaciones. Para obtener más información, consulte Configuración de Automation.
Para crear una política de IAM para el servidor Jenkins
Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, seleccione Políticas y, a continuación, Crear política.
-
Seleccione la pestaña JSON.
-
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" ] } ] } -
Elija Revisar política.
-
En la página Review Policy (Revisar política), en Name (Nombre), escriba un nombre para la política insertada, como
JenkinsPolicy
. -
Seleccione Crear política.
-
Seleccione Roles en el panel de navegación.
-
Elija el perfil de instancia que está asociado a su servidor Jenkins.
-
En la pestaña Permisos, elija Agregar permisos y, a continuación, Adjuntar políticas.
-
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.
-
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
-
Conéctese a su servidor Jenkins en el puerto 8080 con su navegador preferido para acceder a la interfaz de administración.
-
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
-
El script de instalación Jenkins lo dirige a la página Personalizar Jenkins. Seleccione Install suggested plugins (Instalar complementos sugeridos).
-
Una vez que se complete la instalación, elija Credenciales de Administrador, seleccione Guardar credenciales y, a continuación, seleccione Empezar a usarJenkins.
-
En el panel de navegación de la izquierda, elija AdministrarJenkins y, a continuación, elija Administrar complementos.
-
Seleccione la pestaña Available (Disponible) y, a continuación, ingrese
Amazon EC2 plugin
. -
Seleccione la casilla de verificación para
Amazon EC2 plugin
y, a continuación, Install without restart (Instalar sin reiniciar). -
Una vez que se complete la instalación, seleccione Go back to the top page (Volver a la página superior).
-
Elija Administrar Jenkins y, a continuación, seleccione Administrar nodos y nubes.
-
En la sección Configurar nubes, seleccione Agregar una nube nueva y, a continuación, elija Amazon EC2.
-
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
-
Abra la consola Jenkins en un navegador web.
-
Elija el proyecto que desee configurar con Automation y, a continuación, elija Configure.
-
En la pestaña Build, elija Add Build Step.
-
Elija Execute shell o Execute Windows batch command (en función de su sistema operativo).
-
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
\ --regionRegión de AWS of your source AMI
\ --parametersrunbook 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.
-
En el proyecto Jenkins, seleccione Construir ahora. Jenkins devuelve un resultado similar al del siguiente ejemplo.