cchurch.scm
SCM
Récupérer le code depuis SCM (git/hg/svn).
Exigences
Si vous utilisez SSH pour le téléchargement, une clé de déploiement doit être présente pour l'utilisateur scm_target_user ou le transfert d'agent SSH doit être activé pour la connexion SSH Ansible.
Il est nécessaire d'avoir des privilèges sudo ou similaires pour installer le paquet SCM, télécharger en tant qu'un autre utilisateur (c'est-à-dire scm_target_user != ansible_user), ou créer le compte scm_target_user.
Variables de rôle
Référez-vous à la documentation pour les modules Ansible git, hg ou svn pour plus de détails sur les paramètres passés directement aux modules sous-jacents.
Les variables suivantes sont généralement définies pour utiliser ce rôle :
scm_type: Un des typesgit(par défaut),hgousvn.scm_url: URL du dépôt (par exemplehttp://server/repooussh://server/repo), requis.scm_version: Branche, tag, révision ou commit à récupérer (par ex.masterouHEAD).scm_force: Booléen indiquant s'il faut passer l'optionforceau module SCM, ce qui éliminera les fichiers modifiés dans un répertoire de travail existant ; la valeur par défaut estfalse.scm_delete_on_update: Booléen indiquant s'il faut supprimerscm_target_pathavant la mise à jour, la valeur par défaut estfalse.scm_username: Nom d'utilisateur pour accéder àscm_url, uniquement pris en charge lorsquescm_typeestsvn.scm_password: Mot de passe pour accéder àscm_url, uniquement pris en charge lorsquescm_typeestsvn.scm_target_path: Répertoire cible pour le téléchargement (la valeur par défaut est"~/src").scm_target_user: Utilisateur sous lequel effectuer le téléchargement (la valeur par défaut estansible_user, dans ce cas aucune élévation de privilège ne sera requise). Cet utilisateur sera créé s'il est différent deansible_user, en ignorant les erreurs siansible_userne peut pas créer l'utilisateur.scm_target_user_home: Répertoire personnel à définir si vous créezscm_target_user.
Les variables suivantes peuvent également être utilisées pour personnaliser ce rôle, bien qu'elles ne soient pas nécessairement nécessaires dans la plupart des situations :
scm_accept_hostkey: Booléen indiquant s'il faut accepter la clé d'hôte SSH, uniquement pris en charge lorsquescm_typeestgit, la valeur par défaut du rôle esttrue.scm_depth: Créer un clone superficiel, la valeur minimale est1; uniquement pris en charge lorsquescm_typeestgit; la valeur par défaut du rôle n'est pas spécifiée.scm_executable: Chemin vers le binairegit,hgousvn; la valeur par défaut n'est pas spécifiée, ce qui recherche dans les chemins des binaires système.scm_export: Exporter au lieu de télécharger/metre à jour ; uniquement pris en charge lorsquescm_typeestsvn; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du modulesvnestfalse.scm_key_file: Chemin vers le fichier de clé privée sur la cible à utiliser pour le téléchargement ; la valeur par défaut n'est pas spécifiée ; uniquement pris en charge lorsquescm_typeestgit.scm_purge: Supprimer les fichiers non suivis lors de la mise à jour ; uniquement pris en charge lorsquescm_typeesthg; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du modulehgestfalse.scm_recursive: Booléen indiquant s'il faut cloner le dépôt de manière récursive, y compris les sous-modules ; uniquement pris en charge lorsquescm_typeestgit; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du modulegitesttrue.scm_remote: Nom du dépôt distant ; uniquement pris en charge lorsquescm_typeestgit; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du modulegitest"origin".scm_switch: Appelersvn switchavant la mise à jour ; uniquement pris en charge lorsquescm_typeestsvn; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du modulesvnesttrue.scm_track_submodules: Booléen indiquant si les sous-modules suivent les derniers commits ; uniquement pris en charge lorsquescm_typeestgit; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du modulegitestfalse.scm_update: Booléen indiquant s'il faut recevoir de nouvelles révisions depuis le dépôt d'origine ; la valeur par défaut du rôle n'est pas spécifiée, mais les modules par défaut sonttrue.scm_verify_commit: Booléen indiquant s'il faut valider les commits signés GPG ; uniquement pris en charge lorsquescm_typeestgit; la valeur par défaut du rôle n'est pas spécifiée mais la valeur par défaut du modulegitestfalse.scm_packages: Groupement des paquets selonansible_pkg_mgretscm_type. Le rôle tentera d'installer le paquet requis, en ignorant les erreurs si l'élévation de privilèges appropriée n'est pas disponible. Il n'est généralement pas nécessaire de modifier cette variable sauf si vous exécutez sur un système utilisant unansible_pkg_mgrdifférent deyum,apt,pacmanoumacports.scm_ssh_agent_forwarding: Booléen indiquant s'il faut appliquer des corrections pour permettre le transfert de l'agent SSH de fonctionner lorsquescm_target_usern'est pas le même queansible_user; la valeur par défaut du rôle estfalse.scm_ssh_auth_sock_sudoers_file: Chemin du fichier à ajouter danssudoers.dlorsque la correction descm_ssh_agent_forwardingest activée ; la valeur par défaut du rôle est"/etc/sudoers.d/ssh_auth_sock".
La variable suivante peut être définie pour l'appel de jeu ou de rôle (mais ne fonctionnera pas si elle est définie comme une variable de groupe ou d'hôte d'inventaire) :
scm_notify_on_updated: Nom du gestionnaire à notifier lorsque le téléchargement est modifié. La valeur par défaut est"scm updated"; il est généralement recommandé que les gestionnaires personnalisés écoutent"scm updated"au lieu de changer le nom de notification.
Le rôle définira également le fait scm_update_result (par hôte) avec le résultat de la tâche de mise à jour.
Dépendances
Aucune.
Exemple de Playbook
L'exemple de playbook suivant télécharge un dépôt git public et affiche un message après la mise à jour :
- hosts: all
roles:
- role: cchurch.scm
vars:
scm_type: git
scm_url: https://github.com/cchurch/ansible-sign.git
scm_target_path: ~/src/ansible-sign
scm_version: master
handlers:
- name: ansible sign updated
debug:
msg: "{{ scm_target_path }} a été mis à jour depuis {{ scm_url }} vers {{ scm_update_result.after }}."
listen: scm updated
Licence
BSD
Informations sur l'auteur
Chris Church (cchurch)
Checkout code from SCM (git/hg/svn).
ansible-galaxy install cchurch.scm