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
brew
existe déjà, - inclut
install.yml
lorsquebrew
n'existe pas encore, - inclut
packages.yml
lorsque la variablelb__packages
n'est pas vide, ou si l'une des deux variableslb__update_homebrew_when_installing_packages
, oulb__upgrade_all_when_installing_packages
esttrue
. - 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
brew
lui-même lorsquelb__update_homebrew_when_installing_packages
esttrue
, - met à jour tous les paquets
brew
lorsquelb__upgrade_all_when_installing_packages
esttrue
, - installe tous les paquets
brew
définis danslb__packages
, - installe tous les taps
brew
dé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