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
brewya existe, - incluye
install.ymlcuandobrewno existe aún, - incluye
packages.ymlcuando la variablelb__packagesno está vacía, o cualquiera de las dos variableslb__update_homebrew_when_installing_packagesolb__upgrade_all_when_installing_packagesestrue. - 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
brewcuandolb__update_homebrew_when_installing_packagesestrue, - actualiza todos los paquetes de
brewcuandolb__upgrade_all_when_installing_packagesestrue, - instala cualquier paquete de
brewdefinido enlb__packages, - instala cualquier tap de
brewdefinido 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