Recherche de site Web

Comprendre les composants clés d’Ansible - Partie 1


L’examen Red Hat Certified Specialist in Ansible Automation (EX407) est un nouveau programme de certification de Red Hat qui teste vos compétences pour utiliser Ansible afin d’automatiser la configuration de systèmes et d’applications.

La série s’intitulera « L’examen Red Hat Certified Specialist in Ansible Automation (EX407) » et couvrira les objectifs d’examen suivants basés sur Red Hat Enterprise Linux 7.5 et Ansible 2.7, que nous allons aborder dans cette série Ansible :

Pour consulter les tarifs et vous inscrire à un examen dans votre pays, consultez la page d’examen d’Ansible Automation.

Dans cette partie 1 de la série Ansible, nous aborderons un aperçu de base des composants principaux d’Ansible.

Comprendre les principaux composants d’Ansible

Ansible est une plateforme d’automatisation gratuite et opensource de RedHat qui vous permet de gérer et de contrôler plusieurs serveurs à partir d’un emplacement central. C’est particulièrement idéal lorsque vous avez plusieurs tâches répétitives à effectuer. Ainsi, au lieu de vous connecter à chacun de ces nœuds distants et d’effectuer vos tâches, vous pouvez le faire confortablement à partir d’un emplacement central et gérer confortablement vos serveurs.

Cela est utile lorsque vous souhaitez maintenir la cohérence du déploiement des applications, réduire les erreurs humaines et automatiser les tâches répétitives et quelque peu banales.

Bien sûr, il existe d’autres alternatives à Ansible telles que Puppet, Chef et Salt. Cependant, Ansible est surtout préféré car il est facile à utiliser et simple à apprendre.

Pourquoi est-ce simple à apprendre, me direz-vous ? En effet, Ansible utilise YAML (Yet Another Markup Language) dans ses tâches de configuration et d’automatisation, qui sont lisibles par l’homme et assez faciles à suivre. YAML utilise le protocole SSH pour communiquer avec les serveurs distants, contrairement à d’autres plates-formes d’automatisation qui nécessitent l’installation d’un agent sur des nœuds distants pour communiquer avec eux.

Avant de commencer à utiliser Ansible, il est important que vous vous familiarisiez avec certaines terminologies de base afin de ne pas vous perdre ou de vous perdre au fur et à mesure que nous avançons.

Inventaire

Un inventaire est un fichier texte qui contient une liste de serveurs ou de nœuds que vous gérez et configurez. Habituellement, les serveurs sont répertoriés en fonction de leurs noms d’hôte ou adresses IP.

Un fichier d’inventaire peut contenir des systèmes distants définis par leurs adresses IP, comme indiqué :

10.200.50.50
10.200.50.51
10.200.50.52

Alternativement, ils peuvent être répertoriés par groupes. Dans l’exemple ci-dessous, nous avons des serveurs placés sous 2 groupes : les serveurs Web et les bases de données. De cette façon, ils peuvent être référencés en fonction de leur nom de groupe et non de leur adresse IP. Cela simplifie encore les processus d’exploitation.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Vous pouvez avoir plusieurs groupes avec plusieurs serveurs si vous êtes dans un environnement de production volumineux.

Livre de jeu

Un playbook est un ensemble de scripts de gestion de configuration qui définissent la façon dont les tâches doivent être exécutées sur des hôtes distants ou un groupe de machines hôtes. Les scripts ou instructions sont écrits au format YAML.

Par exemple, vous pouvez avoir un fichier de playbook pour installer le serveur Web Apache sur CentOS 7 et l’appeler httpd.yml.

Pour créer le playbook, exécutez la commande.

$ touch playbook_name.yml

Par exemple, pour créer un playbook appelé httpd, exécutez la commande.

$ touch httpd.yml

Un fichier YAML commence par 3 traits d’union, comme illustré. À l’intérieur du fichier, ajoutez les instructions suivantes.

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

Le playbook ci-dessus installe le serveur Web Apache sur des systèmes distants définis comme des serveurs Web dans le fichier d’inventaire. Après l’installation du serveur Web, Ansible vérifie ultérieurement si le serveur Web Apache est démarré et en cours d’exécution.

Modules

Les modules sont des unités de code discrètes utilisées dans les playbooks pour exécuter des commandes sur des hôtes ou des serveurs distants. Chaque module est suivi d’un argument.

Le format de base d’un module est essentiel : la valeur.

- name: Install apache packages 
    yum:   name=httpd  state=present

Dans l’extrait de code YAML ci-dessus, -name et yum sont des modules.

Joue

Un jeu ansible est un script ou une instruction qui définit la tâche à effectuer sur un serveur. Une collection de pièces de théâtre constitue un playbook. En d’autres termes, un playbook est une collection de plusieurs plays, chacun d’entre eux stipulant clairement la tâche à effectuer sur un serveur. Les pièces existent au format YAML.

Variables

Si vous avez une formation en programmation, vous avez probablement utilisé des variables. En gros, une variable représente une valeur. Une variable peut inclure des lettres, des chiffres et des traits de soulignement, mais DOIT toujours commencer par des lettres.

Les variables sont utilisées lorsque les instructions varient d’un système à l’autre. Cela est particulièrement vrai lors de la configuration ou de divers services et fonctionnalités.

Il existe 3 grands types de variables :

  • Variables du playbook
  • Variables de stock
  • Variables spéciales

Dans Ansible, les variables sont d’abord définies à l’aide de la variable k, puis suivies du nom de la variable et de la valeur.

La syntaxe est la suivante :

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

Considérez le code ci-dessous.

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

Dans l’exemple ci-dessus, la variable ici est web_directory et elle demande à ansible de créer un répertoire dans le chemin /var/www/html/.

Faits

Les faits sont des propriétés système collectées par Ansible lorsqu’il exécute un playbook sur un système hôte. Les propriétés incluent le nom d’hôte, la famille du système d’exploitation, le type de processeur et les cœurs de processeur, pour n’en citer que quelques-uns.

Pour avoir un aperçu du nombre de faits disponibles pour l’utilisation, exécutez la commande.

$ ansible localhost -m setup

Comme vous pouvez le voir, un grand nombre de faits ont été affichés par défaut. Vous pouvez affiner davantage les résultats à l’aide du paramètre de filtre comme indiqué.

$ ansible localhost -m setup -a "filter=*ipv4"

Fichiers de configuration

Dans Ansible, un fichier de configuration est un fichier qui contient différents paramètres qui déterminent le fonctionnement d’Ansible. Le fichier de configuration par défaut est le fichier ansible.cfg situé dans le répertoire /etc/ansible/.

Vous pouvez afficher le fichier de configuration en exécutant :

$ cat /etc/ansible/ansible.cfg

Comme vous pouvez l’observer, plusieurs paramètres sont inclus tels que les chemins d’inventaire et de fichiers de bibliothèque, l’utilisateur sudo, les filtres de plugins, les modules, etc. Ces paramètres peuvent être ajustés simplement en les commentant et en modifiant les valeurs qu’ils contiennent.

De plus, vous pouvez avoir plusieurs fichiers de configuration fonctionnant avec Ansible en plus de votre fichier de configuration par défaut.

Résumé

Après avoir examiné les composants de base d’Ansible, nous espérons que vous êtes en mesure de les garder à portée de main et de les choisir au fur et à mesure que nous avançons. Rejoignez-nous sur votre prochain sujet.

Articles connexes: