mimacom.bamboo-agent

Rol de Ansible: bamboo-agent

Estado de Construcción

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 de repository (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 son src y dest)
  • 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, cuando source: unarchive-remote)
  • properties (Lista de propiedades que se establecen en los agentes remotos. Las subclaves son key y value)

Proxy HTTP

http_proxy

Si se establece, el agente remoto usará este proxy para conexiones HTTP. Este diccionario tiene los siguientes valores:

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 y bamboo_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, usa pre_tasks o post_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.

Acerca del proyecto

Installs a local or remote Bamboo agent with capabilities

Instalar
ansible-galaxy install mimacom.bamboo-agent
Licencia
apache-2.0
Descargas
2.6k
Propietario
Leading provider of open source, cloud and data software.