Fermer

juin 29, 2022

Gestion de l’infrastructure AWS à l’aide d’Ansible Tower

Gestion de l’infrastructure AWS à l’aide d’Ansible Tower


En utilisant Ansible Tower, j’ai le pouvoir d’automatiser des tâches simples et complexes telles que la configuration et l’installation de packages sur les services Linux et la configuration de l’infrastructure AWS.

1

Votre entreprise devrait penser à mettre en œuvre Ansible pour répondre à vos besoins commerciaux si vous recherchez : accès multi-utilisateurs, gestion des utilisateurs, informations d’identification, sécurité, RBAC, orchestration complexe, création de rapports, journalisation et/ou audit. Ansible Playbook est uniquement CLI et Ansible Tower fournit une interface graphique Web et un serveur API pour travailler avec Ansible dans un environnement d’entreprise.

Principales caractéristiques de la tour Ansible

  • Tableau de bord visuel
  • Gestion graphique des stocks
  • RBAC
  • Planification des tâches
  • Rapport sur l’historique des tâches
  • Exécution de commandes à distance
  • Journalisation centralisée
  • Notification
  • Flux de travail multi-playbook
  • API reposante

Avantages de la tour Ansible

  • Réutilisation des scripts ansibles dans toute l’organisation
  • Fournit une infrastructure partagée permettant à l’équipe d’exécuter des scripts ansibles
  • Gérez facilement les identifiants d’administrateur privilégiés et protégés
  • Facilité d’utilisation pour les équipes informatiques qui utilisent traditionnellement des outils GUI
  • Ansible Tower fournit un cadre pour exécuter et gérer efficacement Ansible Automation Platform à l’échelle de l’entreprise
  • Offre une interface Web, RBAC, une journalisation et un audit centralisés
  • L’API RESTful facilite l’intégration avec les flux de travail et les ensembles d’outils existants de l’entreprise

Architecture de la tour Ansible

2

Installation de la tour Ansible

J’ai choisi l’instance t2.medium car Ansible Tower nécessite au moins 2 vCPU et 4 Go de RAM.

L’image de base a été définie sur Red Hat Enterprise Linux 8. Vous devrez également autoriser le trafic HTTP et HTTPS de l’extérieur vers l’instance EC2.

3

Utiliser les commandes ci-dessous

> miam mise à jour -y
> miam installer wget -y
> sudo wget https://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz
> sudo tar xvf ansible-tower-setup-latest.tar.gz
> cd ansible-tower-setup-3.8.6-2/

Définissez le mot de passe administrateur initial et le mot de passe de la base de données pour exécuter le programme d’installation

> inventaire sudo vi

Définissez un mot de passe administrateur et un mot de passe de base de données,\

4

> vi rôles/preflight/defaults/main.yml

Apporter des modifications Sone dans le fichier main.yml

6

Une fois terminé, lancez l’installation d’Ansible Tower

sudo ./setup.sh

sept

Vous pouvez configurer Ansible Tower en utilisant les éléments suivants :

Nous utiliserons l’interface utilisateur Web car il s’agit de la méthode préférée par la plupart des nouveaux utilisateurs d’Ansible Tower. Ouvrez votre point de navigateur sur l’adresse IP ou le nom d’hôte de votre serveur Ansible Tower via le protocole https.

8

9

dix

Acceptez le contrat de licence utilisateur final et nous faire parvenir pour terminer l’installation.

Créer une infrastructure sur AWS

Nous allons créer une seule instance EC2 sur AWS. Configurez ensuite Ansible Tower pour exécuter le playbook.

  1. Créer un environnement virtuel dédié contenant des bibliothèques pour parler à AWS
  2. Importer notre playbook dans Ansible Tower
  3. Créer un type d’informations d’identification personnalisé et l’instancier
  4. Définir notre inventaire
  5. Ajouter un modèle de travail et l’exécuter
Amazon Web Services - Évitez les pannes du centre de contact : planifiez votre mise à niveau vers Amazon Connect

Exemple de livre de jeu Ansible


– hôtes : tous
rassemble_faits : faux
Tâches:
– nom : créer une machine virtuelle
steampunk.aws.ec2_instance :
nom : « {{ i_name }} »
tapez : « {{ i_type }} »
ami : ami-0e8286b71b81c3cc1
key_pair : demo_key
sous-réseau : « {{ i_subnet }} »

Création d’un environnement virtuel

Vous ne pouvez pas créer un nouvel environnement virtuel via l’interface Web. Au lieu de cela, vous devez vous connecter en SSH à Ansible Tower et exécuter des commandes à partir du terminal.

$ sudo yum installer gcc python3-devel
$ sudo mkdir /opt/venvs
$ sudo python3 -m venv /opt/venvs/steampunk_aws
$ sudo /opt/venvs/steampunk_aws/bin/pip install psutil ansible boto3

Vous devez ouvrir l’interface utilisateur Web d’Ansible Tower, vous connecter et accéder à la page Paramètres-> Système. Ajoutez le chemin / opt / venvs au champ Custom Virtual Environment Path, enregistrez vos paramètres et vous avez terminé.

11

Ajouter un exemple de projet

Avant d’exécuter un playbook Ansible sur Ansible Tower, il doit être récupéré à partir d’une source externe (Ansible Tower ne dispose pas de fonctionnalités de création de playbook). Si vous accédez à la page du projet et cliquez sur le bouton plus vert, vous verrez quelque chose comme ceci :

12

Fournir des informations d’identification

Fournir des informations d’identification pour les playbooks Ansible est probablement l’étape la plus complexe de l’ensemble du processus.

Création d’un type d’identifiant personnalisé

Vous pouvez ajouter des types d’informations d’identification personnalisés en accédant à la page Types d’informations d’identification et en cliquant sur le bouton plus vert. La saisie des valeurs de nom et de description ne devrait pas poser trop de problèmes, mais les champs de configuration d’entrée et d’injecteur sont gênants.

13

Dans ce cas, le contenu du champ de configuration d’entrée est le document YAML suivant :

des champs:
– identifiant : aws_access_key
étiquette : Clé d’accès AWS
type : chaîne
– identifiant : aws_secret_key
étiquette : clé secrète AWS
type : chaîne
secret : vrai
– identifiant : aws_region
étiquette : région AWS
type : chaîne
les choix: [ eu-central-1, eu-north-1 ]
obligatoire:
– aws_access_key
– aws_secret_key
– aws_region

Ce document YAML indique à Ansible Tower que le type d’informations d’identification comporte trois champs obligatoires et que aws_secret_key contient des informations sensibles à chiffrer et à stocker.

La configuration de l’injecteur décrit comment Ansible Tower transmet les informations d’identification aux playbooks Ansible. Cet exemple utilise des variables d’environnement.

env :
AWS_ACCESS_KEY : « {{ aws_access_key }} »
AWS_SECRET_KEY : « {{ aws_secret_key }} »
AWS_REGION : « {{ aws_region }} »

Ensuite, cliquez simplement sur le bouton Enregistrer à la fin et vous avez terminé.

Ajout d’informations d’identification AWS

Maintenant que vous avez défini votre type d’informations d’identification personnalisées, vous pouvez ajouter vos informations d’identification AWS à Ansible Tower. Accédez à la page des informations d’identification et cliquez sur le bouton vert plus et la tour Ansible affichera le formulaire suivant :

14

Notez que vous devez sélectionner le type d’autorisation avant de pouvoir afficher le champ des détails du type. Cliquez sur le bouton Enregistrer et vous êtes prêt pour la prochaine étape de configuration.

Définir un inventaire

L’exécution de chaque playbook Ansible exécute une tâche sur un ou plusieurs hôtes. Le playbook se connecte uniquement à l’API Web distante, donc tout ce dont vous avez besoin est localhost. Vous pouvez le créer en accédant à la page d’inventaire, en cliquant sur le bouton plus vert et en sélectionnant l’inventaire dans le menu déroulant.

Une fois que vous avez nommé votre inventaire, vous devez cliquer sur le bouton Enregistrer avant de naviguer vers l’onglet Hôtes. Après avoir cliqué à nouveau sur le bouton vert plus, vous devez saisir les détails de l’hôte comme suit :

15

Copiez la définition de variable suivante dans le champ de saisie de variable :

ansible_connection : local

ansible_python_interpreter : « {{ansible_playbook_python}} »

Si vous ne définissez pas correctement ces variables, Ansible ne pourra pas trouver les packages installés dans votre environnement virtuel.

Ajouter un modèle de travail

Les modèles de tâche Ansible Tower sont essentiellement des exécutions de playbook Ansible basées sur des modèles. Les modèles de tâche définissent le playbook qui exécute Ansible Tower, les informations d’identification et les variables pouvant être utilisées pendant l’exécution, la redondance des sorties, etc. Dans ce cas, le modèle de tâche devrait ressembler à ceci :

16

17

Cette boîte de dialogue collecte toutes les informations définies précédemment.

  • Sélectionnez la source d’inventaire appropriée.
  • Sélectionnez le projet et le playbook appropriés à partir de maintenant.
  • Collez les informations d’identification AWS.

Ces champs sont mis en évidence dans la capture d’écran ci-dessus. Mais il manque encore quelque chose : la valeur de la variable Ansible playbook.

18

19

Exécution du travail

Une fois que vous avez saisi toutes les données requises et confirmé votre sélection, Ansible Tower exécutera le playbook et affichera la sortie.

20

Voyez maintenant, notre instance EC2 est créée.

21

Nous venons de créer un serveur EC2 simple avec Ansible Tower. J’espère que cela vous aidera à utiliser Ansible Tower dans de futurs projets. Si vous avez des questions sur la façon dont Ansible crée une instance AWS, veuillez poster dans la section des commentaires.

Comment Perficient peut-il vous aider?

Perficient est un partenaire certifié Amazon Web Services avec plus de 10 ans d’expérience dans la fourniture d’applications et d’expertise au niveau de l’entreprise dans les solutions de plate-forme cloud, le centre de contact, la modernisation des applications, les migrations, l’analyse de données, les outils mobiles, de développement et de gestion, l’IoT, le sans serveur, la sécurité. , et plus. Associé à notre stratégie et à notre équipe de pointe, Perficient est équipé pour aider les entreprises à relever les défis les plus difficiles et à tirer le meilleur parti de leurs implémentations et intégrations.

Apprenez-en plus sur notre pratique AWS et contactez notre équipe ici !






Source link