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 lorsque brew n'existe pas encore,
  • inclut packages.yml lorsque la variable lb__packages n'est pas vide, ou si l'une des deux variables lb__update_homebrew_when_installing_packages, ou lb__upgrade_all_when_installing_packages est true.
  • 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 lorsque lb__update_homebrew_when_installing_packages est true,
  • met à jour tous les paquets brew lorsque lb__upgrade_all_when_installing_packages est true,
  • installe tous les paquets brew définis dans lb__packages,
  • installe tous les taps brew définis dans lb__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

À propos du projet

Installs linuxbrew, brew packages, and taps on Ubuntu/Debian.

Installer
ansible-galaxy install ctorgalson.linuxbrew
Licence
gpl-3.0
Téléchargements
145
Propriétaire