cchurch.scm

Build-Status Galaxy

SCM

Code aus SCM (git/hg/svn) auschecken.

Anforderungen

Wenn Sie über SSH auschecken, muss ein Deployment-Schlüssel für den scm_target_user vorhanden sein oder SSH-Agent-Weiterleitung muss für die Ansible-SSH-Verbindung aktiviert sein.

sudo oder ähnliche Berechtigungen sind erforderlich, um das SCM-Paket zu installieren, als ein anderer Benutzer auszuchecken (d.h. scm_target_user != ansible_user) oder das Konto scm_target_user zu erstellen.

Rollenvariablen

Bitte lesen Sie die Dokumentation zu den git, hg oder svn Ansible-Modulen für genauere Informationen zu den Parametern, die direkt an die zugrunde liegenden Module übergeben werden.

Die folgenden Variablen werden typischerweise zur Verwendung dieser Rolle definiert:

  • scm_type: git (Standard), hg oder svn.
  • scm_url: URL zum Repository (z.B. http://server/repo oder ssh://server/repo), erforderlich.
  • scm_version: Branch, Tag, Revision oder Commit, das ausgecheckt werden soll (z.B. master oder HEAD).
  • scm_force: Boolescher Wert, der angibt, ob die force-Option an das SCM-Modul übergeben werden soll, was alle modifizierten Dateien im bestehenden Arbeitsverzeichnis verwirft; Standard ist false.
  • scm_delete_on_update: Boolescher Wert, der angibt, ob scm_target_path vor dem Update gelöscht werden soll; Standard ist false.
  • scm_username: Benutzername für den Zugriff auf scm_url, nur unterstützt, wenn scm_type svn ist.
  • scm_password: Passwort für den Zugriff auf scm_url, nur unterstützt, wenn scm_type svn ist.
  • scm_target_path: Zielverzeichnis für den Checkout (Standard ist "~/src").
  • scm_target_user: Benutzer, der für den Checkout verwendet werden soll (Standard ist ansible_user, in diesem Fall ist keine Privilegieneskalation erforderlich). Dieser Benutzer wird erstellt, wenn er sich von ansible_user unterscheidet, wobei Fehler ignoriert werden, wenn ansible_user den Benutzer nicht erstellen kann.
  • scm_target_user_home: Home-Verzeichnis, das festgelegt werden soll, wenn scm_target_user erstellt wird.

Die folgenden Variablen können ebenfalls verwendet werden, um diese Rolle anzupassen, sind jedoch in den meisten Situationen wahrscheinlich nicht erforderlich:

  • scm_accept_hostkey: Boolescher Wert, der angibt, ob der SSH-Hostschlüssel akzeptiert werden soll, nur unterstützt, wenn scm_type git ist; Standard der Rolle ist true.
  • scm_depth: Erstellen Sie einen flachen Klon, Mindestwert ist 1; nur unterstützt, wenn scm_type git ist; Standard der Rolle ist nicht festgelegt.
  • scm_executable: Pfad zur git, hg oder svn-Binärdatei; Standard ist nicht festgelegt, was die Suche in den System-Binärpfaden bedeutet.
  • scm_export: Exportieren anstelle von Checkout/Update; nur unterstützt, wenn scm_type svn ist; Standard der Rolle ist nicht festgelegt, aber der svn-Modulstandard ist false.
  • scm_key_file: Pfad zur privaten Schlüsseldatei auf dem Ziel, die für den Checkout verwendet werden soll; Standard ist nicht festgelegt; wird nur unterstützt, wenn scm_type git ist.
  • scm_purge: Löschen Sie nicht verfolgte Dateien beim Aktualisieren; nur unterstützt, wenn scm_type hg ist; Standard der Rolle ist nicht festgelegt, aber der hg-Modulstandard ist false.
  • scm_recursive: Boolescher Wert, der angibt, ob das Repository rekursiv geklont werden soll, einschließlich Submodule; nur unterstützt, wenn scm_type git ist; Standard der Rolle ist nicht festgelegt, aber der git-Modulstandard ist true.
  • scm_remote: Name des Remotes; nur unterstützt, wenn scm_type git ist; Standard der Rolle ist nicht festgelegt, aber der git-Modulstandard ist "origin".
  • scm_switch: Ruft svn switch vor dem Update auf; nur unterstützt, wenn scm_type svn ist; Standard der Rolle ist nicht festgelegt, aber der svn-Modulstandard ist true.
  • scm_track_submodules: Boolescher Wert, der angibt, ob Submodule die neuesten Commits verfolgen; nur unterstützt, wenn scm_type git ist; Standard der Rolle ist nicht festgelegt, aber der git-Modulstandard ist false.
  • scm_update: Boolescher Wert, der angibt, ob neue Revisionen aus dem Ursprungs-Repository empfangen werden sollen; Standard der Rolle ist nicht festgelegt, aber die Standardmodule sind true.
  • scm_verify_commit: Boolescher Wert, der angibt, ob GPG-signierte Commits validiert werden sollen; nur unterstützt, wenn scm_type git ist; Standard der Rolle ist nicht festgelegt, aber der git-Modulstandard ist false.
  • scm_packages: Zuordnung von Paketen nach ansible_pkg_mgr und scm_type. Die Rolle wird versuchen, das erforderliche Paket zu installieren und Fehler zu ignorieren, wenn die entsprechenden Berechtigungen nicht verfügbar sind. Normalerweise ist es nicht erforderlich, diese Variable zu ändern, es sei denn, Sie arbeiten auf einem System, das einen anderen ansible_pkg_mgr als yum, apt, pacman oder macports verwendet.
  • scm_ssh_agent_forwarding: Boolescher Wert, der angibt, ob Korrekturen angewendet werden sollen, um die SSH-Agent-Weiterleitung zu ermöglichen, wenn scm_target_user nicht dasselbe ist wie ansible_user; Standard der Rolle ist false.
  • scm_ssh_auth_sock_sudoers_file: Dateipfad, der in sudoers.d hinzugefügt werden soll, wenn die Korrektur für scm_ssh_agent_forwarding aktiviert ist; Standard der Rolle ist "/etc/sudoers.d/ssh_auth_sock".

Die folgende Variable kann für die Ausführung des Plays oder der Rolle definiert werden (funktioniert jedoch nicht, wenn sie als Inventargruppe oder Hostvariable definiert ist):

  • scm_notify_on_updated: Handler-Name, der benachrichtigt werden soll, wenn der Checkout geändert wurde. Der Standardwert ist "scm updated"; es wird im Allgemeinen empfohlen, dass benutzerdefinierte Handler auf "scm updated" hören, anstatt den Benachrichtigungsnamen zu ändern.

Die Rolle wird außerdem das Faktum scm_update_result (pro Host) auf das Ergebnis der Aktualisierungsaufgabe setzen.

Abhängigkeiten

Keine.

Beispiel-Playbook

Das folgende Beispiel-Playbook checkt ein öffentliches Git-Repository aus und zeigt eine Nachricht nach dem Update an:

- 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 }} wurde von {{ scm_url }} auf {{ scm_update_result.after }} aktualisiert."
      listen: scm updated

Lizenz

BSD

Autoreninformation

Chris Church (cchurch)

Über das Projekt

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

Installieren
ansible-galaxy install cchurch.scm
GitHub Repository
Lizenz
other
Downloads
2.1k
Besitzer
Python/Django/Ansible, will code for sweet tea and beer.