Distribuisci automaticamente l’app Angular 4 utilizzando Bitbucket Pipeline e AWS CodeDeploy

Ho un’applicazione Angular 4 con MongoDB e NodeJS . Ho esaminato la distribuzione automatica della mia app sull’istanza AWS di Amazon EC2 .

Sto usando il repo BitBucket per il mio progetto. Dopo aver letto gli articoli mi sono imbattuto in Bitbucket Pipeline e AWS CodeDeploy . Ci sono molti scenari e configurazioni da fare per poterlo fare. Sono davvero confuso dopo aver letto tutte le documentazioni tutto il giorno.

Voglio distribuire automaticamente la mia app quando il codice viene inviato a un ramo specifico.

Qualcuno può fornire linee guida passo passo per l’implementazione automatica di un’app Angular 4 (MEAN) utilizzando Bitbucket Pipeline e AWS CodeDeploy?

Per favore fatemi sapere se volete ulteriori informazioni. Grazie.

Come distribuire automaticamente con Bitbucket Pipelines e AWS CodeDeploy?

Guida passo passo su come distribuire automaticamente la tua app:

Prerequisiti: – BitBucket Repository – Account AWS – Putty

FASE 1. Creare un nuovo utente IAM

Accedi al tuo account AWS. Visita https://console.aws.amazon.com/iam/

Utenti> Aggiungi utente> inserisci nome utente> casella di spunta entrambi Tipo di accesso> seleziona radio “Password personalizzata”> Deseleziona “Richiedi reimpostazione della password”> Fai clic su Avanti: Autorizzazioni> Collega le norme esistenti direttamente> cerca “s3” e seleziona AmazonS3FullAccess


inserisci la descrizione dell'immagine qui

Allega criteri esistenti: cerca “codedeploy” e seleziona AmazonEC2RoleforAWSCodeDeploy, AWSCodeDeployDeployerAccess, AWSCodeDeployFullAccess, AWSCodeDeployRole


inserisci la descrizione dell'immagine qui

Avanti: Revisione> Crea utente- NOTA IMPORTANTE: 1. Scarica CSV 2. Annota ID chiave di accesso giù 3. Nota Giù Chiave di accesso segreto


inserisci la descrizione dell'immagine qui

PASSAGGIO 2. Crea ruolo per l’applicazione CodeDeploy

È un ruolo di servizio per Code Deploy. Questo ruolo di servizio assegnato al codice distribuisce l’applicazione che verrà creata nei passaggi successivi.

Accedi al tuo account AWS. Visita https://console.aws.amazon.com/iam/

Ruoli> Crea ruolo> fai clic su Servizio AWS>


inserisci la descrizione dell'immagine qui

Sotto Seleziona CodeDeploy>


inserisci la descrizione dell'immagine qui

Successivo: autorizzazioni> Revisione successiva> immettere il nome del ruolo (ad es. CodeDeployServiceRole)> immettere la descrizione (non obbligatoria)> Crea ruolo.

PASSAGGIO 3. Crea ruolo per l’istanza EC2

Questo è il ruolo assegnato all’istanza EC2 che creerai i passaggi successivi.

Accedi al tuo account AWS. Visita https://console.aws.amazon.com/iam/

Passaggio A. Crea politica per questo ruolo. Criteri> Crea criterio> Seleziona Crea criterio personalizzato> Nome criterio: “CodeDeploy-EC2-Autorizzazioni”> Descrizione: “criterio per ruolo assegnato all’istanza EC2″> Documento politica: incollare quanto segue nella casella di immissione.

{“Versione”: “2012-10-17”, “Istruzione”: [{“Azione”: [“s3: Ottieni *”, “s3: Elenco *”], “Effetto”: “Consenti”, “Risorsa” : “*”}]}


inserisci la descrizione dell'immagine qui

Convalida criteri> Crea criterio.

Passaggio B: Creare ruoli ruolo > Crea ruolo> Servizio AWS> EC2> Seleziona il tuo caso d’uso> Fai clic su EC2> Avanti: Autorizzazioni> cerca “ec2” e seleziona “CodeDeploy-EC2-Autorizzazioni” che hai creato nel passaggio A>


inserisci la descrizione dell'immagine qui

Successivo: Revisione> Nome: “CodeDeploy-EC2-Instance-Profile”> Descrizione ruolo: “CodeDeploy-EC2-Instance-Profile”> Crea ruolo

PASSAGGIO 4. Creare un’istanza EC2.

Accedi al tuo account AWS. Servizi> EC2> Istanza di lancio> Amazon AMI di Amazon (o scegliere secondo le tue necessità)> Scegli un tipo di istanza> Successivo: Configura dettagli istanza> Ruolo IAM> dal menu a discesa seleziona il ruolo creato nel passaggio 3 Passaggio B (CodeDeploy- EC2-Istance-Profile)>


inserisci la descrizione dell'immagine qui

Successivo: Aggiungi spazio di archiviazione> Avanti: Aggiungi tag> Aggiungi tag> (Passo importante !! annota nome e tasto che assegni) Chiave di immissione: Nome, Valore: staging-auto-deploy (o qualsiasi cosa tu preferisca)>


inserisci la descrizione dell'immagine qui

Avanti: Configura gruppo sicurezza> seleziona gruppo di sicurezza esistente o crea nuovo> Visualizza e avvia> Avvia> Seleziona coppia di chiavi esistente o crea nuovo> Esegui istanze> Visualizza istanze> Annota IP pubblico IPv4

PASSAGGIO 5. Installare CodeDeploy Agent nell’istanza EC2

Apri Putty sul computer locale> Inserisci l’IP pubblico che hai ottenuto nel Passaggio 4> Porta 22> In Connessione> SSH> Aut.> File chiave privata per l’autenticazione> Sfoglia> collega il file di coppie di chiavi per l’istanza nel passaggio 4> Apri> accedi come: inserisci il tuo nome utente

Ora installa l’agente CodeDeploy come per il tuo tipo di istanza

Server Linux: http://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-linux.html

Ubuntu Server: http://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ubuntu.html

Windows Server: http://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-windows.html

Verifica che l’agente sia in esecuzione.


inserisci la descrizione dell'immagine qui

STEP 6. Aggiungi CodeDeploy Addon su BitBucket

Accedi al tuo account BitBucket Integrazioni> Cerca AWS CodeDeploy> Aggiungi AWS CodeDeploy


inserisci la descrizione dell'immagine qui

PASSAGGIO 7. Creare l’applicazione CodeDeploy su AWS

Accedi al tuo account AWS. Servizi> cerca CodeDeploy> seleziona CodeDeploy> Se è la prima volta seleziona “Inizia ora” o Crea applicazione> Distribuzione personalizzata> vai a fondo> inserisci dettagli> Nome applicazione: staging-deployment (Importante: annotalo) Nome del gruppo di distribuzione: staging-deployment (Importante: annotarlo) Selezionare “Distribuzione sul posto” Configurazione dell’ambiente> Ispettore Amazon EC2> Chiave: Nome, Valore: staging-auto-deploy (sono la chiave, valore che hai creato quando hai creato l’istanza in Passaggio 4)>


inserisci la descrizione dell'immagine qui

Configurazione della distribuzione> CodeDeployDefault.OneAtTime> Ruolo servizio ARN: selezionare il ruolo creato nel passaggio 2 (CodeDeployServiceRole)>


inserisci la descrizione dell'immagine qui

Crea applicazione

PASSAGGIO 8. Creare il volume S3

Accedi al tuo account AWS> Servizi> S3> Crea bucket> Nome bucket: staging-deployment-bucket> Crea

PASSAGGIO 9. CodeDiprodurre le impostazioni per il repository

Accedi al repository> Impostazioni> Impostazioni CodeDeploy> Configura componente aggiuntivo> Segui le istruzioni sullo schermo

Passaggio A Effettuare il login al proprio account AWS> Servizi> IAM> Criterio> Crea criterio> Crea criterio personalizzato> (Questo criterio viene creato per aggiungere il codice bitbucket, utilizzare questo per creare il ruolo per l’addon codeDeploy di bitbucket) Nome criterio: BitBucketCodeDeployAddOnPolicy Documento di politica : incolla seguendo nella casella di input

{“Versione”: “2012-10-17”, “Istruzione”: [{“Effetto”: “Permetti”, “Azione”: [“s3: ListAllMyBuckets”, “s3: PutObject”], “Risorsa”: ” arn: aws: s3 ::: “}, {” Effect “:” Allow “,” Action “: [” codedeploy: “],” Resource “:” * “}]}

Crea politica

Passaggio B Accedere al proprio account AWS> Servizi> IAM> Ruoli> crea ruolo> un altro account AWS>


inserisci la descrizione dell'immagine qui

ID account: copia incolla l’ID account AWS fornito sul bitbucket codeDeploy su istruzione schermo> verifica richiede casella di controllo ID esterno quindi: copia incolla l’ID esterno indicato sul bitbucket codeDeploy su istruzione schermo>


inserisci la descrizione dell'immagine qui

inserisci la descrizione dell'immagine qui

successivo: Autorizzazioni> Allega criteri di authorization> cerca il criterio creato nel passaggio A> successivo: visualizza il nome del rotolo : “BitbucketCodeDeployAddon”> Crea ruolo fai clic sul ruolo appena creato e copia il ruolo ARN e incollalo in “Il tuo ruolo ARN” sul codice bitbucket distribuire la pagina delle impostazioni> fare clic su Salva e continua Alla pagina successiva Applicazione: selezionare CodeDeploy Applicazione creata nel passaggio 7> Secchio S3: selezionare il bucket S3 creato nel passaggio 8> salva

PASSAGGIO 10. Abilitare la pipeline di Bitbucket

Accedi al tuo account BitBucket Impostazioni Repo> Pipelines> impostazioni> Attiva Abilita pipeline

Per i passaggi 11, 12, 13 e 14, i file richiesti sono disponibili come riferimento alla fonte di questo repository: https://bitbucket.org/bhushanTPL/bitbucket-pipeline-and-aws-codedeploy

PASSAGGIO 11. Creare bitbucket-pipelines.yml

Copia il file bitbucket-pipelines.yml (apporta le modifiche a questo file secondo i tuoi requisiti di progetto) Aggiungi questo file alla radice del tuo progetto.

Documenti : https://confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html?_ga=2.162970750.315484667.1509451697-1615374000.1508921669#Configurebitbucket-pipelines.yml-ci_imageimage(optional)

PASSAGGIO 12. Creare codedeploy_deploy.py

Copia il file codedeploy_deploy.py. Aggiungi questo file a root di te il tuo progetto.

Documenti e fonte : https://bitbucket.org/awslabs/aws-codedeploy-bitbucket-pipelines-python

PASSAGGIO 13. Creare appspec.yml

Vai a Fonte di questo repository: https://bitbucket.org/bhushanTPL/bitbucket-pipeline-and-aws-codedeploy e copia il file appspec.yml . (apportare modifiche a questo file secondo i requisiti del progetto) Aggiungerlo alla radice del progetto.

Documenti : http://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html

PASSAGGIO 14. Creare script

Crea la cartella degli script alla radice del tuo progetto

Crea il file startApp.sh nella cartella scripts nella root dei tuoi progetti, che eseguirà i comandi dopo che la build è stata trasferita all’istanza EC2.

PASSAGGIO 15. Aggiungere le variabili di ambiente

Accedi al tuo account BitBucket> le impostazioni di Repo> Variabili d’ambiente Aggiungi le seguenti variabili d’ambiente

AWS_SECRET_ACCESS_KEY: chiave segreta per un utente con le autorizzazioni richieste.

AWS_ACCESS_KEY_ID: chiave di accesso per un utente con le autorizzazioni richieste.

AWS_DEFAULT_REGION: area in cui si trova l’applicazione AWS CodeDeploy di destinazione.

APPLICATION_NAME: nome dell’applicazione AWS CodeDeploy.

DEPLOYMENT_CONFIG: configurazione distribuzione AWS CodeDeploy (CodeDeployDefault.OneAtATime | CodeDeployDefault.AllAtOnce | CodeDeployDefault.HalfAtATime | Custom).

DEPLOYMENT_GROUP_NAME: nome del gruppo di distribuzione nell’applicazione.

S3_BUCKET: nome del bucket S3 in cui è archiviato il codice sorgente da distribuire.

Documenti e rif : https://bitbucket.org/awslabs/aws-codedeploy-bitbucket-pipelines-python


Ora hai configurato tutti i passaggi richiesti. Ora quando si commettono e si inseriscono le modifiche nel ramo, viene avviato il processo di distribuzione automatica. Si noti che nel seguente processo di distribuzione della configurazione bitbucket-pipeline.yml verrà avviato ogni volta che si inviano le modifiche al ramo “staging”.


inserisci la descrizione dell'immagine qui

Puoi controllare i progressi della tua pipeline facendo clic su Pipelines nel tuo repository.


inserisci la descrizione dell'immagine qui

È ansible visualizzare i registri relativi alla distribuzione. Per maggiori informazioni visita: http://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-view-logs.html

È ansible monitorare le distribuzioni da AWS, accedere al proprio account AWS, Servizi> CodeDeploy> Distribuzioni.

Questa è una grande quantità di informazioni che stai cercando, ma nel complesso ciò che segue è ciò di cui hai bisogno:

  1. Configura codedeploy su aws: ciò implicherebbe la configurazione dell’applicazione codedeploy, del gruppo di distribuzione corretto con le giuste autorizzazioni e delle variabili di ambiente (tag EC2, ecc.) In base all’ambiente. Inoltre, è necessario installare i binari codedeploy necessari nelle istanze EC2.

  2. Imposta pipeline Bitbucket: configura i giusti bitbucket-pipelines.yml, appspec.py, boto scripts, ecc. Dai un’occhiata a https://bitbucket.org/awslabs/aws-codedeploy-bitbucket-pipelines-python?_ga=2.61586476. 1615273408.1509882420-1278037437.1495556069 .

Uso le pipeline bitbucket nel modo sopra descritto per l’auto-distribuzione di repository multipli in Angular, Nodejs, Python, su AWS.

Un modo migliore per ottenere ulteriore aiuto è quello di porre domande più specifiche o se si rimane bloccati su un particolare problema.

Basta configurare il file YML delle pipeline da distribuire solo su quel ramo. Hanno una configurazione di distribuzione che puoi aggiungere anche se è ancora in fase Alpha. Per gli attuali gasdotti si dovrebbe fare qualcosa del genere:

pipelines: branches: master: - step: script: # Modify the commands below to build your repository. - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY - export AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION - export S3_BUCKET=$S3_BUCKET - export DEPLOYMENT_GROUP_NAME=$DEPLOYMENT_GROUP_NAME - export DEPLOYMENT_CONFIG=$DEPLOYMENT_CONFIG - export APPLICATION_NAME=$APPLICATION_NAME - echo "Starting pipelines for MASTER" - chmod +x gradlew - ./gradlew build - zip -r tmp/enterpriseconfigserver.zip build/libs/enterpriseconfigserver-0.0.1-SNAPSHOT.jar appspec.yml buildspec.yml - python codedeploy_deploy.py 

Dovrai modificare ovviamente per adattarsi alla tua app, ma assicurati di aggiungere le tue variabili alle impostazioni in Pipeline ed esportarle in modo che l’immagine della finestra mobile possa usarle. Suggerisco di creare un’immagine personalizzata con AWSCLI, BOTO e tutte le chicche di cui hai bisogno in modo da non dover attendere per l’installazione su ogni build.

Questo può essere utile pure: https://confluence.atlassian.com/bitbucket/using-artifacts-in-steps-935389074.html