Cette page décrit comment installer Ansible sur différentes plateformes. Ansible est un outil d'automatisation sans agent qui gère par défaut les machines via le protocole SSH. Une fois installé, Ansible n'ajoute pas de base de données, et il n'y aura pas de démons à démarrer ou à maintenir en fonctionnement. Il suffit de l'installer sur une seule machine (qui peut facilement être un ordinateur portable) pour qu'il puisse gérer un parc entier de machines distantes à partir de ce point central. Lorsqu'Ansible gère des machines distantes, il ne laisse pas de logiciel installé ou en cours d'exécution sur celles-ci, il n'y a donc pas vraiment de question sur la façon de mettre à niveau Ansible lors du passage à une nouvelle version.

  • Prérequis

    • Exigences relatives au nœud de contrôle
    • Exigences relatives aux noeuds gérés
  • Sélection d'une version d'Ansible à installer
  • Installation d'Ansible sur RHEL, CentOS ou Fedora
  • Installation d'Ansible sur Ubuntu
  • Installation d'Ansible sur Debian
  • Installation d'Ansible sur Gentoo avec portage
  • Installation d'Ansible sur FreeBSD
  • Installation d'Ansible sur macOS
  • Installation d'Ansible sur Solaris
  • Installation d'Ansible sur Arch Linux
  • Installation d'Ansible sur Slackware Linux
  • Installation d'Ansible sur Clear Linux
  • Installation d'Ansible avec pip

    • Mise à niveau d'Ansible de la version 2.9 et plus ancienne à la version 2.10 ou plus récente.
    • Installation de la version de développement de ansible-base
    • Environnements virtuels
  • Exécution de ansible-base à partir des sources (devel)
  • Trouver les tarballs des versions marquées
  • Complétion de l'interpréteur de commandes Ansible

    • Installation de argcomplete sur RHEL, CentOS ou Fedora
    • Installation de argcomplete avec apt
    • Installation de argcomplete avec pip
    • Configuration de argcomplete

      • Globalement
      • Par commande
    • argcomplete avec zsh ou tcsh
  • ansible-base sur GitHub

Prérequis

Vous installez Ansible sur un nœud de contrôle, qui utilise ensuite SSH (par défaut) pour communiquer avec vos nœuds gérés (ces périphériques finaux que vous voulez automatiser).

Configuration requise pour le nœud de contrôle

Actuellement, Ansible peut être exécuté à partir de toute machine sur laquelle est installé Python 2 (version 2.7) ou Python 3 (versions 3.5 et supérieures). Ansible 2.11 fera de Python 3.8 une dépendance douce pour le nœud de contrôle, mais fonctionnera avec les exigences susmentionnées. Ansible 2.12 exigera Python 3.8 ou plus récent pour fonctionner sur le nœud de contrôle. À partir d'Ansible 2.11, le projet ne sera empaqueté que pour Python 3.8 et plus récent. Cela inclut Red Hat, Debian, CentOS, macOS, tous les BSD, etc. Windows n'est pas pris en charge pour le nœud de contrôle, lisez plus à ce sujet dans la section le billet de blog de Matt Davis.

Lorsque vous choisissez un nœud de contrôle, gardez à l'esprit que tout système de gestion bénéficie d'être exécuté à proximité des machines gérées. Si vous exécutez Ansible dans un cloud, envisagez de l'exécuter depuis une machine à l'intérieur de ce cloud. Dans la plupart des cas, cela fonctionnera mieux que sur l'Internet ouvert.

Note

macOS par défaut est configuré pour un petit nombre de poignées de fichiers, donc si vous voulez utiliser 15 fourches ou plus, vous devrez augmenter l'ulimit avec. sudo launchctl limit maxfiles unlimited. Cette commande peut également corriger toute erreur "Too many open files".

Avertissement

Ansible 2.11 fera de Python 3.8 une dépendance molle pour le nœud de contrôle, mais fonctionnera avec les exigences susmentionnées. Ansible 2.12 exigera Python 3.8 ou plus récent pour fonctionner sur le nœud de contrôle. À partir d'Ansible 2.11, le projet sera uniquement packagé pour Python 3.8 et plus récent.

Avertissement

Veuillez noter que certains modules et plugins ont des exigences supplémentaires. Pour les modules, ceux-ci doivent être satisfaits sur la machine 'cible' (le nœud géré) et doivent être listés dans les docs spécifiques au module.

Exigences relatives au nœud géré

Sur les nœuds gérés, vous avez besoin d'un moyen de communiquer, qui est normalement SSH. Par défaut, cela utilise SFTP. Si cela n'est pas disponible, vous pouvez basculer vers SCP dans. ansible.cfg. Vous avez également besoin de Python 2 (version 2.6 ou ultérieure) ou de Python 3 (version 3.5 ou ultérieure).

Note

  • Si SELinux est activé sur les nœuds distants, vous voudrez également installer libselinux-python sur eux avant d'utiliser toute fonction liée à la copie/au fichier/au modèle dans Ansible. Vous pouvez utiliser la fonction module yum ou module dnf dans Ansible pour installer ce paquet sur des systèmes distants qui ne l'ont pas.
  • Par défaut, avant que le premier module Python d'un playbook ne s'exécute sur un hôte, Ansible tente de découvrir un interpréteur Python approprié sur cet hôte. Vous pouvez remplacer le comportement de découverte en définissant l'attribut ansible_python_interpreter variable d'inventaire à un interpréteur spécifique, et d'autres façons. Voir Découverte de l'interpréteur pour plus de détails.
  • Ansible's module brut et le module module de script ne dépendent pas d'une installation de Python côté client pour fonctionner. Techniquement, vous pouvez utiliser Ansible pour installer une version compatible de Python en utilisant la commande module brut, ce qui vous permet ensuite d'utiliser tout le reste. Par exemple, si vous devez amorcer Python 2 sur un système basé sur RHEL, vous pouvez l'installer comme suit :

    $ ansible myhost --become -m raw -a "yum install -y python2"

Sélection d'une version Ansible à installer

Le choix de la version Ansible à installer dépend de vos besoins particuliers. Vous pouvez choisir l'une des méthodes suivantes pour installer Ansible :

  • Installer la dernière version avec le gestionnaire de paquets de votre système d'exploitation (pour Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian ou Ubuntu).
  • Installez avec pip (le gestionnaire de paquets Python).
  • Installez ansible-base à partir des sources pour accéder au développement (devel) pour développer ou tester les dernières fonctionnalités.

Note

Vous ne devez exécuter que ansible-base à partir de devel si vous modifiez ansible-baseou essayez des fonctionnalités en cours de développement. C'est une source de code qui évolue rapidement et qui peut devenir instable à tout moment.

Ansible crée de nouvelles versions deux à trois fois par an. En raison de ce cycle de publication court, les bugs mineurs seront généralement corrigés dans la prochaine version plutôt que de maintenir des backports sur la branche stable. Les bugs majeurs auront toujours des versions de maintenance si nécessaire, bien que celles-ci soient peu fréquentes.

Installer Ansible sur RHEL, CentOS ou Fedora

Sur Fedora :

$ sudo dnf install ansible

Sur RHEL :

$ sudo yum install ansible

Sur CentOS :

$ sudo yum install epel-release
$ sudo yum install ansible

Les RPMs pour RHEL 7 et RHEL 8 sont disponibles à partir de la page dépôt d'Ansible Engine.

Pour activer le dépôt d'Ansible Engine pour RHEL 8, exécutez la commande suivante :

$ sudo subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms

Pour activer le référentiel Ansible Engine pour RHEL 7, exécutez la commande suivante :

$ sudo subscription-manager repos --enable rhel-7-server-ansible-2.9-rpms

Les RPM pour les versions actuellement prises en charge de RHEL et CentOS sont également disponibles à partir de . EPEL.

Note

Ansible 2.10 pour RHEL n'étant pas disponible pour le moment, continuez à utiliser Ansible 2.9.

Ansible peut gérer les anciens systèmes d'exploitation qui contiennent Python 2.6 ou plus.

Installation d'Ansible sur Ubuntu

Des builds Ubuntu sont disponibles dans un PPA ici.

Pour configurer le PPA sur votre machine et installer Ansible, exécutez ces commandes :

$ sudoapt update
$ sudoaptinstall software-properties-common
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
$ sudoaptinstall ansible

Note

Sur les anciennes distributions Ubuntu, "software-properties-common" est appelé "python-software-properties". Vous pouvez vouloir utiliser apt-get au lieu de apt dans les anciennes versions. De plus, sachez que seules les distributions les plus récentes (en d'autres termes, 18.04, 18.10, etc.) disposent d'un paramètre -u ou --update donc ajustez votre script en conséquence.

Les paquets Debian/Ubuntu peuvent également être construits à partir de l'extraction des sources, exécutez :

$ make deb

Vous pouvez également souhaiter exécuter à partir de la source pour obtenir la branche de développement, ce qui est couvert ci-dessous.

Installation d'Ansible sur Debian

Les utilisateurs de Debian peuvent tirer parti de la même source que le PPA d'Ubuntu.

Ajoutez la ligne suivante à /etc/apt/sources.list:

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

Exécutez ensuite ces commandes :

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

Note

Cette méthode a été vérifiée avec les sources Trusty dans Debian Jessie et Stretch mais peut ne pas être prise en charge dans les versions antérieures. Vous pouvez vouloir utiliser apt-get au lieu de apt dans les anciennes versions.

Installation d'Ansible sur Gentoo avec portage.

$ emerge -av app-admin/ansible

Pour installer la version la plus récente, vous devrez peut-être démasquer le paquet Ansible avant de l'émerger :

$ echo'app-admin/ansible'>> /etc/portage/package.accept_keywords

Installation d'Ansible sur FreeBSD

Bien qu'Ansible fonctionne avec les versions 2 et 3 de Python, FreeBSD a des paquets différents pour chaque version de Python. Donc, pour installer, vous pouvez utiliser :

$ sudo pkg install py27-ansible

ou :

$ sudo pkg install py36-ansible

Vous pouvez également souhaiter installer à partir des ports, exécutez :

$ sudomake -C /usr/ports/sysutils/ansible install

Vous pouvez également choisir une version spécifique, par exemple ansible25.

Les anciennes versions de FreeBSD fonctionnaient avec quelque chose comme ceci (substituez à votre choix de gestionnaire de paquets) :

$ sudo pkg install ansible

Installation d'Ansible sur macOS

La façon préférée d'installer Ansible sur un Mac est avec . pip.

Les instructions peuvent être trouvées dans Installation d'Ansible avec pip. Si vous exécutez macOS version 10.12 ou plus ancienne, alors vous devez mettre à niveau vers la dernière pip pour vous connecter à l'index des paquets Python de manière sécurisée. Il convient de noter que pip doit être exécuté en tant que module sous macOS, et que le module lié pip liées vous montreront comment le faire.

Note

Si vous avez installé Ansible 2.9 ou une version plus ancienne, vous devez utiliser la fonction pip uninstall ansible d'abord pour supprimer les anciennes versions d'Ansible avant de le réinstaller.

Si vous effectuez une installation sur macOS Mavericks (10.9), vous pouvez rencontrer du bruit provenant de votre compilateur. Une solution de contournement consiste à faire ce qui suit :

$ CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install --user ansible

Installation d'Ansible sur Solaris

Ansible est disponible pour Solaris en tant que paquet SysV de OpenCSW.

# pkgadd -d http://get.opencsw.org/now# /opt/csw/bin/pkgutil -i ansible

Installation d'Ansible sur Arch Linux

Ansible est disponible dans le dépôt communautaire :

$ pacman -S ansible

L'AUR dispose d'un PKGBUILD pour tirer directement de GitHub, appelé... ansible-git.

Voir aussi le Ansible sur la page ArchWiki.

Installation d'Ansible sur Slackware Linux

Le script de construction d'Ansible est disponible dans la section SlackBuilds.org dépôt. Peut être construit et installé en utilisant sbopkg.

Créer une file d'attente avec Ansible et toutes les dépendances :

# sqg -p ansible

Construire et installer des paquets à partir d'un fichier queue créé (répondre à Q pour savoir si sbopkg doit utiliser queue ou paquet) :

# sbopkg -k -i ansible

Installation d'Ansible sur Clear Linux

Ansible et ses dépendances sont disponibles dans le cadre du bundle de gestion d'hôte sysadmin :

$ sudo swupd bundle-add sysadmin-hostmgmt

La mise à jour du logiciel sera gérée par l'outil swupd :

$ sudo swupd update

Installation d'Ansible avec pip

Ansible peut être installé avec pip, le gestionnaire de paquets Python. Si pip n'est pas déjà disponible sur votre système de Python, exécutez les commandes suivantes pour l'installer :

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py --user

Note

Si vous avez Ansible 2.9 ou plus anciennement installé, vous devez utiliser la commande pip uninstall ansible d'abord pour supprimer les anciennes versions d'Ansible avant de le réinstaller.

Installez ensuite Ansible 1 :

$ python -m pip install --user ansible

Conseil

Si c'est la première fois que vous installez des paquets avec pip, vous devrez peut-être effectuer une configuration supplémentaire avant de pouvoir exécuter Ansible. Consultez la documentation Python sur l'installation sur le site de l'utilisateur pour plus d'informations.

Afin d'utiliser le paramiko le plugin de connexion ou les modules qui nécessitent paramiko, installez le module requis 2 :

$ python -m pip install --user paramiko

Si vous souhaitez installer Ansible de manière globale, exécutez les commandes suivantes :

$ sudo python get-pip.py
$ sudo python -m pip install ansible

Note

Exécution de pip avec sudo apportera des changements globaux au système. Depuis pip ne se coordonne pas avec les gestionnaires de paquets du système, il pourrait apporter des modifications à votre système qui le laisserait dans un état incohérent ou non fonctionnel. Cela est particulièrement vrai pour macOS. Installer avec --user est recommandée, sauf si vous comprenez pleinement les implications de la modification des fichiers globaux du système.

Note

Les anciennes versions de pip par défaut http://pypi.python.org/simple ce qui ne fonctionne plus. Veuillez vous assurer que vous avez la dernière version de pip avant d'installer Ansible. Si vous avez une version plus ancienne de pip installée, vous pouvez la mettre à niveau en suivant les instructions de mise à niveau de pip. .

Mise à niveau d'Ansible de la version 2.9 et plus ancienne à la version 2.10 ou plus récente.

À partir de la version 2.10, Ansible est composé de deux paquets. Vous devez d'abord désinstaller l'ancienne version d'Ansible (2.9 ou antérieure) avant de procéder à la mise à niveau. Si vous ne désinstallez pas l'ancienne version d'Ansible, vous verrez le message suivant, et aucune modification ne sera effectuée :

Cannot install ansible-base with a pre-existing ansible==2.x installation.

Installing ansible-base with ansible-2.9 or older currently installed with
pip is known to cause problems. Please uninstall ansible and install the new
version:

pip uninstall ansible
pip install ansible-base

...

Comme l'explique le message, pour effectuer une mise à niveau, vous devez d'abord supprimer la version d'Ansible installée, puis l'installer à la dernière version.

$ pip uninstall ansible
$ pip install ansible

L'installation de la version de développement de ansible-base

Dans Ansible 2.10 et les versions ultérieures, la version de développement de ansible-base

. dépôt ansible/ansible contient le code des fonctionnalités et fonctions de base, telles que la copie du code du module vers les nœuds gérés. Ce code est également connu sous le nom de ansible-base.

Note

Vous ne devez exécuter que ansible-base à partir de devel si vous modifiez ansible-base ou essayez des fonctionnalités en cours de développement. C'est une source de code qui évolue rapidement et qui peut devenir instable à tout moment.

Note

Si vous avez installé Ansible 2.9 ou une version plus ancienne, vous devez utiliser la fonction pip uninstall ansible d'abord pour supprimer les anciennes versions d'Ansible avant de le réinstaller.

Vous pouvez installer la version de développement de ansible-base directement à partir de GitHub avec pip.

$ python -m pip install --user https://github.com/ansible/ansible/archive/devel.tar.gz

Remplacer devel dans l'URL mentionnée ci-dessus, par toute autre branche ou balise sur GitHub pour installer les anciennes versions d'Ansible (antérieures à ansible-base 2.10.) Ceci installe la totalité d'Ansible.

$ python -m pip install --user https://github.com/ansible/ansible/archive/stable-2.9.tar.gz

Voir Exécution de ansible-base à partir des sources (devel). pour les instructions sur la façon d'exécuter ansible-base directement à partir de la source, sans la nécessité d'une installation.

Environnements virtuels

Note

Si vous avez installé Ansible 2.9 ou une version plus ancienne, vous devez utiliser la fonction pip uninstall ansible d'abord pour supprimer les anciennes versions d'Ansible avant de le réinstaller.

Ansible peut également être installé à l'intérieur d'une nouvelle installation ou d'une installation existante. virtualenv:

$ python -m virtualenv ansible  # Create a virtualenv if one does not already exist
$ source ansible/bin/activate   # Activate the virtual environment
$ python -m pip install ansible

Exécution de ansible-base à partir de la source (devel)

Dans Ansible 2.10 et les versions ultérieures, l'option ansible/ansible repository contient le code des fonctionnalités et fonctions de base, telles que la copie du code du module vers les nœuds gérés. Ce code est également connu sous le nom de ansible-base.

Note

Vous ne devez exécuter que ansible-base à partir de devel si vous modifiez ansible-base ou essayez des fonctionnalités en cours de développement. C'est une source de code qui évolue rapidement et qui peut devenir instable à tout moment.

ansible-base est facile à exécuter à partir de la source. Vous n'avez pas besoin de root pour l'utiliser et il n'y a pas de logiciel à installer. Aucun démon ou configuration de base de données n'est nécessaire.

Note

Si vous voulez utiliser Ansible Tower comme nœud de contrôle, n'utilisez pas une installation source d'Ansible. Veuillez utiliser un gestionnaire de paquets d'OS (comme apt ou yum) ou pip pour installer une version stable.

Pour installer à partir des sources, clonez le ansible-base dépôt git :

$ git clone https://github.com/ansible/ansible.git
$ cd ./ansible

Une fois git a cloné le dépôt ansible-base dépôt, configurez l'environnement Ansible :

En utilisant Bash :

$ source ./hacking/env-setup

Utilisation de Fish :

$ source ./hacking/env-setup.fish

Si vous voulez supprimer les avertissements/erreurs parasites, utilisez :

$ source ./hacking/env-setup -q

Si vous n'avez pas pip installé dans votre version de Python, installez-le :

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py --user

Ansible utilise également les modules Python suivants qui doivent être installés 1 :

$ python -m pip install --user -r ./requirements.txt

Pour mettre à jour ansible-base checkouts, utilisez pull-with-rebase afin que toute modification locale soit rejouée.

$ git pull --rebase
$ git pull --rebase #same as above
$ git submodule update --init --recursive

Une fois que vous aurez exécuté le script env-setup, vous serez exécuté à partir des checkouts et le fichier d'inventaire par défaut sera le suivant . /etc/ansible/hosts. Vous pouvez éventuellement spécifier un fichier d'inventaire (voir Comment construire votre inventaire) autre que /etc/ansible/hosts:

$ echo "127.0.0.1" > ~/ansible_hosts
$ export ANSIBLE_INVENTORY=~/ansible_hosts

Vous pouvez en savoir plus sur le fichier d'inventaire à l'adresse suivante Comment construire votre inventaire.

Maintenant, testons les choses avec une commande ping :

$ ansible all -m ping --ask-pass

Vous pouvez également utiliser "sudo make install".

Trouver des tarballs de versions balisées

Vous empaquetez Ansible ou vous voulez construire vous-même un paquet local, mais vous ne voulez pas faire un checkout git ? Des tarballs de releases sont disponibles à partir de pypi comme https://pypi.python.org/packages/source/a/ansible/ansible-{{VERSION}}.tar.gz. Vous pouvez faire de VERSION une variable dans votre système de gestion de paquets que vous mettez à jour en un seul endroit chaque fois que vous empaquetez une nouvelle version. Alternativement, vous pouvez télécharger https://pypi.python.org/project/ansible pour obtenir la dernière version stable.

Note

Si vous créez votre propre paquetage Ansible, vous devez également télécharger ou empaqueter... ansible-base dans le cadre de votre paquetage Ansible. Vous pouvez le télécharger en tant que https://pypi.python.org/packages/source/a/ansible-base/ansible-base-{{VERSION}}.tar.gz.

Ces versions sont également marquées dans le dépôt git avec la version de la release.

Complétion de l'interpréteur de commandes Ansible.

À partir d'Ansible 2.9, la complétion de l'interpréteur de commandes des utilitaires de la ligne de commande Ansible est disponible et fournie par le biais d'une dépendance optionnelle appelée... argcomplete. argcomplete supporte bash, et a un support limité pour zsh et tcsh.

Vous pouvez installer python-argcomplete à partir d'EPEL sur les distributions basées sur Red Hat Enterprise, et ou à partir des dépôts standard de l'OS pour de nombreuses autres distributions.

Pour plus d'informations sur l'installation et la configuration, consultez le documentation argcomplete.

Installation de argcomplete sur RHEL, CentOS ou Fedora

Sur Fedora :

$ sudo dnf install python-argcomplete

Sur RHEL et CentOS :

$ sudo yum install epel-release
$ sudo yum install python-argcomplete

Installation de argcomplete avec apt

$ sudo apt install python-argcomplete

Installation de argcomplete avec pip

$ python -m pip install argcomplete

Configuration de argcomplete

Il y a 2 façons de configurer argcomplete pour permettre la complétion de l'interpréteur de commandes des utilitaires de la ligne de commande Ansible : globalement ou par commande.

Globalement

La complétion globale nécessite bash 4.2.

$ sudo activate-global-python-argcomplete

Ceci écrira un fichier de complétion bash à un emplacement global. Utilisez --dest pour changer l'emplacement.

Par commande

Si vous ne disposez pas de bash 4.2, vous devez enregistrer chaque script indépendamment.

$ eval $(register-python-argcomplete ansible)
$ eval $(register-python-argcomplete ansible-config)
$ eval $(register-python-argcomplete ansible-console)
$ eval $(register-python-argcomplete ansible-doc)
$ eval $(register-python-argcomplete ansible-galaxy)
$ eval $(register-python-argcomplete ansible-inventory)
$ eval $(register-python-argcomplete ansible-playbook)
$ eval $(register-python-argcomplete ansible-pull)
$ eval $(register-python-argcomplete ansible-vault)

Vous devez placer les commandes ci-dessus dans le fichier de profil de vos interpréteurs de commandes, comme suit . ~/.profile ou ~/.bash_profile.

argcomplete avec zsh ou tcsh

Voir le documentation argcomplete.

ansible-base sur GitHub

Vous pouvez également souhaiter suivre la projet GitHub si vous avez un compte GitHub. C'est également là que nous conservons le traqueur de problèmes pour partager les bogues et les idées de fonctionnalités.

Voir aussi

Introduction aux commandes ad hoc

Exemples de commandes de base

Travailler avec les playbooks

Apprendre le langage de gestion de configuration d'ansible

Comment gérer les dépendances de paquets requises par Ansible lors de l'installation d'Ansible ?

Installation d'Ansible liée à la FAQ

Liste de diffusion

Questions ? Aide ? Idées ? Arrêtez-vous sur la liste sur Google Groups

irc.freenode.net

Canal de discussion IRC #ansible

1(1,2)

Si vous avez des problèmes avec l'installation du paquet "pycrypto" sur macOS, alors vous devrez peut-être essayer... CC=clang sudo -E pip install pycrypto.

2

paramiko a été inclus dans le paquet Ansible requirements.txt avant la version 2.8.