ctorgalson.linuxbrew

Linuxbrew (ctorgalson.linuxbrew)

Instala manualmente linuxbrew, paquetes de brew y taps en Ubuntu/Debian y Fedora para evitar canalizar un script de shell a sh :)

El rol asume que puede ejecutarse en un playbook que utiliza become: true, por lo que requiere el nombre de un usuario que no sea root para ejecutar los comandos de brew de manera segura. Para otras tareas, como instalar dependencias usando apt, usa become para escalar privilegios. Como resultado, debería funcionar independientemente del valor de ansible_user, siempre que el usuario {{ lb__owner }} exista.

Créditos a markosamuli por un buen rol de Linuxbrew que no se ajustaba del todo a mis necesidades. He utilizado ese rol como base para este (y probablemente he introducido mis propios errores).

Tareas

El rol se divide en tres archivos de tareas:

main.yml

Este archivo:

  • verifica si brew ya existe,
  • incluye install.yml cuando brew no existe aún,
  • incluye packages.yml cuando la variable lb__packages no está vacía, o cualquiera de las dos variables lb__update_homebrew_when_installing_packages o lb__upgrade_all_when_installing_packages es true.
  • incluye cualquier cantidad de archivos de tareas de configuración de shell (u otros) proporcionados en lb__shell_configuration_tasks.

install.yml

Este archivo:

  • instala dependencias usando apt,
  • crea los directorios requeridos para Linuxbrew,
  • clona los repos principales y de núcleo de Homebrew,
  • crea un enlace simbólico al binario brew,
  • instala el paquete portable-ruby.

packages.yml

Este archivo:

  • actualiza brew cuando lb__update_homebrew_when_installing_packages es true,
  • actualiza todos los paquetes de brew cuando lb__upgrade_all_when_installing_packages es true,
  • instala cualquier paquete de brew definido en lb__packages,
  • instala cualquier tap de brew definido en lb__taps.

Requisitos

No hay requisitos especiales.

Variables del Rol

Vars

Nombre Tipo Predeterminado Descripción
lb__prefix cadena /home/linuxbrew/.linuxbrew Ubicación para todos los archivos relacionados con brew.
lb__brew cadena {{ lb__prefix }}/bin/brew Ruta al binario brew.
lb__homebrew_dir cadena {{ lb__prefix }}/Homebrew Ruta al directorio del repo de Homebrew.
lb__homebrew_core_dir cadena {{ lb__prefix }}/Homebrew/Library/Taps/homebrew-core Ruta al directorio del repo del núcleo de Homebrew.
lb__directories lista Ver vars/main.yml Lista de directorios a crear en el directorio lb__prefix.
lb__repos lista Ver vars/main.yml Lista de repos a clonar durante la instalación. Cada elemento debe tener propiedades repo, dest y version adecuadas para ansible.builtin.git.
lb__dependencies lista Ver vars/main.yml Lista de paquetes de apt requeridos para la instalación y uso de brew.

Predeterminados

Nombre Tipo Predeterminado Descripción
lb__owner cadena {{ ansible_user }} El nombre del propietario para el directorio y los contenidos de {{ lb__prefix }}.
lb__group cadena {{ ansible_user }} El nombre del grupo para el directorio y los contenidos de {{ lb__prefix }}.
lb__shell_configuration_tasks lista [] Una lista de rutas a archivos de tareas de Ansible que se ejecutarán después de la instalación básica.
lb__update_homebrew_when_installing_packages booleano true Si se debe actualizar brew al instalar nuevos paquetes.
lb__upgrade_all_when_installing_packages booleano true Si se debe actualizar el paquete de Linuxbrew al instalar nuevos paquetes.
lb__packages lista [] Una lista de paquetes de Linuxbrew a instalar. Cada elemento debe especificar una propiedad name, y puede tener propiedades opcionales state, path y install_options adecuadas para ansible.community.homebrew.
lb__taps lista [] Una lista de taps de Linuxbrew a instalar. Cada elemento debe especificar una propiedad name, y puede tener propiedades state, path y url adecuadas para ansible.community.homebrew_tap.

Dependencias

Este rol depende de la colección ansible.community para los módulos homebrew y homebrew_tap.

Ejemplo de Playbook

- hosts: servers
  become: true
  
  vars:
    lb__owner: "ctorgalson"
    lb__group: "{{ lb__owner }}"
    lb__packages:
      - name: "bottom"
        state: "present"
      - name: "starship"
        state: "present"

  tasks:
     - name: "Instalar y configurar Linuxbrew, paquetes y taps."
       ansible.builtin.import_role:
         name: "ctorgalson.linuxbrew"

Licencia

GPL-3.0-only

Acerca del proyecto

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

Instalar
ansible-galaxy install ctorgalson.linuxbrew
Licencia
gpl-3.0
Descargas
145