ctorgalson.linuxbrew
Linuxbrew (ctorgalson.linuxbrew)
Installe manuellement linuxbrew, les paquets brew et les taps sur Ubuntu/Debian et Fedora
pour éviter de rediriger un script shell vers sh :)
Le rôle suppose qu'il peut être exécuté dans un playbook utilisant become: true,
il nécessite donc le nom d'un utilisateur non root pour exécuter les commandes brew en toute sécurité. Pour
d'autres tâches--comme l'installation de dépendances à l'aide de apt--il utilise become pour
augmenter les privilèges. Le résultat est qu'il devrait fonctionner quel que soit la valeur de
ansible_user, tant que l'utilisateur {{ lb__owner }} existe.
Merci à markosamuli pour un bon rôle Linuxbrew qui ne correspondait pas tout à fait à mes besoins. J'ai utilisé ce rôle comme base pour celui-ci (et j'ai probablement introduit mes propres erreurs).
Tâches
Le rôle est divisé en trois fichiers de tâches :
main.yml
Ce fichier :
- vérifie si
brewexiste déjà, - inclut
install.ymllorsquebrewn'existe pas encore, - inclut
packages.ymllorsque la variablelb__packagesn'est pas vide, ou si l'une des deux variableslb__update_homebrew_when_installing_packages, oulb__upgrade_all_when_installing_packagesesttrue. - inclut un nombre quelconque de fichiers de tâches de configuration de shell (ou autres) fournis
dans
lb__shell_configuration_tasks.
install.yml
Ce fichier :
- installe des dépendances à l'aide de
apt, - crée les répertoires nécessaires pour Linuxbrew,
- clone les dépôts principaux et de base de Homebrew,
- crée un lien symbolique pour le binaire
brew, - installe le paquet
portable-ruby.
packages.yml
Ce fichier :
- met à jour
brewlui-même lorsquelb__update_homebrew_when_installing_packagesesttrue, - met à jour tous les paquets
brewlorsquelb__upgrade_all_when_installing_packagesesttrue, - installe tous les paquets
brewdéfinis danslb__packages, - installe tous les taps
brewdéfinis danslb__taps.
Exigences
Aucune exigence particulière.
Variables du rôle
Vars
| Nom | Type | Par défaut | Description |
|---|---|---|---|
lb__prefix |
string | /home/linuxbrew/.linuxbrew |
Emplacement pour tous les fichiers liés à brew. |
lb__brew |
string | {{ lb__prefix }}/bin/brew |
Chemin vers le binaire brew. |
lb__homebrew_dir |
string | {{ lb__prefix }}/Homebrew |
Chemin vers le répertoire du dépôt Homebrew. |
lb__homebrew_core_dir |
string | {{ lb__prefix }}/Homebrew/Library/Taps/homebrew-core |
Chemin vers le répertoire du dépôt de base Homebrew. |
lb__directories |
list | Voir vars/main.yml |
Liste des répertoires à créer dans le répertoire lb__prefix. |
lb__repos |
list | Voir vars/main.yml |
Liste des dépôts à cloner lors de l'installation. Chaque élément doit avoir les propriétés repo, dest, et version adaptées à ansible.builtin.git. |
lb__dependencies |
list | Voir vars/main.yml |
Liste des paquets apt requis pour l'installation et l'utilisation de brew. |
Valeurs par défaut
| Nom | Type | Par défaut | Description |
|---|---|---|---|
lb__owner |
string | {{ ansible_user }} |
Le nom du propriétaire pour le répertoire et le contenu de {{ lb__prefix }}. |
lb__group |
string | {{ ansible_user }} |
Le nom du groupe pour le répertoire et le contenu de {{ lb__prefix }}. |
lb__shell_configuration_tasks |
list | [] |
Une liste de chemins vers des fichiers de tâches Ansible à exécuter après l'installation de base. |
lb__update_homebrew_when_installing_packages |
boolean | true |
Indique s'il faut ou non mettre à jour brew lors de l'installation de nouveaux paquets. |
lb__upgrade_all_when_installing_packages |
boolean | true |
Indique s'il faut ou non mettre à jour le paquet Linuxbrew lors de l'installation de nouveaux paquets. |
lb__packages |
list | [] |
Une liste de paquets Linuxbrew à installer. Chaque élément doit spécifier une propriété name et peut avoir des propriétés optionnelles state, path, et install_options adaptées à ansible.community.homebrew. |
lb__taps |
list | [] |
Une liste de taps Linuxbrew à installer. Chaque élément doit spécifier une propriété name et peut avoir des propriétés state, path, et url adaptées à ansible.community.homebrew_tap. |
Dépendances
Ce rôle s'appuie sur la collection ansible.community pour les modules homebrew et
homebrew_tap.
Exemples de Playbook
- hosts: serveurs
become: true
vars:
lb__owner: "ctorgalson"
lb__group: "{{ lb__owner }}"
lb__packages:
- name: "bottom"
state: "present"
- name: "starship"
state: "present"
tasks:
- name: "Installer et configurer Linuxbrew, les paquets et les taps."
ansible.builtin.import_role:
name: "ctorgalson.linuxbrew"
Licence
GPL-3.0-only
Installs linuxbrew, brew packages, and taps on Ubuntu/Debian.
ansible-galaxy install ctorgalson.linuxbrew