mimacom.bamboo-agent
Rol de Ansible: bamboo-agent
Instala un agente (nodo) de Bamboo local o remoto para un servidor maestro específico de Atlassian Bamboo.
Requisitos
Ya debes tener un servidor de Atlassian Bamboo, ya que los agentes de Bamboo dependen de él. Antes de usar este rol, asegúrate de tener suficientes licencias para los agentes remotos de Bamboo (si lo deseas), de lo contrario, no aparecerán en Bamboo.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml
):
install_jdk: true
Indica si se debe instalar JDK o no.
openjdk_version: 1.8.0
La versión de openJDK a instalar (solo agente remoto).
bamboo_agent_remote: False
Indica si este es un agente remoto o no.
bamboo_master_version: ""
bamboo_master_fqdn: ""
bamboo_master_https: False
bamboo_master_port: ""
Conexión al servidor maestro de Bamboo (solo agente remoto)
bamboo_master_user: bamboo
Usuario del servicio para el nodo maestro de Bamboo (solo agente local)
bamboo_agent_user: bambooagent
bamboo_agent_uid: 5000
Nombre de usuario del servicio, grupo principal e ID para systemd (solo agente remoto).
bamboo_agent_application_folder: "/opt/{{ bamboo_agent_user }}"
bamboo_agent_data_folder: "/opt/{{ bamboo_agent_user }}/bamboo-agent-home"
Ruta donde almacenar los binarios de la aplicación y los datos de la aplicación (solo agente remoto).
bamboo_agent_jvm_memory: 768m
Espacio de memoria Java para el agente remoto de Bamboo (solo agente remoto).
bamboo_agent_npmrc: ""
bamboo_agent_maven_settings: ""
Contenido de los archivos de configuración del usuario del servicio para npm y maven.
bamboo_agent_capabilities: []
Una lista de capacidades de Bamboo. Para agentes remotos, las capacidades se agregarán como capacidades reales en el agente remoto de Bamboo, cuando properties
esté configurado. Lamentablemente, esto no es posible para los agentes locales.
Si especificas el source
con un name
adecuado, se instalará un paquete correspondiente. ¡Debes instalar el gestor de paquetes utilizado por tu cuenta!
Una capacidad tiene los valores:
name
source
(Uno derepository
(significa yum/apt/...),unarchive-remote
,npm
)symlinks
(Lista de enlaces simbólicos a crear para este binario. Configúralo como[]
si no lo usas. Las subclaves sonsrc
ydest
)binary_path
(El valor se añadirá a $PATH para todos los usuarios y el usuario del servicio del agente de Bamboo)extract_path
(Ruta donde extraer, cuandosource: unarchive-remote
)properties
(Lista de propiedades que se establecen en los agentes remotos. Las subclaves sonkey
yvalue
)
Proxy HTTP
http_proxy
Si se establece, el agente remoto usará este proxy para conexiones HTTP. Este diccionario tiene los siguientes valores:
host
port
user
(opcional)password
(opcional)no_proxy
(opcional, lista de excepciones del proxy. Ver Java Networking and Proxies)
https_proxy
Si se establece, el agente remoto usará este proxy para conexiones HTTPS. Si no se establece pero http_proxy
está configurado, su valor se copiará a https_proxy
. Este diccionario tiene los siguientes valores:
host
port
Otros valores se utilizarán de http_proxy
.
Otras notas para dependencias de npm
Si configuras la instalación de npm, debes asegurarte de instalar node por tu cuenta. Ten en cuenta: Si instalas node en una ruta no predeterminada, asegúrate de definir la subvariable "symlinks" y señalar el destino de npm y node a una ruta predeterminada como /usr/bin/.
Configurar simplemente "binary_path", que agregarían la ruta a la variable $PATH, no funciona ya que el módulo npm de ansible lo ignora.
Advertencia de desuso
- Los diccionarios
bamboo_master
ybamboo_agent
están en desuso y se eliminarán en futuras versiones. Por favor consulta el README. bamboo_agent_capabilities
no instalará paquetes más adelante en el futuro. Se utilizará solo para establecer variables de capacidad para agentes remotos y establecer rutas binarias. Por favor, usapre_tasks
opost_tasks
en tu libro de jugadas, para instalar utilizando tus propias tareas.
Dependencias
Normalmente ninguna. Pero si usas este rol para un agente local de Bamboo, se recomienda usar el rol mimacom.bamboo
.
Ejemplo de libro de jugadas
Esto instala un agente remoto de Bamboo. El binario se obtendrá del nodo maestro de Bamboo (de acuerdo con las variables bamboo_master_*
). El jar se configurará como un servicio de systemd.
Nodejs como una capacidad será descargado, extraído, creado un enlace simbólico y se añadirá la ruta del binario al servicio de systemd para que el agente pueda encontrar nodejs.
Angular CLI como una segunda capacidad se instalará usando npm. No se crean enlaces simbólicos, y se establecerá una capacidad personalizada en el agente remoto de acuerdo con sus properties
.
- hosts: build-agents
become: yes
roles:
- role: mimacom.bamboo-agent
bamboo_agent_remote: true
bamboo_master_version: 6.2.2
bamboo_master_fqdn: "https://bamboo.company.example/"
bamboo_master_https: true
bamboo_master_port: 443
bamboo_agent_capabilities:
- name: https://nodejs.org/dist/v7.7.4/node-v7.7.4-linux-x64.tar.gz
source: unarchive-remote
binary_path: /opt/nodejs/node-v7/bin/
extract_path: /opt/nodejs/
symlinks:
- src: /opt/nodejs/node-v7.7.4-linux-x64
dest: /opt/nodejs/node-v7
- src: /opt/nodejs/node-v7.7.4-linux-x64/bin/npm
dest: /usr/bin/npm
- src: /opt/nodejs/node-v7.7.4-linux-x64/bin/node
dest: /usr/bin/node
properties:
- key: system.builder.node.node-7
value: /opt/nodejs/node-v7/bin/node
- name: "@angular/cli"
source: npm
symlinks: []
properties:
- key: path.has.ng
value: "true"
Actualizar agente remoto de Bamboo
Los agentes remotos de Bamboo no se actualizarán cuando cambies la variable bamboo_master_version
. Cada agente remoto se actualizará por sí mismo una vez que detecte una nueva versión en el nodo maestro. Así que, simplemente preocúpate por actualizar el maestro de Bamboo :-)
Licencia
Licencia Apache 2.0
Información del Autor
Este rol fue creado por Remo Wenger.
Installs a local or remote Bamboo agent with capabilities
ansible-galaxy install mimacom.bamboo-agent