Crea una pipeline e AMI usa CodePipeline and HashiCorp Packer - Prontuario AWS

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à.

Crea una pipeline e AMI usa CodePipeline and HashiCorp Packer

Creato da Akash Kumar () AWS

Ambiente: PoC o pilota

Fonte: DevOps

Destinazione: Amazon Machine Images (AMI)

Tipo R: Rehost

Carico di lavoro: tutti gli altri carichi di lavoro

Tecnologie: DevOps; Modernizzazione; App Web e mobili

Riepilogo

Avviso: non AWS CodeCommit è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

Questo modello fornisce esempi di codice e passaggi per creare sia una pipeline nel cloud Amazon Web Services (AWS) utilizzando AWS CodePipeline sia una Amazon Machine Image (AMI) utilizzando HashiCorp Packer. Il modello si basa sulla pratica dell'integrazione continua, che automatizza la creazione e il test del codice con un sistema di controllo della versione basato su Git. In questo modello, si crea e si clona un archivio di codice utilizzando. AWS CodeCommit Quindi, crea un progetto e configura il tuo codice sorgente utilizzando. AWS CodeBuild Infine, creane uno AMI che venga salvato nel tuo repository.

Prerequisiti e limitazioni

Prerequisiti

  • Un account attivo AWS

  • Un Amazon Linux AMI per il lancio di istanze Amazon Elastic Compute Cloud (AmazonEC2)

  • HashiCorp Packer 0.12.3 o versione successiva

  • Amazon CloudWatch Events (opzionale)

  • Amazon CloudWatch Logs (opzionale)

Architettura

Il diagramma seguente mostra un esempio di codice applicativo che automatizza la creazione di un file AMI utilizzando l'architettura di questo pattern.

Automatizza la creazione di un. AMI

Il diagramma mostra il flusso di lavoro seguente:

  1. Lo sviluppatore esegue le modifiche al codice in un repository CodeCommit Git privato. Quindi, CodePipeline utilizza CodeBuild per avviare la build e aggiungere nuovi elementi pronti per la distribuzione nel bucket Amazon Simple Storage Service (Amazon S3).

  2. CodeBuild utilizza Packer per raggruppare e impacchettare i file in base a un modello. AMI JSON Se abilitato, CloudWatch Events può avviare automaticamente la pipeline quando si verifica una modifica nel codice sorgente.

Stack tecnologico

  • CodeBuild

  • CodeCommit

  • CodePipeline

  • CloudWatch Eventi (opzionale)

Strumenti

  • AWS CodeBuild— AWS CodeBuild è un servizio di compilazione completamente gestito nel cloud. CodeBuild compila il codice sorgente, esegue test unitari e produce artefatti pronti per l'implementazione.

  • AWS CodeCommit— AWS CodeCommit è un servizio di controllo delle versioni che consente di archiviare e gestire in modo privato gli archivi Git nel AWS Cloud. CodeCommit elimina la necessità di gestire il proprio sistema di controllo del codice sorgente o di preoccuparsi della scalabilità della sua infrastruttura.

  • AWS CodePipeline— AWS CodePipeline è un servizio di distribuzione continua che è possibile utilizzare per modellare, visualizzare e automatizzare i passaggi necessari per il rilascio del software.

  • HashiCorp Packer — HashiCorp Packer è uno strumento open source per automatizzare la creazione di immagini di macchine identiche da un'unica configurazione di origine. Packer è leggero, funziona su tutti i principali sistemi operativi e crea immagini di macchine per più piattaforme in parallelo.

Codice

Questo modello include i seguenti allegati:

  • buildspec.yml— Questo file viene utilizzato CodeBuild per creare e creare un artefatto da distribuire.

  • amazon-linux_packer-template.json— Questo file utilizza Packer per creare un Amazon LinuxAMI.

Epiche

AttivitàDescrizioneCompetenze richieste

Crea il repository.

Crea un CodeCommit repository.

AWSamministratore di sistema

Clonare il repository.

Connect al CodeCommit repository clonando il repository.

Sviluppatore di app

Invia il codice sorgente al repository remoto.

  1. Crea un commit per aggiungere i amazon-linux_packer-template.json file buildspec.yml and al tuo repository locale.

  2. Invia il commit dal tuo repository locale al repository remoto CodeCommit .

Sviluppatore di app
AttivitàDescrizioneCompetenze richieste

Creare un progetto di compilazione.

  1. Accedi alla console di AWS gestione, apri la AWS CodeBuild console e scegli Crea progetto di compilazione.

  2. Per Nome progetto, inserisci il nome del tuo progetto.

  3. Per Provider di origine, scegli AWS CodeCommit.

  4. Per Repository, scegli il repository in cui desideri creare la pipeline di codice.

  5. Per Immagine ambientale, scegli Immagine gestita o Immagine personalizzata.

  6. In Operating system (Sistema operativo), seleziona Ubuntu.

  7. Per RunTime(i), scegli Standard.

  8. Per Immagine, scegliere:4.0aws/codebuild/standard.

  9. Per la versione dell'immagine, scegli Usa sempre l'immagine più recente per questa versione di runtime.

  10. Per Ambiente, scegli Linux.

  11. Scegli la casella di controllo Privilegata.

  12. Per Ruolo di servizio, scegli Nuovo ruolo di servizio o Ruolo di servizio esistente.

  13. Per le specifiche di build, scegli Usa un file buildspec o Inserisci comandi di build.

  14. (Facoltativo) Per Digitare nella sezione Artefatti, scegliete Nessun artefatto.

  15. (Consigliato) Per caricare i log di output della build in Logs, scegliete log. CloudWatch CloudWatch

  16. (Facoltativo) Per caricare i log di output della build su Amazon S3, seleziona la casella di controllo S3 logs.

  17. Scegliere Create build project (Crea progetto di compilazione).

Sviluppatore di app, amministratore di sistema AWS
AttivitàDescrizioneCompetenze richieste

Nome della pipeline

  1. Accedi alla console di AWS gestione, apri la AWS CodePipeline console e scegli Crea pipeline.

  2. Per Nome pipeline, inserisci un nome per la pipeline.

  3. Per Ruolo di servizio, scegli Nuovo ruolo di servizio o Ruolo di servizio esistente.

  4. In Nome ruolo, immetti un nome per il ruolo.

  5. Nella sezione Impostazioni avanzate, per Artifact store, scegli Posizione predefinita se desideri che Amazon S3 crei un bucket e memorizzi gli artefatti nel bucket. Per utilizzare un bucket S3 esistente, scegli Posizione personalizzata. Scegli Next (Successivo).

  6. Per Provider di origine, scegli. AWS CodeCommit

  7. Per Nome del repository, scegli il repository che hai clonato in precedenza. Per il nome del ramo, scegli il ramo del codice sorgente.

  8. Per le opzioni di rilevamento delle modifiche, scegli Amazon CloudWatch Events (consigliato) per avviare la pipeline o AWS CodePipelineper verificare periodicamente le modifiche. Scegli Next (Successivo).

  9. Per Build provider (Provider compilazione), selezionare AWS CodeBuild.

  10. Per Project Name, scegli il progetto di build che hai creato nell'epico Create a CodeBuild project for the application.

  11. Scegli le tue opzioni di costruzione e poi scegli Avanti.

  12. Scegli Skip deploy stage.

  13. Scegliere Create pipeline (Crea pipeline).

Sviluppatore di app, AWS amministratore di sistema

Risorse correlate

Allegati

Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip