Mise à jour AMIs à l'aide de 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 à l'aide de l'automatisation et Jenkins

Si votre organisation utilise Jenkins logiciel dans un pipeline CI/CD, vous pouvez ajouter Automation en tant qu'étape post-construction pour préinstaller les versions de l'application dans Amazon Machine Images (AMIs). L'automatisation est un outil de AWS Systems Manager. Vous pouvez également utiliser Jenkins fonction de planification pour appeler Automation et créer votre propre cadence d'application des correctifs sur 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 (Amazon EC2). Pour l'authentification, Jenkins le serveur utilise des AWS informations d'identification basées sur une politique IAM que vous créez dans l'exemple et que vous attachez à votre profil d'instance.

Note

Assurez-vous de suivre Jenkins les meilleures pratiques 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 politique IAM pour Jenkins serveur
  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.

    { "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 associé à 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 AWS CLI le Jenkins serveur.

Pour configurer le Jenkins serveur pour l'automatisation
  1. Connect à votre Jenkins serveur sur le port 8080 en utilisant 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 Jenkins le script d'installation vous dirige vers le menu Personnaliser Jenkinspage. 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 Gérer Jenkins, puis choisissez Gérer les plug-ins.

  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' EC2 instance pour obtenir des informations d'identification.

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

Pour configurer votre Jenkins serveur pour invoquer Automation
  1. Ouvrez le fichier 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 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 dansMettre à 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

    Entrée Jenkins, la commande ressemble à l'exemple de la capture d'écran suivante.

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

    Exemple de sortie de commande dans Jenkins logiciel.