Mise à jour des AMIs à l’aide d’Automation et de Jenkins
Si votre organisation utilise le logiciel Jenkins dans un pipeline CI/CD, vous pouvez ajouter Automation comme étape après génération pour préinstaller des versions d’application dans des 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 à partir d’un serveur Jenkins qui s’exécute sur site ou dans Amazon Elastic Compute Cloud (Amazon EC2). Pour l’authentification, le serveur Jenkins utilise les informations d’identification AWS en fonction d’une Politique IAM que vous créez dans l’exemple et que vous joignez à 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 :
-
Complétez l'exemple Mettez à jour une AMI finale à l'aide d'Automation, d'AWS Lambda et de Parameter Store. L'exemple suivant utilise le runbook UpdateMyLatestWindowsAmi créé dans cet exemple.
-
Configurez les rôles IAM pour Automation. Systems Manager nécessite un rôle de profil d'instance et un ARN de rôle de service pour traiter les automatisations. Pour de plus amples informations, consultez Configuration d'Automation.
Pour créer une politique IAM pour le serveur Jenkins
Connectez-vous à l’outil AWS Management Console, puis ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le volet de navigation, sélectionnez Politiques, puis Créer une politique.
-
Sélectionnez l'onglet JSON.
-
Remplacez chaque
example resource placeholder(espace réservé pour les ressources) avec vos propres informations. -
Sélectionnez Examiner une politique.
-
Sur la page Examiner une politique, dans le champ Nom, saisissez un nom pour la politique en ligne, tel que
JenkinsPolicy. -
Sélectionnez Créer une politique.
-
Dans le panneau de navigation, choisissez Roles (Rôles).
-
Choisissez le profil d’instance qui est attaché à votre serveur Jenkins.
-
Sous l'onglet Autorisations, sélectionnez Ajouter des autorisations et choisissez Attacher des politiques.
-
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.
-
Sélectionnez la case en regard de votre politique et choisissez Attacher des politiques.
Utilisez la procédure suivante pour configurer l’AWS CLI sur votre serveur Jenkins.
Pour configurer le serveur Jenkins pour Automation
-
Connectez-vous à votre serveur Jenkins sur le port 8080 à l’aide de votre navigateur préféré pour accéder à l’interface de gestion.
-
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 -
Le script d’installation Jenkins vous dirige vers la page Personnaliser Jenkins. Sélectionnez Install suggested plugins (Installer les plug-ins suggérés).
-
Une fois l’installation terminée, sélectionnez Informations d’identification administrateur, sélectionnez Enregistrer les informations d’identification, puis Commencer à utiliser Jenkins.
-
Dans le panneau de navigation de gauche, sélectionnez Gérer Jenkins, puis Gérer les plugins.
-
Cliquez sur l'onglet Available (Disponible), puis saisissez
Amazon EC2 plugin. -
Sélectionnez la case à cocher pour
Amazon EC2 plugin, puis sélectionnez Install without restart (Installer sans redémarrer). -
Une fois l'installation terminée, sélectionnez Go back to the top page (Revenir à la page supérieure).
-
Choisissez Gérer Jenkins, puis choisissez Gérer les nœuds et les clouds.
-
Dans la section Configurer les clouds, sélectionnez Ajouter un nouveau cloud, puis Amazon EC2.
-
Saisissez vos informations dans les champs restants. Assurez-vous de sélectionner l'option Utiliser le profil d'instance EC2 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
-
Ouvrez la console Jenkins dans un navigateur Web.
-
Sélectionnez le projet que vous voulez configurer avec Automation, puis sélectionnez Configure.
-
Dans l'onglet Build, sélectionnez Add Build Step.
-
Sélectionnez Execute shell ou Execute Windows batch command (en fonction de votre système d'exploitation).
-
Dans la zone Command (Commande), exécutez une commande AWS CLI comme suit. Remplacez chaque
example resource placeholder(espace réservé pour les ressources) avec vos propres informations.aws ssm start-automation-execution \ --document-namerunbook name\ --regionRégion AWS of your source AMI\ --parametersrunbook parametersL'exemple de commande suivant utilise le runbook UpdateMyLatestWindowsAmi et le paramètre Systems Manager
latestAmicréé dans Mettez à jour une AMI finale à l'aide d'Automation, d'AWS Lambda et de Parameter Store.aws ssm start-automation-execution \ --document-name UpdateMyLatestWindowsAmi \ --parameters \ "sourceAMIid='{{ssm:latestAmi}}'" --regionregionDans Jenkins, la commande ressemble à l’exemple dans la capture d’écran suivante.
-
Dans le projet Jenkins, choisissez Générer maintenant. Le logiciel Jenkins renvoie une sortie similaire à l’exemple suivant.