mimacom.bamboo-agent

Rôle Ansible : agent Bamboo

Statut de construction

Installe un agent Bamboo (nœud) local ou distant pour un serveur principal Atlassian Bamboo spécifique.

Exigences

Vous devez déjà avoir un serveur Atlassian Bamboo, puisque les agents Bamboo en dépendent. Avant d'utiliser ce rôle, assurez-vous d'avoir suffisamment de licences pour les agents Bamboo distants (si souhaité), sinon ils ne s'afficheront pas dans Bamboo.

Variables du rôle

Les variables disponibles sont énumérées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml) :

install_jdk: true

Indique si JDK doit être installé ou non.

openjdk_version: 1.8.0

La version d'openJDK à installer (uniquement pour l'agent distant).

bamboo_agent_remote: False

Indique s'il s'agit d'un agent distant ou non.

bamboo_master_version: ""
bamboo_master_fqdn: ""
bamboo_master_https: False
bamboo_master_port: ""

Connexion au serveur principal Bamboo (uniquement pour l'agent distant).

bamboo_master_user: bamboo

Utilisateur de service pour le nœud principal Bamboo (uniquement pour l'agent local).

bamboo_agent_user: bambooagent
bamboo_agent_uid: 5000

Nom d'utilisateur de service, groupe principal et ID pour systemd (uniquement pour l'agent distant).

bamboo_agent_application_folder: "/opt/{{ bamboo_agent_user }}"
bamboo_agent_data_folder: "/opt/{{ bamboo_agent_user }}/bamboo-agent-home"

Chemin où stocker les binaires de l'application et les données de l'application (uniquement pour l'agent distant).

bamboo_agent_jvm_memory: 768m

Mémoire du tas Java pour l'agent Bamboo distant (uniquement pour l'agent distant).

bamboo_agent_npmrc: ""
bamboo_agent_maven_settings: ""

Contenus des fichiers de configuration de l'utilisateur de service pour npm et maven.

bamboo_agent_capabilities: []

Une liste des capacités Bamboo. Pour les agents distants, les capacités seront ajoutées comme capacités réelles dans l'agent distant Bamboo, lorsque properties est défini. Malheureusement, ce n'est pas possible pour les agents locaux.

Si vous spécifiez la source avec un nom approprié, un paquet correspondant sera installé. Vous devez installer le gestionnaire de paquets utilisé par vous-même !

Une capacité a les valeurs :

  • name
  • source (L'un des repository (signifie yum/apt/...), unarchive-remote, npm)
  • symlinks (Liste des liens symboliques à créer pour ce binaire. Mettez-le à [] si vous ne l'utilisez pas ! Les sous-clés sont src et dest)
  • binary_path (La valeur sera ajoutée à $PATH pour tous les utilisateurs et l'utilisateur de service de l'agent Bamboo)
  • extract_path (Chemin où extraire, quand source: unarchive-remote)
  • properties (Liste des propriétés qui sont définies sur les agents distants. Les sous-clés sont key et value)

Proxy HTTP

http_proxy

S'il est défini, l'agent distant utilisera ce proxy pour les connexions HTTP. Ce dictionnaire a les valeurs suivantes :

  • host
  • port
  • user (facultatif)
  • password (facultatif)
  • no_proxy (facultatif, liste des exceptions de proxy. Voir Java Networking and Proxies)
https_proxy

S'il est défini, l'agent distant utilisera ce proxy pour les connexions HTTPS. S'il n'est pas défini mais que http_proxy est réglé, sa valeur sera copiée dans https_proxy. Ce dictionnaire a les valeurs suivantes :

  • host
  • port

D'autres valeurs seront utilisées à partir de http_proxy.

Autres notes sur les dépendances npm

Si vous configurez l'installation de npm, vous devez vous assurer d'installer node par vous-même. Veuillez noter : Si vous installez node dans un PATH non par défaut, assurez-vous de définir la sous-variable "symlinks" et de pointer la destination de npm et node vers un chemin par défaut comme /usr/bin/.

Définir simplement "binary_path", qui ajouterait le chemin à la variable $PATH ne fonctionne pas puisque le module npm d'ansible l'ignore !

Avertissement de dépréciation

  • Les dictionnaires bamboo_master et bamboo_agent sont dépréciés et seront supprimés dans de futures versions. Veuillez consulter le README.
  • bamboo_agent_capabilities n'installera plus de paquets à l'avenir. Il sera uniquement utilisé pour définir des variables de capacités pour les agents distants et pour définir des chemins binaires. Veuillez utiliser pre_tasks ou post_tasks dans votre playbook pour installer en utilisant vos propres tâches.

Dépendances

Normalement, aucune. Mais si vous utilisez ce rôle pour un agent Bamboo local, il est recommandé d'utiliser le rôle mimacom.bamboo.

Exemple de playbook

Cela installe un agent Bamboo distant. Le binaire sera récupéré à partir du nœud principal Bamboo (selon les variables bamboo_master_*). Le jar sera configuré en tant que service systemd.

Nodejs en tant que capacité sera téléchargé, extrait, lien symbolique créé et le chemin du binaire sera ajouté au service systemd afin que l'agent puisse trouver nodejs.

Angular CLI en tant que seconde capacité sera installé en utilisant npm. Aucun lien symbolique n'est créé, et une capacité personnalisée sera définie sur l'agent distant selon ses 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"

Mise à jour de l'agent distant Bamboo

Les agents distants Bamboo ne seront pas mis à jour lorsque vous changez la variable bamboo_master_version. Chaque agent distant se mettra à jour lui-même dès qu'il aura détecté une nouvelle version sur le nœud principal. Donc, il suffit de vous inquiéter de la mise à jour du serveur principal Bamboo :-)

Licence

Licence Apache 2.0

Informations sur l'auteur

Ce rôle a été créé par Remo Wenger.

À propos du projet

Installs a local or remote Bamboo agent with capabilities

Installer
ansible-galaxy install mimacom.bamboo-agent
Licence
apache-2.0
Téléchargements
2.6k
Propriétaire
Leading provider of open source, cloud and data software.