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.
Helper role for installing a DMG on a remote target
ansible-galaxy install raffienficiaud.atlassian-bambooagent-install-dmg-role