Devriez-vous utiliser Ansible pour l’automatisation ?

Comment vous sentiriez-vous si tout ce dont vous aviez besoin était d'appuyer sur un bouton et que tous vos systèmes étaient à jour, tous les packages nécessaires installés et prêts à fonctionner ? Cela semble fantastique, n'est-ce pas ?

Dans le monde informatique moderne, les ingénieurs DevOps font de ce rêve une réalité. Nous avons maintenant des outils tels qu'Ansible, qui rend les processus de gestion informatique plus gérables et plus rapides en quelques clics réduisant les erreurs et la saisie manuelle d'un humain.

Lisez la suite pour apprendre tout ce que vous devez savoir sur Ansible, y compris un bref aperçu de son utilisation.

Qu'est-ce qu'Ansible ?

Ansible est un puissant moteur d'automatisation open source. Il est multiplateforme, permettant aux développeurs de gérer les appareils à partir de n'importe quel système d'exploitation, y compris Windows, macOS et Linux.

Ansible propose une gamme de fonctionnalités : gestion de la configuration, provisionnement du cloud pour le déploiement d'applications, mises à jour du système, automatisation de la sécurité, livraison continue et bien d'autres. Il s'agit d'un outil léger qui ne nécessite pas de logiciels ou de packages supplémentaires pour s'exécuter, ce qui le rend facile à déployer.

Fonctionnalités principales d'Ansible

Voici quelques-unes des fonctionnalités offertes par Ansible en tant qu'outil d'automatisation.

Déploiement d'applications

Ansible permet aux développeurs de déployer rapidement et facilement des applications sur des serveurs. Il élimine le besoin d'écrire du code personnalisé ou d'effectuer la gestion des packages manuellement. Au lieu de cela, vous définissez les tâches requises pour qu'une application s'exécute et les exécute à distance sur le système cible au lieu d'utiliser des playbooks Ansible. Vous pouvez envoyer un seul Playbook dans plusieurs appareils simultanément et exécuter l'application sur de nombreux serveurs.

Approvisionnement en nuage

L'approvisionnement en cloud est la méthode utilisant l'installation, la configuration et la gestion des ressources de cloud computing.

Ansible vous permet d'automatiser les tâches de provisionnement du cloud, notamment la configuration de l'infrastructure, la configuration des hôtes, la gestion des interfaces réseau, la gestion des pare-feu et des utilisateurs sur les hôtes distants.

Gestion de la configuration

La gestion de la configuration est une autre fonctionnalité d'Ansible. À l'aide de playbooks Ansible ou de commandes ad hoc, vous pouvez rapidement mettre vos systèmes en service en quelques commandes. Étant donné qu'Ansible utilise YAML comme langage de configuration par défaut, il est facile de créer des tâches dans un format lisible par l'homme et de les exécuter sur des machines distantes.

Par exemple, si vous avez un serveur fraîchement provisionné, vous pouvez utiliser Ansible pour mettre à jour le système, installer les packages nécessaires et démarrer les services sur le serveur.

Automatisation de la sécurité

Ansible est utile dans les tâches d'automatisation de la sécurité. Par exemple, à l'aide de quelques commandes Ansible, vous pouvez configurer des règles de pare-feu personnalisées, rechercher les logiciels malveillants, nettoyer votre système à l'aide d'outils personnalisés, etc. Il vous permet également de surveiller la santé de votre système et d'effectuer rapidement des sauvegardes de votre système en cas de panne.

Il utilise également SSH pour authentifier les utilisateurs et exécuter des commandes sur des hôtes distants, ce qui le rend très sûr à utiliser.

En relation: Pourquoi la sécurité logicielle est une compétence que tous les programmeurs devraient avoir

Architecture Ansible

Apprenons-en plus sur les pièces qui composent Ansible Engine.

Inventaires

Ansible gère les hôtes distants à l'aide d'inventaires. Un inventaire est un simple fichier texte qui contient les adresses IP et les noms d'hôtes des machines distantes. Les hôtes du fichier d'inventaire peuvent être organisés en différents groupes tels que les serveurs Web, les bases de données, les sauvegardes, etc. L'organisation des hôtes en groupes aide les utilisateurs à exécuter des commandes sur un groupe spécifique de machines.

Remarque : vous devez remplir le fichier d'inventaire Ansible avec au moins un hôte avant d'exécuter des tâches.

Livres de jeu

Les playbooks Ansible sont de simples fichiers texte écrits en YAML (YAML Ain't Markup Language). Ils contiennent des instructions ou des commandes à exécuter sur un hôte distant pour effectuer une tâche spécifique.

Étant donné que les playbooks Ansible sont écrits en YAML, ils se présentent sous la forme d'un format lisible par l'homme. Cela le rend très facile à utiliser et à comprendre Ansible car les utilisateurs n'ont pas besoin de maîtriser une nouvelle syntaxe. Chaque playbook comprend au moins une ou plusieurs tâches exécutées sur tous ou sur des hôtes spécifiques.

En rapport:

Modules

Ansible fournit aux utilisateurs des modules. Les modules sont des commandes qui aident à gérer un hôte distant à partir du nœud de contrôle. Ces modules permettent à Ansible de gérer les utilisateurs, d'installer et de désinstaller des packages, de mettre à jour des systèmes, etc. Ils sont exécutés dans Playbooks pour des tâches spécifiques selon les besoins. Ansible fournit plus de 4600 modules. Découvrez tous les modules Ansible.

Plugins

L'architecture Ansible permet des plugins personnalisés. Ils aident à étendre ou à améliorer les fonctionnalités de base du moteur Ansible. Bien qu'il soit livré avec plusieurs plugins par défaut, vous pouvez également créer des plugins personnalisés pour répondre à vos besoins.

API

Ansible étend les fonctionnalités en fournissant aux utilisateurs divers points de terminaison d'API pour le débogage, l'exécution de commandes, les rappels, etc.

Lire la suite : Que signifie l'API ? Exemples d'utilisation des API

Premiers pas avec Ansible

Ansible est facile et rapide à configurer et à utiliser. Cette section montrera comment installer Ansible sur une machine hôte, configurer des hôtes distants et effectuer des tâches d'automatisation de base.

Ansible est multiplateforme et donc pris en charge par les principaux systèmes d'exploitation. Pour plus de simplicité, ce guide traitera de l'installation d'Ansible sur une distribution Linux basée sur Debian. Vérifiez le processus d'installation d'Ansible pour les autres systèmes d'exploitation.

Commencez par éditer le fichier /etc/apt/sources.list

 sudo vim /etc/apt/sources.list

Dans le fichier, ajoutez les entrées suivantes :

 deb http: // ppa.launchpad.net/ansible/ansible/ubuntu trusty main

L'entrée ci-dessus ajoutera Ubuntu PPA aux référentiels Debian vous permettant d'installer Ansible.

Ensuite, exécutez les commandes ci-dessous :

 $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible -y

La première commande ajoute les clés requises.

Les commandes suivantes mettent à jour les référentiels de logiciels et installent enfin Ansible.

Maintenant que vous avez installé Ansible sur votre système, continuez.

Création d'un inventaire

La première étape avant d'effectuer des tâches d'automatisation Ansible consiste à configurer un fichier d'inventaire hôte.

Le fichier d'inventaire par défaut se trouve dans /etc/ansible/hosts . À l'aide de votre éditeur de texte préféré, ajoutez les adresses IP des hôtes distants que vous souhaitez automatiser.

 $ sudo vim /etc/apt/hosts

Enregistrez le fichier et fermez.

Créer un livre de jeu simple

Les playbooks Ansible permettent aux utilisateurs d'automatiser les tâches en définissant les commandes qui sont exécutées sur l'hôte distant.

Vous allez créer un playbook Ansible simple qui installe le serveur Web Apache, créer une règle de pare-feu pour autoriser Apache et redémarrer le service

Ansible utilise YAML comme langage de configuration par défaut pour ses playbooks.

Créez un fichier YAML à l'aide de la commande tactile comme :

 $ touch first-playbook.yaml

À l'aide de votre éditeur de texte, ajoutez les entrées comme indiqué dans l'exemple de playbook ci-dessous :

 $ vim first-ansible-playbook.yaml
 ---
- hosts: all
become: true
tasks:
- name: Update apt packages
apt:
state: latest
update_cache: yes
- name: Install Apache
apt:
name: apache2
state: latest
- name: Install UFW Firewall
apt:
name: ufw
state: latest
- name: Allow HTTP ufw
ufw:
state: enabled
rule: allow
port: "80"
proto: tcp
- name: Restart Apache
service:
name: apache2
state: restarted

Dans le playbook ci-dessus, commencez par spécifier les hôtes sur lesquels vous souhaitez exécuter le playbook. Comme il n'y a qu'un seul hôte dans le fichier d'inventaire, définissez les hôtes sur tous.

Ensuite, définissez l'instruction get, qui permet aux tâches du playbook de s'exécuter en tant que root.

Les lignes précédentes définissent les tâches à effectuer sur l'hôte distant. Ils incluent un nom qui décrit les fonctions et les tâches réelles à exécuter sur l'hôte.

Le premier indique à Ansible de mettre à jour le cache du référentiel ; cela correspond à la commande :

 $ sudo apt-get update

L'instruction suivante installe la dernière version du serveur Web Apache.

Vient ensuite la tâche d'installer le pare-feu UFW. Cela nécessite l'activation et l'autorisation du port 80, qu'Apache utilise sur le protocole TCP.

Enfin, la dernière instruction redémarre le serveur Web Apache.

Exécuter des playbooks Ansible

Pour exécuter le playbook Ansible, nous devons utiliser la commande ansible-playbook , fournie avec Ansible lors de l'installation.

Pour exécuter le fichier first-playbook.yaml, utilisez la commande :

 $ ansible-playbook --user=ubuntu first-playbook.yaml

Dans la commande ci-dessus, l'option –user est transmise, qui spécifie l'utilisateur sur l'hôte distant.

REMARQUE : assurez-vous que les clés SSH sont installées sur l'hôte distant.

Une fois que vous avez exécuté la commande ci-dessus, vous obtiendrez une sortie comme indiqué.

Ce qui précède montre que toutes les commandes ont été exécutées avec succès sur l'hôte distant.

Vérifier les tâches

Pour vérifier que les tâches du playbook ont ​​été exécutées avec succès, ouvrez votre navigateur et accédez à l'adresse IP de l'hôte distant.

Si les commandes ont été exécutées et que le serveur Apache est en cours d'exécution, vous devriez voir la page par défaut d'Apache Ubuntu comme suit :

Devriez-vous utiliser Ansible ?

En conclusion, il est clair qu'Ansible est un outil puissant. Sa flexibilité, ses fonctionnalités et ses capacités en font un outil prometteur pour les tâches d'automatisation actuelles et futures. Si vous êtes un ingénieur DevOps cherchant à automatiser vos tâches informatiques rapidement et facilement, Ansible jouera un rôle important dans votre parcours.