Ansible (logiciel)

0
Apprendre encore plus Cet article peut être trop technique pour que la plupart des lecteurs le comprennent . ( avril 2022 )Aidez -nous à l’améliorer pour le rendre compréhensible aux non-experts , sans supprimer les détails techniques. (Découvrez comment et quand supprimer ce modèle de message)

Ansible est un outil de provisionnement de logiciels open source , de gestion de la configuration et de Déploiement d’applications permettant l’infrastructure en tant que code . [2] Il fonctionne sur de nombreux systèmes de type Unix et peut configurer à la fois des systèmes de type Unix et Microsoft Windows . Il inclut son propre Langage déclaratif pour décrire la configuration du système . Ansible a été écrit par Michael DeHaan et acquis par Red Hat en 2015. Ansible est Sans agent , se connectant temporairement à distance via SSH ouWindows Remote Management (permettant l’exécution à distance de PowerShell ) pour effectuer ses tâches.

Ansible

Ansible logo.svg
Auteur(s) original(s) Michel De Haan
Développeur(s) Communauté Ansible / Ansible Inc. / Red Hat Inc.
Première version 20 février 2012 ; Il ya 10 ans ( 2012-02-20 )
Version stable 5.0.1 [1] Modifier ceci sur Wikidata / 2 décembre 2021 ; il y a 5 mois ( 2 décembre 2021 )
Dépôt
  • github .com /ansible /ansible .git Modifier ceci sur Wikidata
Écrit en Python , PowerShell , Shell , Rubis
Système opérateur Linux , type Unix , MacOS , Windows
Disponible en Anglais
Taper Gestion de configuration , infrastructure as code (IaC), moteur d’orchestration
Licence Licence publique générale propriétaire / GNU
Site Internet www .ansible .com Modifier ceci sur Wikidata

Histoire

Le terme « ansible » a été inventé par Ursula K. Le Guin dans son roman de 1966 Rocannon’s World [3] et fait référence à des systèmes de communication instantanée fictifs. [4] [5]

L’outil Ansible a été développé par Michael DeHaan, l’auteur de l’application de serveur d’Approvisionnement Cobbler et co-auteur du framework Fedora Unified Network Controller (Func) pour l’administration à distance. [6]

Ansible, Inc. (à l’origine AnsibleWorks, Inc.) était la société fondée en 2013 par Michael DeHaan, Timothy Gerla et Saïd Ziouani pour soutenir et sponsoriser commercialement Ansible. [7] [8] [9] Red Hat a acquis Ansible en octobre 2015. [10] [11]

Ansible est inclus dans la distribution Fedora de Linux, propriété de Red Hat , et est également disponible pour Red Hat Enterprise Linux , CentOS , openSUSE , SUSE Linux Enterprise , Debian , Ubuntu , Scientific Linux et Oracle Linux via Extra Packages for Enterprise Linux (EPEL), ainsi que pour d’autres systèmes d’exploitation. [12]

Architecture

Aperçu

Ansible aide à gérer plusieurs machines en sélectionnant des parties de l’ inventaire d’Ansible stockées dans de simples fichiers texte ASCII. L’inventaire est configurable et l’inventaire de la machine cible peut provenir de sources dynamiques ou de sources basées sur le cloud dans différents formats ( YAML , INI ). [13]

Les données sensibles peuvent être stockées dans des fichiers cryptés à l’aide d’Ansible Vault [14] depuis 2014. [15] Contrairement à d’autres logiciels de gestion de configuration populaires, tels que Chef , Puppet , Salt et CFEngine , Ansible utilise une architecture Sans agent , [16] avec Le logiciel Ansible ne s’exécute pas normalement ou n’est même pas installé sur le nœud contrôlé. [16] Au lieu de cela, Ansible orchestre un nœud en installant et en exécutant temporairement des modules sur le nœud via SSH. Pendant la durée d’une tâche d’orchestration, un processus exécutant le module communique avec la machine de contrôle avec un JSONbasé sur le protocole via son entrée et sa sortie standard. [17] Lorsqu’Ansible ne gère pas un nœud, il ne consomme pas de ressources sur le nœud car aucun démon n’est exécuté ou aucun logiciel n’est installé. [16]

Dépendances

Ansible nécessite que Python soit installé sur toutes les machines de gestion, y compris le gestionnaire de packages pip ainsi que le logiciel de gestion de configuration et ses packages dépendants. Les périphériques réseau gérés ne nécessitent aucune dépendance supplémentaire et sont Sans agent. [18]

Nœud de contrôle

Le nœud de contrôle (master host) est destiné à gérer (orchestrer) les machines cibles (nœuds dits « d’ inventaire », voir ci-dessous). [19] Les nœuds de contrôle ne sont disponibles que pour Linux et similaires ; Les systèmes d’exploitation Windows ne sont pas pris en charge. Plusieurs nœuds de contrôle sont autorisés. [19] Ansible ne nécessite pas une seule machine de contrôle pour l’orchestration [20] , ce qui garantit que la reprise après sinistre est simple. [20] Les nœuds sont gérés par le nœud de contrôle via SSH .

Objectifs de conception

Les objectifs de conception d’Ansible incluent : [17]

  • De nature minimale. Les systèmes de gestion ne doivent pas imposer de dépendances supplémentaires à l’environnement. [16]
  • Cohérent. Avec Ansible, on devrait pouvoir créer des environnements cohérents.
  • Sécurise. Ansible ne déploie pas d’agents sur les nœuds. Seuls OpenSSH et Python sont requis sur les nœuds gérés. [16] [20]
  • Fiable. Lorsqu’il est écrit avec soin, un playbook Ansible peut être Idempotent , pour éviter des effets secondaires inattendus sur les systèmes gérés. [21] Il est possible d’écrire des playbooks qui ne sont pas idempotents.
  • Apprentissage minimal requis. Les playbooks utilisent un langage simple et descriptif basé sur les modèles YAML et Jinja .

Modules

Les modules [22] sont pour la plupart autonomes et peuvent être écrits dans un langage de script standard (tel que Python, Perl, Ruby, Bash, etc.). L’une des propriétés directrices des modules est l’ Idempotence , ce qui signifie que même si une opération est répétée plusieurs fois (par exemple, lors d’une reprise après une panne), elle placera toujours le système dans le même état. [17] [ source non primaire nécessaire ]

Configuration de l’inventaire

L’emplacement des nœuds cibles est spécifié via des listes de configuration d’inventaire ( au format INI ou YAML ) situées à /etc/ansible/hosts(sous Linux). [13] [23] Le fichier de configuration répertorie soit l’adresse IP, soit le nom d’ hôte de chaque nœud accessible par Ansible. De plus, les nœuds peuvent être affectés à des groupes. [13]

Un exemple d’inventaire (format INI) :

192.168.6.1 [serveurs Web] foo.example.com bar.example.com

Ce fichier de configuration spécifie trois nœuds : le premier nœud est spécifié par une adresse IP et les deux derniers nœuds sont spécifiés par des noms d’hôte. De plus, les deux derniers nœuds sont regroupés sous le webserversgroupe.

Ansible peut également utiliser un script d’ inventaire dynamique personnalisé , qui peut extraire dynamiquement des données d’un système différent, [24] et prend en charge des groupes de groupes. [25]

Playbooks

Les playbooks sont des fichiers YAML qui stockent des listes de tâches pour des exécutions répétées [26] [19] sur des nœuds gérés. [19] [27] Chaque Playbook mappe (associe) un groupe d’hôtes à un ensemble de rôles. Chaque rôle est représenté par des appels aux tâches Ansible. [28]

Tour Ansible

Ansible Tower est une API REST , un service Web et une interface Web (application) conçue pour rendre Ansible plus accessible aux personnes possédant un large éventail de compétences informatiques. C’est une plaque tournante pour les tâches d’automatisation. Tower est un produit commercial pris en charge par Red Hat, Inc. mais dérivé du projet en amont AWX, qui est open source depuis septembre 2017. [29] [30] [31] [32]

Il y avait aussi une autre alternative open source à Tower, Semaphore , écrite en Go [33] [34]

Prise en charge de la plateforme

Les machines de contrôle doivent être un hôte Linux/Unix (par exemple BSD , CentOS , Debian , macOS , Red Hat Enterprise Linux , SUSE Linux Enterprise , Ubuntu [12] ) et Python 2.7 ou 3.5 est requis. [18]

Les nœuds gérés, s’ils sont de type Unix, doivent avoir Python 2.4 ou une version ultérieure. Pour les nœuds gérés avec Python 2.5 ou version antérieure, le python-simplejsonpackage est également requis. [35] Depuis la version 1.7, Ansible peut également gérer les nœuds Windows [36] . [35] Dans ce cas, la communication à distance PowerShell native prise en charge par le protocole WS-Management est utilisée à la place de SSH.

Intégration infonuagique

Ansible peut se déployer sur des hôtes bare metal , des machines virtuelles et des environnements cloud, notamment Amazon Web Services , Atomic, Lumen , Cloudscale, CloudStack , DigitalOcean , Dimension Data , Docker , Google Cloud Platform , KVM , Linode , LXC , LXD, Microsoft Azure , OpenStack , Oracle Cloud , OVH , oVirt , Packet, Profitbricks, PubNub , Rackspace , Scaleway ,SmartOS , SoftLayer , Univention , VMware , Webfaction et XenServer . [17] [37]

AnsibleFest

AnsibleFest est une conférence annuelle de la communauté Ansible d’utilisateurs, de contributeurs, etc. [38]

An Emplacement
2014 San Fransisco
2015 Londres
2016 Londres
2016 San Fransisco
2016 Brooklyn
2017 Londres
2017 San Fransisco
2018 Austin, Texas
2019 Atlanta
2020 Virtuel uniquement en raison de la pandémie de COVID-19
2021 Virtuel uniquement en raison de la pandémie de COVID-19

Voir également

  • Portail de logiciels gratuits et open source
  • Comparaison des logiciels de gestion de configuration open source
  • Infrastructure en tant que code (IaC)

Références

  1. ^ https://pypi.org/project/ansible/5.0.1/#history ; date de parution : 2 décembre 2021 ; récupéré: 6 décembre 2021.
  2. ^ Écrivain du personnel. “Aperçu – Comment fonctionne Ansible” . ansible.com . Red Hat , Inc. p. 1 . Consulté le 7 décembre 2016 .
  3. ^ Bernardo, Susan; Murphy, Graham J (2006). Ursula K. Le Guin : une compagne critique . Westport, Connecticut : Greenwood Press. p. 18 . ISBN 978-0-313-02730-7. OCLC 230345464 .
  4. ^ Communauté Ansible . “Foire aux questions” . docs.ansible.com . Documentation ansible. Red Hat , Inc. p. 1 . Consulté le 30 avril 2013 . {{cite web}}: Lien externe dans |author=( aide )
  5. ^ DeHaan, Michael (29 janvier 2014). “Google Groups Post – Projet Ansible” . groupes.google.com . p. 1 . Consulté le 26 avril 2017 .
  6. ^ Maughan, Mike (17 avril 2012). “Une entrevue avec l’auteur Ansible Michael DeHaan” . coloandcloud.com . Maughansem LLC. p. 1. Archivé de l’original le 14 novembre 2012 . Consulté le 5 novembre 2012 .
  7. ^ “À propos d’Ansible” . Ansible, Inc. p. 1. Archivé de l’original le 5 septembre 2015 . Consulté le 8 juillet 2016 .
  8. ^ Recherche Bloomberg. “Ansible, Inc. : informations sur les sociétés privées” . Logiciels et services Internet . Bloomberg LP p. 1 . Consulté le 8 juillet 2016 .
  9. ^ “À propos de l’équipe” . 2015-09-05. Archivé de l’original le 2015-09-05 . Récupéré le 07/04/2021 .
  10. ^ Novet, Jordanie (15 octobre 2015). “Source : Red Hat achète Ansible pour plus de 100 millions de dollars” . venturebeat.com . VentureBeat , Inc. p. 1 . Consulté le 16 octobre 2015 .
  11. ^ Rédacteur (16 octobre 2015). “Red Hat va acquérir Ansible, le leader de l’automatisation informatique et du DevOps” . redhat.com . Red Hat , Inc . Consulté le 16 octobre 2015 .
  12. ^ un b Ulianytskyi, Mykola. “Téléchargement ansible (DEB, RPM, TGZ, TXZ, XZ)” . pkgs.org . Recherche de packages Linux. p. 1 . Consulté le 5 novembre 2012 .
  13. ^ un bc Communauté Ansible . “Inventaire” . docs.ansible.com . Documentation ansible. Red Hat , Inc. p. 1. Archivé de l’original le 6 juillet 2015 . Consulté le 26 avril 2014 . {{cite web}}: Lien externe dans |author=( aide )
  14. ^ « Coffre-fort Ansible — Documentation Ansible » . docs.ansible.com .
  15. ^ “Vault Ansible : un cadre pour chiffrer n’importe quel playbook ou fichier var. · ansible/ansible@427b8dc” . GitHub .
  16. ^ un bcd Les avantages de l’architecture Sans agent” (PDF) . Red Hat , Inc. p. 5.
  17. ^ un bcd Ansible en profondeur” (PDF) . Red Hat , Inc. p. 5.
  18. ^ une communauté Ansible b . “Prise en charge de Python 3” . docs.ansible.com . Documentation ansible. Red Hat , Inc. p. 1 . Consulté le 6 juillet 2017 . {{cite web}}: Lien externe dans |author=( aide )
  19. ^ un bcd ” Concepts Ansible – Documentation Ansible” . docs.ansible.com . Récupéré le 19/11/2021 .
  20. ^ a b c “Guide d’installation – Documentation Ansible” . docs.ansible.com . Récupéré le 30/11/2018 .
  21. ^ “Réaliser des mises à jour continues et un déploiement continu avec zéro temps d’arrêt” (PDF) . Red Hat , Inc. p. 7.
  22. ^ “Index des modules – Documentation Ansible” . docs.ansible.com .
  23. ^ “Travailler avec l’inventaire – Documentation Ansible” . docs.ansible.com . Récupéré le 30/11/2018 .
  24. ^ Communauté Ansible . “Inventaire dynamique” . docs.ansible.com . Documentation ansible. Red Hat , Inc. p. 1 . Consulté le 25 novembre 2016 . {{cite web}}: Lien externe dans |author=( aide )
  25. ^ “Comment construire votre inventaire – Documentation Ansible” . docs.ansible.com .
  26. ^ Communauté Ansible . “Livres de jeu” . docs.ansible.com . Documentation ansible. Red Hat, Inc. p. 1. Archivé de l’original le 6 juillet 2015 . Consulté le 26 avril 2014 . {{cite web}}: Lien externe dans |author=( aide )
  27. ^ “Introduction aux playbooks – Ansible Documentation” . docs.ansible.com . Récupéré le 19/11/2021 .
  28. ^ Communauté Ansible . “Organisation des tâches et des gestionnaires pour un rôle” . docs.ansible.com . Documentation ansible. Red Hat , Inc. p. 1 . Consulté le 25 novembre 2016 . {{cite web}}: Lien externe dans |author=( aide )
  29. ^ Redditors (19 février 2016). “Ansible annonce que Tower sera bientôt Open Source sur AnsibleFest !” . reddit.com . Reddit . p. 1 . Consulté le 20 juillet 2017 .
  30. ^ Écrivain du personnel. “Le projet de tour ouverte” . ansible.com/open-tower . Red Hat , Inc. p. 1 . Consulté le 21 janvier 2017 .
  31. ^ Chapeau, Ansible, Rouge. “FAQ du projet AWX | Ansible.com” . www.ansible.com .
  32. ^ “ansible/awx” . 25 mars 2020 – via GitHub.
  33. ^ Communauté de sémaphore. “API Sémaphore” . ansible-semaphore.github.io . p. 1 . Récupéré le 5 février 2021 .
  34. ^ Communauté de sémaphore. “ansible-sémaphore” . github.com/ansible-semaphore . Castaway Consulting LLC . Récupéré le 5 février 2021 .
  35. ^ une communauté Ansible b . “Mise en route” . docs.ansible.com . Documentation ansible. Red Hat , Inc. p. 1. Archivé de l’original le 6 juillet 2015 . Consulté le 6 février 2014 . {{cite web}}: Lien externe dans |author=( aide )
  36. ^ DeHaan, Michael (6 août 2014). “Ansible 1.7 est sorti – Windows beta et plus encore !” . ansible.com/blog . Le livre de jeu intérieur. Ansible, Inc. p. 1 . Consulté le 7 août 2014 .
  37. ^ Communauté Ansible . “Liste des modules cloud” . docs.ansible.com . Documentation ansible. Red Hat , Inc. p. 1 . Consulté le 28 avril 2017 . {{cite web}}: Lien externe dans |author=( aide )
  38. ^ “AnsibleFest” . Ansible . Red Hat, Inc . Consulté le 4 octobre 2018 .

Liens externes

  • Site officiel Edit this at Wikidata Edit this at Wikidata
You might also like
Leave A Reply

Your email address will not be published.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More