cchurch.scm

Statut de construction Galaxie

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 types git (par défaut), hg ou svn.
  • scm_url: URL du dépôt (par exemple http://server/repo ou ssh://server/repo), requis.
  • scm_version: Branche, tag, révision ou commit à récupérer (par ex. master ou HEAD).
  • scm_force: Booléen indiquant s'il faut passer l'option force au module SCM, ce qui éliminera les fichiers modifiés dans un répertoire de travail existant ; la valeur par défaut est false.
  • scm_delete_on_update: Booléen indiquant s'il faut supprimer scm_target_path avant la mise à jour, la valeur par défaut est false.
  • scm_username: Nom d'utilisateur pour accéder à scm_url, uniquement pris en charge lorsque scm_type est svn.
  • scm_password: Mot de passe pour accéder à scm_url, uniquement pris en charge lorsque scm_type est svn.
  • 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 est ansible_user, dans ce cas aucune élévation de privilège ne sera requise). Cet utilisateur sera créé s'il est différent de ansible_user, en ignorant les erreurs si ansible_user ne peut pas créer l'utilisateur.
  • scm_target_user_home: Répertoire personnel à définir si vous créez scm_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 lorsque scm_type est git, la valeur par défaut du rôle est true.
  • scm_depth: Créer un clone superficiel, la valeur minimale est 1 ; uniquement pris en charge lorsque scm_type est git ; la valeur par défaut du rôle n'est pas spécifiée.
  • scm_executable: Chemin vers le binaire git, hg ou svn ; 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 lorsque scm_type est svn ; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du module svn est false.
  • 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 lorsque scm_type est git.
  • scm_purge: Supprimer les fichiers non suivis lors de la mise à jour ; uniquement pris en charge lorsque scm_type est hg ; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du module hg est false.
  • 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 lorsque scm_type est git ; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du module git est true.
  • scm_remote: Nom du dépôt distant ; uniquement pris en charge lorsque scm_type est git ; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du module git est "origin".
  • scm_switch: Appeler svn switch avant la mise à jour ; uniquement pris en charge lorsque scm_type est svn ; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du module svn est true.
  • scm_track_submodules: Booléen indiquant si les sous-modules suivent les derniers commits ; uniquement pris en charge lorsque scm_type est git; la valeur par défaut du rôle n'est pas spécifiée, mais la valeur par défaut du module git est false.
  • 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 sont true.
  • scm_verify_commit: Booléen indiquant s'il faut valider les commits signés GPG ; uniquement pris en charge lorsque scm_type est git ; la valeur par défaut du rôle n'est pas spécifiée mais la valeur par défaut du module git est false.
  • scm_packages: Groupement des paquets selon ansible_pkg_mgr et scm_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 un ansible_pkg_mgr différent de yum, apt, pacman ou macports.
  • scm_ssh_agent_forwarding: Booléen indiquant s'il faut appliquer des corrections pour permettre le transfert de l'agent SSH de fonctionner lorsque scm_target_user n'est pas le même que ansible_user ; la valeur par défaut du rôle est false.
  • scm_ssh_auth_sock_sudoers_file: Chemin du fichier à ajouter dans sudoers.d lorsque la correction de scm_ssh_agent_forwarding est 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)

À propos du projet

Checkout code from SCM (git/hg/svn).

Installer
ansible-galaxy install cchurch.scm
Licence
other
Téléchargements
2.1k
Propriétaire
Python/Django/Ansible, will code for sweet tea and beer.