Vous gérez plusieurs serveurs et en avez marre de perdre du temps dans des tâches répétitives ? Ansible devrait vous plaire !
Ansible est une solution qui permet de faire principalement du déploiement automatisé et de la configuration automatisée. Ansible tourne avec Python, Powershell et Ruby et sert à automatiser la gestion des serveurs… Génial, non ?
Dans une infrastructure avec des dizaines et des dizaines de serveurs (pas nécessairement reliés entre eux), les serveurs sont souvent similaires. On retrouve bien souvent un serveur http (nginx, apache,…) et une base de données (PostgreSQLMoteur de gestion de base de données libre de droit., MySQLMoteur de gestion de base de données., MariaDB,…). Tout serveur a donc une « base » commune.
Malgré le fait que tous les serveurs aient une base commune, il faudra se connecter à la main à chacune de ces VM pour y effectuer des actions. Ce qui est assez long, ennuyeux et peut surtout être source d'erreurs !
Ansible a justement été créé pour automatiser ces tâches et vous faire gagner du temps !
Ansible s'installe sur un serveur simplement avec la commande « apt install ansible ». A l'intérieur d'Ansible, il existe plusieurs méthodes. De notre côté, on préconise d'avoir à côté un serveur git, pour versionner vos scripts de déploiement automatisé.
Ansible, ce n'est ni plus ni moins qu'une commande qu'on lance, qui a en paramètres l'ensemble des serveurs. Tous ces serveurs sont joignables normalement en SSH (sauf pour Windows).
L'étape la plus longue du process se situe ici ! Il faut constituer à la main un fichier répertoriant vos différents serveurs. On doit :
Une fois le fichier créé, on le pousse à Ansible.
Généralement, (comme on adore avoir une seule source de données) on met ce fichier également dans notre Git pour suivre au fur et à mesure les ajouts et suppressions des serveurs.
Vous n'avez ensuite plus qu'à écrire les scripts que vous souhaitez exécuter en YAML, et à les transmettre à Ansible. Exemple : installer un Apache sur une grappe de serveurs, etc.
name: Check if apache2 is installed
command: dpkg-query -W apache2
register: package\_check\_deb
failed\_when: package\_check\_deb.rc \> 1
changed\_when: package\_check\_deb.rc == 1
name: Download apache2
get_url:
url={{ package\_url }};
dest=/tmp/apache2
when: package_check_deb.rc == 1
name: Install apache2
apt: deb=/tmp/apache2
sudo: true
when: package\_check\_deb.rc == 1
On lance la procédure, puis tout se fait tout seul et ensuite, Ansible nous affiche les résultats.
ansible-playbook servers-group install_apache2.yml
« servers-group » étant soit :
A chaque script exécuté, Ansible remonte des informations :
Pour faire du CI/CDProcessus d'automatisation : Intégration Continue et Déploiement Continu, on conseille de coupler Ansible avec des outils comme Jenkins ou Gitlab. Cela vous permettra de pouvoir piloter simplement les serveurs via des interfaces ! Et depuis peu, pour ceux qui veulent rester chez Ansible, vous pouvez utiliser Ansible Tower (qui expose en APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. Rest, les jobs Ansible).
Ansible dispose de plein de points forts :
J'allais oublier, il faut savoir se servir de Linux et/ou Windows en fonction de votre infrastructure.
C'est un grand OUI ! Pour l'avoir testé sur plusieurs projets, Ansible est juste génial ! Pour exemple, nous avions un build qui durait initialement plus d'une heure. En parallélisant les différents scripts avec Ansible, on a réussi à le faire descendre à moins de 30 minutes.
De plus, il n'y a pas de difficulté particulière pour installer et configurer Ansible, la seule difficulté est finalement de bien faire ses scripts.
Pour plus d'informations sur Ansible, je vous suggère d'aller voir la documentation Ansible et de demander conseil à la super communauté !
Le DevOps, c’est quoi et comment se lancer ? On vous donne notre définition du DevOps, nos outils préférés et nos conseils pour réussir un projet en DevOps
Dans cet article nous allons voir comment aligner un texte à droite avec PdfBox.
Comment rendre son site web ou son application web accessible en 2021 ?