Utiliser Ansible pour automatiser l’installation du logiciel sur mon Mac

Sur la plupart des systèmes, il existe plusieurs façons d’installer un logiciel. Celui que vous utilisez dépend de la source de l’application que vous installez. Certains logiciels se présentent sous la forme d’un assistant téléchargeable pour vous guider tout au long du processus d’installation, tandis que d’autres sont des fichiers que vous téléchargez et exécutez immédiatement.
Sur macOS, toute une bibliothèque d’applications open source est disponible à partir de commandes Unix comme Homebrew et MacPorts. L’avantage d’utiliser des commandes pour l’installation de logiciels est que vous pouvez les automatiser, et mon outil d’automatisation préféré est Ansible. Combiner Ansible avec Homebrew est un moyen efficace et reproductible d’installer vos applications open source préférées.
Cet article montre comment installer l’un de mes outils d’écriture indispensables, Asciidoctor, sur macOS à l’aide d’Ansible. Asciidoctor est un traitement de texte open source, ce qui signifie qu’il prend du texte écrit dans un format spécifique (dans ce cas, Asciidoc) et le transforme en d’autres formats populaires (tels que HTML, PDF, etc.) pour la publication. Ansible est un outil d’automatisation open source, sans agent et facile à comprendre. En utilisant Ansible, vous pouvez simplifier et automatiser vos tâches quotidiennes.
Remarque : bien que cet exemple utilise macOS, les informations s’appliquent à tous les types de logiciels open source sur toutes les plates-formes compatibles avec Ansible (y compris Linux, Windows, Mac et BSD).
Contents
Installation d’Ansible
Vous pouvez installer Ansible en utilisant pip
, le gestionnaire de packages Python. Tout d’abord, installez pip
:
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python ./get-pip.py
Ensuite, installez Ansible en utilisant pip
:
$ sudo python -m pip install --user ansible
Installer Ansible avec Homebrew
Vous pouvez également installer Ansible à l’aide du gestionnaire de packages Homebrew. Si vous avez déjà installé Ansible avec pip
sautez cette étape car vous avez déjà obtenu le même résultat !
$ brew install ansible
Configuration d’Ansible
Pour configurer Ansible, vous devez d’abord créer un fichier d’inventaire spécifiant le ou les ordinateurs sur lesquels vous souhaitez que votre script Ansible (appelé fichier livre de jeu) pour opérer.
Créez un fichier d’inventaire dans un terminal ou à l’aide de votre éditeur de texte préféré. Dans un terminal, tapez ce qui suit en remplaçant your-host-name
avec le nom de votre ordinateur :
$ cat << EOF >> inventory
[localhost\]
your-host-name
EOF
Si vous ne connaissez pas le nom d’hôte de votre ordinateur, vous pouvez l’obtenir en utilisant le hostname
commande. Sinon, allez dans le menu Apple, ouvrez Préférences de systèmepuis clique Partage. Le nom d’hôte de votre ordinateur se trouve sous le nom de l’ordinateur en haut de Partage volet de préférences.
Installer Asciidoctor avec Ansible
Dans cet exemple, j’installe uniquement des applications sur l’ordinateur sur lequel je travaille, également connu sous le terme hôte local. Pour commencer, créez un playbook.yml
fichier et copiez le contenu suivant :
- name: Install software
hosts: localhost
become: false
vars:
Brew_packages:
- asciidoctor
install_homebrew_if_missing: false
En premier Séquence YAMLvous nommez le playbook (Install software
), fournissez la cible (localhost
) et confirmez que les privilèges administratifs ne sont pas requis. Vous créez également deux variables que vous pourrez utiliser plus tard dans le playbook : Brew_packages
etinstall_homebrew_if_missing
.
Ensuite, créez un mappage YAML appelé pre_tasks
, contenant la logique pour s’assurer que Homebrew lui-même est installé sur l’ordinateur sur lequel vous exécutez le playbook. Normalement, Ansible peut vérifier si une application est installée ou non, mais lorsque cette application est le gestionnaire de packages qui aide Ansible à faire cette détermination en premier lieu, vous devez le faire manuellement :
pre_tasks:
- name: Ensuring Homebrew Is Installed
stat:
path: /usr/local/bin/brew
register: homebrew_check
- name: Fail If Homebrew Is Not Installed and install_homebrew_if_missing Is False
fail:
msg: Homebrew is missing, install from http://brew.sh
when:
- not homebrew_check.stat.exists
- not install_homebrew_if_missing
- name: Installing Homebrew
shell: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
when:
- not homebrew_check.stat.exists
- install_homebrew_if_missing
Enfin, créez un mappage YAML appelé tasks
contenant un appel au module Homebrew (c’est un module intégré d’Ansible) pour installer Asciidoctor dans le cas où il n’est pas déjà présent :
tasks:
- name: Install Asciidoctor
homebrew:
name: asciidoctor
state: present
Exécuter un playbook Ansible
Vous exécutez un playbook Ansible à l’aide de ansible-playbook
commande:
$ ansible-playbook -i inventory playbook.yml
La -i
l’option spécifie le inventory
fichier que vous avez créé lors de la configuration d’Ansible. Vous pouvez éventuellement ajouter -vvvv
pour ordonner à Ansible d’être plus détaillé lors de l’exécution du playbook, ce qui peut être utile lors du dépannage.
Une fois le playbook exécuté, vérifiez qu’Ansible a correctement installé Asciidoctor sur votre hôte :
$ asciidoctor -v
Asciidoctor X.Y.Z https://asciidoctor.org
Runtime Environment (ruby 2.6.8p205 (2021-07-07 revision 67951)...
Adaptez-vous à l’automatisation
Vous pouvez ajouter d’autres logiciels au Brew_packages
variable dans l’exemple de playbook de cet article. Tant qu’un package Homebrew est disponible, Ansible l’installe. Ansible n’intervient que lorsque cela est nécessaire, vous pouvez donc laisser tous les packages que vous installez dans le playbook, créant ainsi un manifeste de tous les packages que vous attendez sur votre ordinateur.
Si vous vous retrouvez sur un autre ordinateur, peut-être parce que vous êtes au travail ou que vous en avez acheté un nouveau, vous pouvez rapidement installer toutes les mêmes applications en une seule fois. Mieux encore, si vous passez à Linux, le playbook Ansible est toujours valable soit en utilisant Homebrew pour Linux, soit en effectuant quelques mises à jour simples pour passer à un autre gestionnaire de packages.