nioniosfr.github_release
Rôle Ansible : Publication GitHub
Un rôle générique pour installer une application binaire publiée sur GitHub dans une distribution Linux basée sur x86_64.
Exigences
Le rôle cible les systèmes basés sur Debian et RHEL construits sur l'architecture x86_64
.
Le rôle est destiné à être exécuté sur la machine distante, ce qui signifie qu'une connexion Internet est requise sur la machine distante.
Ce rôle est assez générique, ce qui signifie qu'il faut faire attention aux packages qui sont installés.
Important : Passez toujours en revue les packages que vous essayez d'installer, car il n'y a aucun moyen de valider le checksum du téléchargement de manière générique.
Variables du Rôle
Requis :
ghr_org_name: # Le nom d'une organisation GitHub valide
ghr_app_name: # Le nom d'un dépôt GitHub valide appartenant à l'organisation
Par défaut :
ghr_app_version: "latest" # Une version valide publiée depuis : https://github.com/{{ ghr_org_name }}/{{ ghr_app_name }}/releases/
ghr_app_binary_dest: "/opt/{{ ghr_app_name }}" # Le répertoire de destination où le binaire `ghr_app_name` sera placé
ghr_app_cleanup_after: false # S'il est défini sur vrai, tous les fichiers téléchargés seront nettoyés
ghr_app_configure_system_path: true # Si le répertoire `ghr_app_binary_dest` doit être ajouté au `PATH` système
ghr_app_system_path_prepend: false # Si le répertoire `ghr_app_binary_dest` doit être ajouté au début ou à la fin du `PATH`, SI (ghr_app_configure_system_path est vrai).
ghr_app_tmp_dir: # Dossier temporaire pour stocker l'archive téléchargée
ghr_app_releases_url: # L'URL des publications GitHub.
ghr_app_archive: # Le nom de l'archive.
Dépendances
Aucune
Exemple de Playbook
Exécuter le rôle plusieurs fois entraînera des problèmes de fusion de variables.
Il est recommandé d'exécuter un rôle par exécution de l'hôte.
- 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" # Stocke l'archive téléchargée dans un chemin plus persistant 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" # Installe dans un chemin utilisateur commun
ghr_app_configure_system_path: false # Ne pas manipuler le chemin système pour les utilisateurs
ghr_app_tmp_dir: "/mnt/nfs_share/downloads" # Changer le dossier utilisé pour les téléchargements
ghr_app_cleanup_after: true # Supprime à la fois le fichier téléchargé et le profil system profile.d pour `app` s'il avait déjà été créé lors d'une exécution précédente
Licence
MIT
Informations sur l'auteur
A generic role to install a binary application released on GitHub in a Linux x86_64 based distro.
ansible-galaxy install nioniosfr.github_release