Recherche de site Web

Comprendre les composants de base 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 dans l'utilisation de Ansible pour automatiser. la configuration des systèmes et des applications.

La série sera intitulée « Examen de spécialiste certifié Red Hat en automatisation Ansible (EX407) » et couvre les objectifs d'examen suivants basés sur Red Hat Enterprise Linux 7.5 et Ansible 2.7, que nous aborderons dans cette série Ansible :

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

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

Comprendre les composants principaux d'Ansible

Ansible est une plate-forme d'automatisation gratuite et open source 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 devez effectuer des tâches multiples et répétitives. Ainsi, au lieu de vous connecter à chacun de ces nœuds distants et d'effectuer vos tâches, vous pouvez le faire confortablement depuis un emplacement central et gérer confortablement vos serveurs.

Ceci est avantageux lorsque vous souhaitez maintenir la cohérence dans le 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 généralement préféré car il est facile à utiliser et simple à apprendre.

Pourquoi est-il simple à apprendre, pourriez-vous demander ? 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 avec Ansible, il est important que vous vous familiarisiez avec quelques terminologies de base afin de ne pas vous perdre ou vous perdre à 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 leur nom d'hôte ou de leur adresse 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 : serveurs Web et bases de données. De cette façon, ils peuvent être référencés en fonction de leurs noms de groupe et non de leurs adresses IP. Cela simplifie encore davantage les processus opérationnels.

[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 de grande envergure.

Manuel de jeu

Un playbook est un ensemble de scripts de gestion de configuration qui définissent la manière 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 rédigés au format YAML.

Par exemple, vous pouvez disposer d'un fichier 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 indiqué. Dans le 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 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 clé : valeur.

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

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

Pièces

Un play ansible est un script ou une instruction qui définit la tâche à réaliser sur un serveur. Une collection de pièces de théâtre constitue un playbook. En d’autres termes, un playbook est un ensemble de plusieurs jeux, dont chacun stipule clairement la tâche à effectuer sur un serveur. Les jeux existent au format YAML.

Variables

Si vous avez une formation en programmation, vous avez probablement utilisé des variables. Fondamentalement, 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 de divers services et fonctionnalités.

Il existe 3 principaux types de variables :

  • Variables du manuel de jeu
  • Variables d'inventaire
  • Variables spéciales

Dans Ansible, les variables sont d'abord définies à l'aide des vars 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 de 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, exécutez la commande.

ansible localhost -m setup

Comme vous pouvez le constater, 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 le constater, plusieurs paramètres sont inclus tels que les chemins des fichiers inventaire et bibliothèque, l'utilisateur sudo, les filtres du plugin, les modules, etc. Ces paramètres peuvent être ajustés simplement en les commentant. et en modifiant les valeurs qu'il contient.

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

Résumé

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