Mise à jour AMIs grâce à l'automatisation et Jenkins - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mise à jour AMIs grâce à l'automatisation et Jenkins

Si votre organisation utilise un Jenkins logiciel dans un pipeline CI/CD, vous pouvez ajouter Automation en tant qu'étape de post-construction pour préinstaller les versions de l'application dans (). Amazon Machine Images AMIs L'automatisation est une capacité de AWS Systems Manager. Vous pouvez également utiliser la fonction de Jenkins planification pour appeler Automation et créer votre propre cadence d'application des correctifs pour votre système d'exploitation (OS).

L'exemple ci-dessous montre comment invoquer Automation à partir d'un Jenkins serveur qui s'exécute sur site ou dans Amazon Elastic Compute Cloud (AmazonEC2). Pour l'authentification, le Jenkins serveur utilise des AWS informations d'identification basées sur une IAM politique que vous avez créée dans l'exemple et que vous associez à votre profil d'instance.

Note

Veillez à suivre les meilleures pratiques en matière Jenkins de sécurité lors de la configuration de votre instance.

Avant de commencer

Effectuez les tâches suivantes avant de configurer Automation avec Jenkins :

Pour créer une IAM politique pour le Jenkins serveur
  1. Connectez-vous à la IAM console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, sélectionnez Politiques, puis Créer une politique.

  3. Choisissez l'JSONonglet.

  4. Remplacez chacun example resource placeholder avec vos propres informations.

    { "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. Choisissez Review policy (Examiner une politique).

  6. Sur la page Examiner une politique, dans le champ Nom, saisissez un nom pour la politique en ligne, tel que JenkinsPolicy.

  7. Choisissez Create Policy (Créer une politique).

  8. Dans le panneau de navigation, choisissez Roles (Rôles).

  9. Choisissez le profil d'instance attaché à votre Jenkins serveur.

  10. Sous l'onglet Autorisations, sélectionnez Ajouter des autorisations et choisissez Attacher des politiques.

  11. Dans la section Autres politiques d'autorisation, saisissez le nom de la politique que vous avez créée lors des étapes précédentes. Par exemple, JenkinsPolicy.

  12. Sélectionnez la case en regard de votre politique et choisissez Attacher des politiques.

Utilisez la procédure suivante pour configurer le AWS CLI sur votre Jenkins serveur.

Pour configurer le Jenkins serveur pour l'automatisation
  1. Connectez-vous à votre Jenkins serveur sur le port 8080 à l'aide de votre navigateur préféré pour accéder à l'interface de gestion.

  2. Saisissez le mot de passe trouvé dans /var/lib/jenkins/secrets/initialAdminPassword. Pour afficher le mot de passe, exécutez la commande suivante.

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  3. Le script Jenkins d'installation vous dirige vers la Jenkins page Personnaliser. Sélectionnez Install suggested plugins (Installer les plug-ins suggérés).

  4. Une fois l'installation terminée, choisissez Administrator Credentials, sélectionnez Enregistrer les informations d'identification, puis sélectionnez Commencer à utiliser Jenkins.

  5. Dans le volet de navigation de gauche, choisissez Manage Jenkins, puis Manage Plugins.

  6. Cliquez sur l'onglet Available (Disponible), puis saisissez Amazon EC2 plugin.

  7. Sélectionnez la case à cocher pour Amazon EC2 plugin, puis sélectionnez Install without restart (Installer sans redémarrer).

  8. Une fois l'installation terminée, sélectionnez Go back to the top page (Revenir à la page supérieure).

  9. Choisissez Gérer Jenkins, puis sélectionnez Gérer les nœuds et les clouds.

  10. Dans la section Configurer les clouds, sélectionnez Ajouter un nouveau cloud, puis choisissez Amazon EC2.

  11. Saisissez vos informations dans les champs restants. Assurez-vous de sélectionner l'option Utiliser le profil d'EC2instance pour obtenir des informations d'identification.

Utilisez la procédure suivante pour configurer votre Jenkins projet afin d'invoquer Automation.

Pour configurer votre Jenkins serveur afin d'invoquer Automation
  1. Ouvrez la Jenkins console dans un navigateur Web.

  2. Sélectionnez le projet que vous voulez configurer avec Automation, puis sélectionnez Configure.

  3. Dans l'onglet Build, sélectionnez Add Build Step.

  4. Sélectionnez Execute shell ou Execute Windows batch command (en fonction de votre système d'exploitation).

  5. Dans le champ Commande, exécutez une AWS CLI commande comme suit. Remplacez chacun example resource placeholder avec vos propres informations.

    aws ssm start-automation-execution \ --document-name runbook name \ --region Région AWS of your source AMI \ --parameters runbook parameters

    L'exemple de commande suivant utilise le UpdateMyLatestWindowsAmirunbook et le paramètre Systems Manager latestAmi créés dansMettez à jour un golden AMI à l'aide de l'automatisation AWS Lambda, et Parameter Store.

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

    DansJenkins, la commande ressemble à l'exemple de la capture d'écran suivante.

    Exemple de commande dans le Jenkins logiciel.
  6. Dans le Jenkins projet, choisissez Build Now. Jenkinsrenvoie une sortie similaire à celle de l'exemple suivant.

    Exemple de sortie de commande dans le Jenkins logiciel.