Mise à jour des AMIs à l’aide d’Automation et de Jenkins - AWS Systems Manager

AWS Systems ManagerChange Managern'est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez AWS Systems ManagerChange Managerla section Modification de la disponibilité.

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 des AMIs à l’aide d’Automation et de Jenkins

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

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

Note

Veillez à respecter les bonnes pratiques de sécurité de Jenkins quand vous configurez votre instance.

Avant de commencer

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

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

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

  3. Sélectionnez l'onglet JSON.

  4. Remplacez chaque example resource placeholder par vos propres informations.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": [ "arn:aws:ssm:us-east-1:111122223333:document/UpdateMyLatestWindowsAmi", "arn:aws:ssm:us-east-1:111122223333:automation-definition/UpdateMyLatestWindowsAmi:$DEFAULT" ] } ] }
  5. Sélectionnez 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. Sélectionnez Créer une politique.

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

  9. Choisissez le profil d’instance qui est attaché à votre serveur Jenkins.

  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 serveur Jenkins pour Automation
  1. Connectez-vous à votre serveur Jenkins 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 d’installation Jenkins vous dirige vers la page Personnaliser Jenkins. Sélectionnez Install suggested plugins (Installer les plug-ins suggérés).

  4. Une fois l’installation terminée, sélectionnez Informations d’identification administrateur, sélectionnez Enregistrer les informations d’identification, puis Commencer à utiliser Jenkins.

  5. Dans le panneau de navigation de gauche, sélectionnez Gérer Jenkins, puis Gérer les 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 choisissez 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' EC2 instance pour obtenir des informations d'identification.

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

Pour configurer votre serveur Jenkins afin d’invoquer Automation
  1. Ouvrez la console Jenkins 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 chaque example resource placeholder par 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

    Dans Jenkins, la commande ressemble à l’exemple dans la capture d’écran suivante.

    Exemple de commande dans le logiciel Jenkins.
  6. Dans le projet Jenkins, choisissez Générer maintenant. Le logiciel Jenkins renvoie une sortie similaire à l’exemple suivant.

    Exemple de sortie de commande dans le logiciel Jenkins.