mimacom.bamboo-agent
Ansible Rolle: bamboo-agent
Installiert einen lokalen oder entfernten Bamboo-Agenten (Knoten) für einen bestimmten Atlassian Bamboo Master-Server.
Anforderungen
Du musst bereits einen Atlassian Bamboo-Server haben, da Bamboo-Agenten davon abhängen. Stelle vor der Verwendung dieser Rolle sicher, dass du genügend Lizenzen für entfernte Bamboo-Agenten (falls gewünscht) hast, da sie sonst nicht in Bamboo angezeigt werden.
Rollen-Variablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml
):
install_jdk: true
Ob JDK installiert werden soll oder nicht.
openjdk_version: 1.8.0
Die zu installierende Version von openJDK (nur für entfernte Agenten).
bamboo_agent_remote: False
Ob dies ein entfernter Agent ist oder nicht.
bamboo_master_version: ""
bamboo_master_fqdn: ""
bamboo_master_https: False
bamboo_master_port: ""
Bamboo Master-Verbindung (nur für entfernte Agenten)
bamboo_master_user: bamboo
Dienstbenutzer für den Bamboo-Master-Knoten (nur für lokale Agenten)
bamboo_agent_user: bambooagent
bamboo_agent_uid: 5000
Benutzername des Dienstes, primäre Gruppe und ID für systemd (nur für entfernte Agenten).
bamboo_agent_application_folder: "/opt/{{ bamboo_agent_user }}"
bamboo_agent_data_folder: "/opt/{{ bamboo_agent_user }}/bamboo-agent-home"
Pfad, in dem Anwendungsbinaries und Anwendungsdaten gespeichert werden (nur für entfernte Agenten).
bamboo_agent_jvm_memory: 768m
Java-Heap-Speicher für entfernte Bamboo-Agenten (nur für entfernte Agenten).
bamboo_agent_npmrc: ""
bamboo_agent_maven_settings: ""
Inhalt der Einstellungsdateien des Dienstbenutzers für npm und maven.
bamboo_agent_capabilities: []
Eine Liste von Bamboo-Fähigkeiten. Für entfernte Agenten werden die Fähigkeiten als tatsächliche Fähigkeiten im entfernten Bamboo-Agenten hinzugefügt, wenn properties
festgelegt sind. Leider ist dies für lokale Agenten nicht möglich.
Wenn du die source
mit einem geeigneten name
angibst, wird ein entsprechendes Paket installiert. Du musst den verwendeten Paketmanager selbst installieren!
Eine Fähigkeit hat die Werte:
name
source
(Eines vonrepository
(bedeutet yum/apt/...),unarchive-remote
,npm
)symlinks
(Liste von Symlinks, die für dieses Binary erstellt werden sollen. Setze sie auf[]
, wenn du sie nicht verwendest! Unterunterglieder sindsrc
unddest
)binary_path
(Wert wird für alle Benutzer und den Bamboo-Agent-Dienstbenutzer zu $PATH hinzugefügt)extract_path
(Pfad, wo extrahiert wird, wennsource: unarchive-remote
)properties
(Liste von Eigenschaften, die bei entfernten Agenten festgelegt werden. Unterunterglieder sindkey
undvalue
)
HTTP-Proxy
http_proxy
Wenn festgelegt, verwendet der entfernte Agent diesen Proxy für HTTP-Verbindungen. Dieses Dictionary hat folgende Werte:
host
port
user
(optional)password
(optional)no_proxy
(optional, Liste von Proxy-Ausnahmen. Siehe Java Networking und Proxies)
https_proxy
Wenn festgelegt, verwendet der entfernte Agent diesen Proxy für HTTPS-Verbindungen. Wenn nicht festgelegt, aber http_proxy
gesetzt ist, wird dessen Wert auf https_proxy
kopiert. Dieses Dictionary hat folgende Werte:
host
port
Andere Werte werden von http_proxy
verwendet.
Weitere Hinweise zu npm-Abhängigkeiten
Wenn du konfigurierst, npm zu installieren, musst du sicherstellen, dass du Node selbst installierst. Bitte beachte: Wenn du Node in ein nicht-standardmäßiges PATH installierst, stelle sicher, dass du die Untervariable "symlinks" definierst und den Zielort von npm und node auf einen Standard-Pfad wie /usr/bin/ zeigst.
Einfaches Setzen von "binary_path", das den Pfad zur $PATH-Variable hinzufügen würde, funktioniert nicht, da das ansible npm_module dies ignoriert!
Abkündigungswarnung
- Die Dictionaries
bamboo_master
undbamboo_agent
sind abgekündigt und werden in zukünftigen Versionen entfernt. Bitte konsultiere das README. bamboo_agent_capabilities
wird in Zukunft keine Pakete mehr installieren. Es wird nur zur Festlegung von Fähigkeitsvariablen für entfernte Agenten verwendet und zum Setzen von Binary-Pfaden. Bitte verwendepre_tasks
oderpost_tasks
in deinem Playbook, um mit deinen eigenen Aufgaben zu installieren.
Abhängigkeiten
Normalerweise keine. Aber wenn du diese Rolle für einen lokalen Bamboo-Agenten verwendest, wird empfohlen, die Rolle mimacom.bamboo
zu verwenden.
Beispiel-Playbook
Dies installiert einen entfernten Bamboo-Agenten. Die Binary wird vom Bamboo-Master-Knoten abgerufen (gemäß der Variablen bamboo_master_*
). Die JAR wird als systemd-Dienst eingerichtet.
Nodejs wird als Fähigkeit heruntergeladen, extrahiert, symlinked und der Binary-Pfad wird zum systemd-Dienst hinzugefügt, damit der Agent Nodejs findet.
Angular CLI als zweite Fähigkeit wird über npm installiert. Es werden keine Symlinks erstellt, und eine benutzerdefinierte Fähigkeit wird auf dem entfernten Agenten gemäß seinen properties
festgelegt.
- 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"
Upgrade des Bamboo Remote Agenten
Bamboo-Remote-Agenten werden nicht aktualisiert, wenn du die Variable bamboo_master_version
änderst. Jeder entfernte Agent aktualisiert sich selbst, sobald er eine neue Version auf dem Master-Knoten erkannt hat. Also kümmere dich einfach um das Upgrade des Bamboo-Masters :-)
Lizenz
Apache Lizenz 2.0
Autoreninformation
Diese Rolle wurde von Remo Wenger erstellt.
Installs a local or remote Bamboo agent with capabilities
ansible-galaxy install mimacom.bamboo-agent