GNU/Linux >> Tutoriels Linux >  >> Linux

Comment intégrer Jenkins avec CloudFormation et Step Functions

D'après mon expérience personnelle, de nombreuses entreprises s'appuient sur Jenkins et Terraform tout en automatisant leur infrastructure cloud. Il n'y a aucun problème si vous souhaitez déployer quelque chose de Jenkins vers le cloud, mais que faire, si vous souhaitez appeler le travail Jenkins à partir de pour déployer un module Terraform en tant que produit de catalogue de services, ou inclure le pipeline Jenkins à un flux de travail orchestré par StepFunctions ? Cet article décrira un modèle d'intégration unifié, qui vous permettra d'intégrer les tâches Jenkins aux ressources personnalisées CloudFormation et aux workflows Step Functions.

Installation de Jenkins

Il existe de nombreuses façons de déployer Jenkins sur le cloud AWS.

Pour le processus d'installation automatisé d'un seul serveur Jenkins sur le cloud AWS, utilisez notre article Comment installer Jenkins sur le dernier Ubuntu en 5 minutes.

Vous pouvez également être intéressé par le déploiement de Jenkins sur Amazon EKS avec Amazon EFS si vous cherchez un moyen d'utiliser des conteneurs Docker en tant que travailleurs Jenkins.

Quelle que soit la méthode de déploiement que vous utilisez ; par conséquent, vous obtiendrez un serveur Jenkins dont les travailleurs peuvent assumer des rôles IAM dans un ou plusieurs comptes AWS pour déployer les applications ou services requis.

Maintenant, nous pouvons intégrer votre serveur Jenkins avec les services CloudFormation et Step Functions.

Modèle d'intégration

Si vous lisez cet article, vous essayez probablement de résoudre l'un des problèmes suivants :

  • Comment appeler les API Jenkins à partir d'autres services AWS
  • Comment fournir un accès à vos API Jenkins centrales à partir de plusieurs comptes AWS

La solution consiste à utiliser AWS Lambda, SQS et SNS :

Dans ce modèle d'intégration :

  • AWS Lambda rôle est de faire des appels d'API à Jenkins en utilisant la bibliothèque python-jenkins.
  • Amazon SNS vous permet de recevoir des événements des services Step Function et CloudFormation de manière transparente.
  • Amazon SQS est responsable de l'envoi, du stockage et de la réception des messages pour Jenkins à n'importe quel volume sans perdre ces messages si Jenkins (pour une raison quelconque) devient indisponible.

Voici à quoi ressemble le diagramme d'architecture complet d'un compte AWS :

Si vous devez prendre en charge plusieurs régions AWS, vous pouvez facilement étendre cette configuration en plaçant les rubriques SNS dans les régions AWS requises et en les intégrant directement à la file d'attente SQS.

Vous pouvez configurer des stratégies d'accès aux rubriques SNS pour fournir un accès à la rubrique à partir de plusieurs comptes et organisations AWS. Il est très facile de configurer cela car vous pouvez utiliser les ID de compte et les UO AWS Organizations :

  • Comment puis-je autoriser les comptes AWS de mon organisation à publier des messages dans une rubrique Amazon SNS de mon compte ?

Enfin, dès que l'intégration « Jenkins à AWS CloudFormation » est en place, vous pouvez utiliser les ressources personnalisées CloudFormation pour exécuter des tâches Jenkins à partir de CloudFormation. Cela débloque la capacité de déployer des produits Service Catalog à l'aide de Jenkins.

Résumé

Dans cet article, nous avons décrit une intégration Jenkins avec les services AWS CloudFormation et Step Function, qui vous permet d'utiliser les tâches Jenkins pour déployer des produits Service Catalog ou dans le cadre de vos workflows Step Functions.

Nous espérons que cet article vous a été utile. Si oui, s'il vous plaît, aidez-nous à le diffuser dans le monde !


Linux
  1. Comment configurer LogAnalyzer avec Rsyslog et MySQL

  2. Comment installer et intégrer SpamAssassin avec Postfix sur un VPS CentOS 6

  3. Comment installer et intégrer SpamAssassin avec Exim sur un VPS CentOS 7

  4. Comment installer et intégrer BigBlueButton avec WordPress

  5. Comment écrire un fichier avec C sous Linux ?

Comment intégrer les éditeurs ONLYOFFICE à Nuxeo Platform

Comment stocker la clé d'accès utilisateur AWS et la clé secrète dans Jenkins

Comment utiliser Cloudformation pour créer un VPC sur AWS

Comment créer une rubrique SNS et un abonné sur AWS

Comment automatiser vos ressources AWS avec les modèles CloudFormation

Comment multi-maître MySQL avec Percona et Keepalived