Aggiornamento in corso AMIs utilizzando l'automazione e Jenkins - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiornamento in corso AMIs utilizzando l'automazione e Jenkins

Se la tua organizzazione utilizza Jenkins software in una pipeline CI/CD, è possibile aggiungere Automation come fase successiva alla compilazione per preinstallare le versioni delle applicazioni in Amazon Machine Images (AMIs). L'automazione è uno strumento in AWS Systems Manager. Puoi anche usare il Jenkins funzionalità di pianificazione per chiamare Automation e creare una cadenza di patch personalizzata per il sistema operativo (OS).

L'esempio seguente mostra come richiamare l'automazione da un Jenkins server in esecuzione in locale o in Amazon Elastic Compute Cloud (Amazon EC2). Per l'autenticazione, il Jenkins il server utilizza AWS le credenziali basate su una policy IAM creata nell'esempio e allegata al profilo dell'istanza.

Nota

Assicurati di seguire Jenkins best practice di sicurezza per la configurazione dell'istanza.

Prima di iniziare

Completa le seguenti attività prima di configurare Automation con Jenkins:

Per creare una policy IAM per Jenkins server
  1. Accedi AWS Management Console e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione, scegliere Policies (Policy) e Create Policy (Crea policy).

  3. Scegli la scheda JSON.

  4. Sostituisci ogni example resource placeholder con le tue informazioni.

    { "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. Scegli Review policy (Rivedi policy).

  6. Nella pagina Review policy (Rivedi policy), per l'opzione Name (Nome) specificare un nome per la policy inline, ad esempio JenkinsPolicy.

  7. Scegli Create Policy (Crea policy).

  8. Nel riquadro di navigazione, seleziona Ruoli.

  9. Scegli il profilo di istanza allegato al tuo Jenkins server.

  10. Nella scheda Autorizzazioni, scegli Aggiungi autorizzazioni, quindi scegli Collega policy.

  11. Nella sezione Altre policy di autorizzazione, inserisci il nome della policy creata nei passaggi precedenti. Ad esempio JenkinsPolicy.

  12. Seleziona la casella di controllo accanto alla policy, quindi scegli Collega policy.

Usa la seguente procedura per configurarlo AWS CLI sul tuo Jenkins server.

Per configurare il Jenkins server per l'automazione
  1. Connect al tuo Jenkins server sulla porta 8080 utilizzando il browser preferito per accedere all'interfaccia di gestione.

  2. Inserire la password trovata in /var/lib/jenkins/secrets/initialAdminPassword. Per visualizzare la password, eseguire il comando seguente.

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  3. Il Jenkins lo script di installazione indirizza l'utente alla pagina Personalizza Jenkinspagina. Selezionare Install suggested plugins (Installazione dei plug-in suggeriti).

  4. Una volta completata l'installazione, scegli Credenziali di amministratore, seleziona Salva credenziali, quindi seleziona Inizia a utilizzare Jenkins.

  5. Nel riquadro di navigazione a sinistra, scegli Gestisci Jenkins, quindi scegli Gestisci plugin.

  6. Scegliere la scheda Available (Disponibilità) e quindi inserire Amazon EC2 plugin.

  7. Selezionare la casella di controllo relativa a Amazon EC2 plugin e quindi selezionare Install without restart (Installazione senza riavvio).

  8. Al termine dell'installazione, selezionare Go back to the top page (Torna alla pagina iniziale).

  9. Scegli Gestisci Jenkins, quindi scegli Gestisci nodi e cloud.

  10. Nella sezione Configura cloud, seleziona Aggiungi un nuovo cloud, quindi scegli Amazon EC2.

  11. Inserisci le tue informazioni nei campi rimanenti. Assicurati di selezionare l'opzione Usa il profilo dell' EC2 istanza per ottenere le credenziali.

Utilizzate la procedura seguente per configurare il Jenkins progetto per richiamare l'automazione.

Per configurare il tuo Jenkins server per richiamare Automation
  1. Aprire il Jenkins console in un browser Web.

  2. Scegliere il progetto che si desidera configurare con il servizio di automazione, quindi scegliere Configure (Configura).

  3. Nella scheda Build (Compilazione) scegliere Add Build Step (Aggiungi fase di compilazione).

  4. Scegliere Execute shell (Esegui shell) o Execute Windows batch command (Esegui comando batch Windows) (a seconda del sistema operativo in uso).

  5. Nel campo Comando, esegui un AWS CLI comando come il seguente. Sostituisci ogni example resource placeholder con le tue informazioni.

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

    Il comando di esempio seguente utilizza il UpdateMyLatestWindowsAmirunbook e il parametro Systems Manager latestAmi creati inAggiorna un golden AMI utilizzando l' AWS Lambda automazione e Parameter Store.

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

    In Jenkins, il comando è simile all'esempio riportato nella schermata seguente.

    Un comando di esempio in Jenkins software.
  6. Nel Jenkins progetto, scegli Costruisci ora. Jenkins restituisce un output simile al seguente esempio.

    Esempio di output del comando in Jenkins software.