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
cuandobrew
no existe aún, - incluye
packages.yml
cuando la variablelb__packages
no está vacía, o cualquiera de las dos variableslb__update_homebrew_when_installing_packages
olb__upgrade_all_when_installing_packages
estrue
. - 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
cuandolb__update_homebrew_when_installing_packages
estrue
, - actualiza todos los paquetes de
brew
cuandolb__upgrade_all_when_installing_packages
estrue
, - instala cualquier paquete de
brew
definido enlb__packages
, - instala cualquier tap de
brew
definido enlb__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
Installs linuxbrew, brew packages, and taps on Ubuntu/Debian.
ansible-galaxy install ctorgalson.linuxbrew