cchurch.scm

Estado de Construcción Galaxy

SCM

Extraer código de SCM (git/hg/svn).

Requisitos

Si se extrae usando SSH, debe haber una clave de despliegue disponible para el scm_target_user o debe estar habilitada la reenvío de agente SSH para la conexión SSH de Ansible.

Se requiere sudo o un escalado de privilegios similar para instalar el paquete SCM, extraer como otro usuario (es decir, scm_target_user != ansible_user), o crear la cuenta scm_target_user.

Variables del Rol

Consulta la documentación de los módulos de Ansible git, hg o svn para más detalles sobre los parámetros que se pasan directamente a los módulos subyacentes.

Las siguientes variables suelen definirse para utilizar este rol:

  • scm_type: Uno de git (predeterminado), hg o svn.
  • scm_url: URL del repositorio (p. ej. http://server/repo o ssh://server/repo), requerido.
  • scm_version: Rama, etiqueta, revisión o compromiso a extraer (p. ej. master o HEAD).
  • scm_force: Booleano que indica si se debe pasar la opción force al módulo SCM, lo que descartará archivos modificados en un directorio de trabajo existente; el valor predeterminado es false.
  • scm_delete_on_update: Booleano que indica si se debe eliminar scm_target_path antes de actualizar, el valor predeterminado es false.
  • scm_username: Nombre de usuario para acceder a scm_url, solo es compatible cuando scm_type es svn.
  • scm_password: Contraseña para acceder a scm_url, solo es compatible cuando scm_type es svn.
  • scm_target_path: Directorio de destino para la extracción (el valor predeterminado es "~/src").
  • scm_target_user: Usuario a utilizar para la extracción (el valor predeterminado es ansible_user, en cuyo caso no se requerirá escalado de privilegios). Este usuario será creado si es diferente de ansible_user, ignorando errores si ansible_user no puede crear el usuario.
  • scm_target_user_home: Directorio personal a establecer si se crea scm_target_user.

Las siguientes variables también pueden usarse para personalizar este rol, aunque rara vez se necesitarán en la mayoría de las situaciones:

  • scm_accept_hostkey: Booleano que indica si se debe aceptar la clave del host SSH, solo es compatible cuando scm_type es git, el valor predeterminado del rol es true.
  • scm_depth: Crear un clon poco profundo, el valor mínimo es 1; solo es compatible cuando scm_type es git; el valor predeterminado del rol no está especificado.
  • scm_executable: Ruta al binario de git, hg o svn; el valor predeterminado no está especificado, lo que busca en las rutas del sistema.
  • scm_export: Exportar en lugar de extraer/actualizar; solo es compatible cuando scm_type es svn; el valor predeterminado del rol no está especificado, pero el valor predeterminado del módulo svn es false.
  • scm_key_file: Ruta al archivo de clave privada en el destino a usar para la extracción; el valor predeterminado no está especificado; solo es compatible cuando scm_type es git.
  • scm_purge: Eliminar archivos no rastreados al actualizar; solo es compatible cuando scm_type es hg; el valor predeterminado del rol no está especificado, pero el valor predeterminado del módulo hg es false.
  • scm_recursive: Booleano que indica si se debe clonar el repositorio recursivamente, incluyendo submódulos; solo es compatible cuando scm_type es git; el valor predeterminado del rol no está especificado, pero el valor predeterminado del módulo git es true.
  • scm_remote: Nombre del remoto; solo es compatible cuando scm_type es git; el valor predeterminado del rol no está especificado, pero el valor predeterminado del módulo git es "origin".
  • scm_switch: Llamar a svn switch antes de la actualización; solo es compatible cuando scm_type es svn; el valor predeterminado del rol no está especificado, pero el valor predeterminado del módulo svn es true.
  • scm_track_submodules: Booleano que indica si los submódulos rastrean los últimos compromisos; solo es compatible cuando scm_type es git; el valor predeterminado del rol no está especificado, pero el valor predeterminado del módulo git es false.
  • scm_update: Booleano que indica si se deben recibir nuevas revisiones del repositorio de origen; el valor predeterminado del rol no está especificado, pero los módulos por defecto son true.
  • scm_verify_commit: Booleano que indica si se deben validar los compromisos firmados por GPG; solo es compatible cuando scm_type es git; el valor predeterminado del rol no está especificado, pero el valor predeterminado del módulo git es false.
  • scm_packages: Mapeo de paquetes por ansible_pkg_mgr y scm_type. El rol intentará instalar el paquete requerido, ignorando errores si no está disponible el escalado de privilegios apropiado. Normalmente no es necesario cambiar esta variable a menos que se ejecute en un sistema que use un ansible_pkg_mgr diferente a yum, apt, pacman o macports.
  • scm_ssh_agent_forwarding: Booleano que indica si se deben aplicar correcciones para permitir que el reenvío del agente SSH funcione cuando scm_target_user no es el mismo que ansible_user; el valor predeterminado del rol es false.
  • scm_ssh_auth_sock_sudoers_file: Ruta del archivo que se debe añadir en sudoers.d cuando se habilita la corrección del reenvío del agente SSH; el valor predeterminado del rol es "/etc/sudoers.d/ssh_auth_sock".

La siguiente variable puede definirse para la invocación del juego o del rol (pero no funcionará si se define como una variable de grupo o de host en el inventario):

  • scm_notify_on_updated: Nombre del manejador a notificar cuando se cambió la extracción. El valor predeterminado es "scm updated"; se recomienda que los manejadores personalizados escuchen para "scm updated" en lugar de cambiar el nombre de notificación.

El rol también establecerá el hecho scm_update_result (por cada host) al resultado de la tarea de actualización.

Dependencias

Ninguna.

Ejemplo de Playbook

El siguiente ejemplo de playbook extrae un repositorio git público y muestra un mensaje después de actualizar:

- 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 }} fue actualizado desde {{ scm_url }} a {{ scm_update_result.after }}."
      listen: scm updated

Licencia

BSD

Información del Autor

Chris Church (cchurch)

Acerca del proyecto

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

Instalar
ansible-galaxy install cchurch.scm
Licencia
other
Descargas
2.1k
Propietario
Python/Django/Ansible, will code for sweet tea and beer.