GNU/Linux >> Linux Esercitazione >  >> Linux

Come integrare Jenkins con CloudFormation e Step Functions

In base alla mia esperienza personale, molte aziende si affidano a Jenkins e Terraform mentre automatizzano la propria infrastruttura cloud. Non ci sono problemi se desideri distribuire qualcosa da Jenkins al cloud, ma cosa fare, se vuoi chiamare il lavoro Jenkins da per distribuire un modulo Terraform come prodotto del catalogo dei servizi o includere la pipeline Jenkins in un flusso di lavoro orchestrato da StepFunzioni? Questo articolo descriverà un modello di integrazione unificato, che ti consentirà di integrare i lavori Jenkins con le risorse personalizzate di CloudFormation e i flussi di lavoro di Step Functions.

Installazione di Jenkins

Esistono molti modi per distribuire Jenkins nel cloud AWS.

Per il processo di installazione automatizzata di un singolo server Jenkins nel cloud AWS, utilizza il nostro articolo Come installare Jenkins sull'ultimo Ubuntu in 5 minuti.

Potresti anche essere interessato a distribuire Jenkins su Amazon EKS con Amazon EFS se stai cercando un modo per utilizzare i container Docker come lavoratori Jenkins.

Qualunque sia il metodo di distribuzione utilizzato; di conseguenza, otterrai un server Jenkins i cui dipendenti possono assumere ruoli IAM in uno o più account AWS per distribuire le applicazioni o i servizi richiesti.

Ora possiamo integrare il tuo server Jenkins con i servizi CloudFormation e Step Functions.

Modello di integrazione

Se stai leggendo questo articolo, probabilmente stai cercando di risolvere uno dei seguenti problemi:

  • Come chiamare le API Jenkins da altri servizi AWS
  • Come fornire l'accesso alle tue API Jenkins centrali da più account AWS

La soluzione consiste nell'utilizzare AWS Lambda, SQS e SNS:

In questo modello di integrazione:

  • AWS Lambda il ruolo consiste nell'effettuare chiamate API a Jenkins utilizzando la libreria python-jenkins.
  • SNS Amazon ti consente di ricevere eventi dai servizi Step Function e CloudFormation senza problemi.
  • Amazon SQS è responsabile dell'invio, dell'archiviazione e della ricezione di messaggi per Jenkins a qualsiasi volume senza perderli se Jenkins (per qualsiasi motivo) non è disponibile.

Ecco come appare il diagramma dell'architettura completo per un account AWS:

Se devi supportare più regioni AWS, puoi facilmente espandere tale configurazione inserendo argomenti SNS nelle regioni AWS richieste e integrandoli direttamente nella coda SQS.

Puoi configurare le policy di accesso agli argomenti SNS per fornire l'accesso all'argomento da più account e organizzazioni AWS. È molto facile configurarlo perché puoi utilizzare gli ID account e le OU di AWS Organizations:

  • Come faccio a consentire agli account AWS della mia organizzazione di pubblicare messaggi su un argomento Amazon SNS nel mio account?

Infine, non appena l'integrazione "Jenkins to AWS CloudFormation" è in atto, puoi utilizzare le risorse personalizzate di CloudFormation per eseguire i lavori Jenkins da CloudFormation. Ciò sblocca la capacità di distribuire i prodotti Service Catalog utilizzando Jenkins.

Riepilogo

In questo articolo, abbiamo descritto un'integrazione Jenkins con i servizi CloudFormation e Step Function AWS, che ti consente di utilizzare i lavori Jenkins per distribuire i prodotti Service Catalog o come parte dei tuoi flussi di lavoro Step Functions.

Speriamo che questo articolo ti sia stato utile. Se è così, per favore, aiutaci a diffonderlo nel mondo!


Linux
  1. Come configurare LogAnalyzer con Rsyslog e MySQL

  2. Come installare e integrare SpamAssassin con Postfix su CentOS 6 VPS

  3. Come installare e integrare SpamAssassin con Exim su CentOS 7 VPS

  4. Come installare e integrare BigBlueButton con WordPress

  5. Come creare e chiamare funzioni in Bash

Come integrare gli editor ONLYOFFICE con la piattaforma Nuxeo

Come archiviare la chiave di accesso utente e la chiave segreta AWS in Jenkins

Come utilizzare Cloudformation per creare un VPC su AWS

Come creare un argomento SNS e un abbonato su AWS

Come automatizzare le tue risorse AWS con i modelli CloudFormation

Come eseguire il multi-master MySQL con Percona e Keepalived