nioniosfr.github_release
Rol de Ansible: Lanzamiento de GitHub
Un rol genérico para instalar una aplicación binaria lanzada en GitHub en una distribución Linux basada en x86_64
.
Requisitos
El rol está diseñado para sistemas basados en Debian y RHEL construidos sobre la arquitectura x86_64
.
El rol se ejecuta en la máquina remota, lo que significa que se requiere conectividad a Internet en la máquina remota.
Este rol es bastante genérico, lo que significa que se debe tener cuidado con los paquetes que se instalan.
Importante: Siempre revisa los paquetes que estás intentando instalar, ya que no hay forma de validar el checksum de la descarga de manera genérica.
Variables del Rol
Requeridas:
ghr_org_name: # El nombre de una organización válida en GitHub
ghr_app_name: # El nombre de un repositorio válido en GitHub, perteneciente a la organización
Por defecto:
ghr_app_version: "latest" # Una versión válida lanzada de: https://github.com/{{ ghr_org_name }}/{{ ghr_app_name }}/releases/
ghr_app_binary_dest: "/opt/{{ ghr_app_name }}" # El directorio de destino donde se colocará el binario `ghr_app_name`
ghr_app_cleanup_after: false # Si se establece en verdadero, limpiará todos los archivos descargados
ghr_app_configure_system_path: true # Si se debe agregar el directorio `ghr_app_binary_dest` al `PATH` del sistema
ghr_app_system_path_prepend: false # Si se debe agregar o anteponer el directorio `ghr_app_binary_dest` en el `PATH`, SI (ghr_app_configure_system_path es verdadero).
ghr_app_tmp_dir: # Carpeta temporal para almacenar el archivo descargado
ghr_app_releases_url: # La URL de las versiones de github.
ghr_app_archive: # El nombre del archivo comprimido.
Dependencias
Ninguna
Ejemplo de Playbook
Ejecutar el rol varias veces puede provocar problemas de combinación de variables.
Se recomienda ejecutar un rol por ejecución de host.
- hosts: localhost
roles:
- role: nioniosfr.github_release
vars:
ghr_org_name: "digitalocean"
ghr_app_name: "doctl"
ghr_app_version: "1.18.0"
ghr_app_tmp_dir: "/mnt/nfs_share/downloads" # Almacenar el archivo descargado en una ruta más persistente que '/tmp'
- hosts: localhost
roles:
- role: nioniosfr.github_release
vars:
ghr_org_name: "stedolan"
ghr_app_name: "jq"
ghr_app_version: "1.6"
ghr_app_releases_endpoint: "{{ ghr_app_name }}-{{ ghr_app_version }}"
ghr_app_archive: "{{ ghr_app_name }}-linux64"
ghr_app_is_binary: true
- hosts: localhost
roles:
- role: nioniosfr.github_release
vars:
ghr_org_name: "digitalocean"
ghr_app_name: "doctl"
ghr_app_version: "1.18.0"
ghr_app_binary_dest: "/usr/local/bin" # Instala en una ruta común para usuarios
ghr_app_configure_system_path: false # No manipular el PATH del sistema para los usuarios
ghr_app_tmp_dir: "/mnt/nfs_share/downloads" # Cambiar la carpeta utilizada para las descargas
ghr_app_cleanup_after: true # Eliminar tanto el archivo descargado como el profile.d del sistema para `app` si ya fue creado en una ejecución anterior
Licencia
MIT
Información del Autor
A generic role to install a binary application released on GitHub in a Linux x86_64 based distro.
ansible-galaxy install nioniosfr.github_release