mimacom.bamboo-agent
Rôle Ansible : agent Bamboo
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 desrepository
(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 sontsrc
etdest
)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, quandsource: unarchive-remote
)properties
(Liste des propriétés qui sont définies sur les agents distants. Les sous-clés sontkey
etvalue
)
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
etbamboo_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 utiliserpre_tasks
oupost_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.
Installs a local or remote Bamboo agent with capabilities
ansible-galaxy install mimacom.bamboo-agent