raffienficiaud.atlassian-bambooagent-install-dmg-role

Instalación del rol DMG para el agente de Atlassian Bamboo con Ansible

Instala el contenido de un archivo DMG en un objetivo remoto (solo OSX).

Actualmente, esto es un rol, pero debería ser un comando complejo. Este rol:

  • copia un archivo DMG al host
  • lo transforma si es necesario para facilitar la automatización (por ejemplo, algunos DMG requieren entradas manuales: la transformación mencionada elimina estos pasos manuales)
  • lo monta en una carpeta temporal
  • ejecuta un comando para la instalación
  • desmonta y elimina cualquier archivo intermedio (por ejemplo, el DMG transformado)

Requisitos

No hay requisitos particulares además de que debe ejecutarse en una máquina objetivo OSX.

Variables del Rol

variable predeterminado significado
dmg_to_install requerido el archivo DMG a instalar. Esto en realidad es un diccionario que indica las opciones de instalación.

Formato de dmg_to_install

El dmg_to_install es un diccionario que contiene los siguientes campos:

campo predeterminado significado
file requerido Señala el archivo DMG.
install_cmd requerido El comando que debe ejecutarse en el remoto después de que el DMG esté correctamente montado.
remove_interactive False Indica si el DMG original debe ser modificado para eliminar algunas entradas interactivas requeridas.
local_folder /tmp La carpeta en el remoto donde se copia el DMG. Los DMG intermedios también se crean allí.
remote_src False Si es True, el DMG ya está en el remoto y no se copia desde el controlador.
remove_after_install True Si es False, el DMG original no se elimina después de la instalación. Los DMG intermedios siempre se eliminan.

Durante la instalación, la variable ${mount} se reemplaza con la ubicación real de montaje del contenido del DMG (ver ejemplo a continuación).

Dependencias

No hay dependencias adicionales.

Ejemplo de Playbook

El siguiente ejemplo instala las herramientas de línea de comandos de XCode:

# Instala herramientas de línea de comandos de OSX
# corrige las rutas sobre la marcha
- role: ansible-atlassian-bambooagent-install-dmg-role
  dmg_to_install:
    - "{{ bamboo_xcode }}"
  when:
    - ansible_distribution == "MacOSX"
    - xcode_version_installed | version_compare('%d.%d' % (bamboo_xcode.version.major, bamboo_xcode.version.minor), '<')

Y la variable bamboo_xcode contiene lo siguiente:

bamboo_xcode:
  file: 'commandlinetoolsosx10.10forxcode6.3.2.dmg'
  install_cmd: 'installer -allowUntrusted -dumplog -pkg "${mount}/Command Line Tools (OS X 10.10).pkg" -target /'
  remove_interactive: False
  version:
    major: 6
    minor: 3
    patch: 2

La variable ${mount} se expande a la ubicación de montaje real (carpeta aleatoria). La bamboo_xcode.version no está relacionada directamente con el rol DMG (sino más bien con la condición de ansible del comando dmg_to_install anterior).

Licencia

BSD

Información del Autor

Cualquier comentario sobre Ansible, solicitudes de extracción o informes de errores son bienvenidos en el proyecto correspondiente en Github.

Acerca del proyecto

Helper role for installing a DMG on a remote target

Instalar
ansible-galaxy install raffienficiaud.atlassian-bambooagent-install-dmg-role
Licencia
Unknown
Descargas
186
Propietario
ML Engineer, computer vision and C++/Python addict. Open source advocate. Atlassian enthusiast https://bitbucket.org/renficiaud https://yayimorphology.org