mimacom.bamboo-agent
Rola Ansible: agent Bamboo
Instaluje lokalnego lub zdalnego agenta Bamboo (węzeł) dla określonego serwera głównego Atlassian Bamboo.
Wymagania
Musisz mieć już serwer Atlassian Bamboo, ponieważ agenci Bamboo zależą od niego. Przed użyciem tej roli upewnij się, że masz wystarczającą liczbę licencji na zdalnych agentów Bamboo (jeśli są potrzebni), inaczej nie będą się pojawiać w Bamboo.
Zmienne roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml
):
install_jdk: true
Czy zainstalować JDK, czy nie.
openjdk_version: 1.8.0
Wersja openJDK do zainstalowania (tylko dla agenta zdalnego).
bamboo_agent_remote: False
Czy to jest agent zdalny, czy nie.
bamboo_master_version: ""
bamboo_master_fqdn: ""
bamboo_master_https: False
bamboo_master_port: ""
Połączenie z serwerem głównym Bamboo (tylko dla agenta zdalnego).
bamboo_master_user: bamboo
Użytkownik serwisowy dla węzła głównego Bamboo (tylko dla agenta lokalnego).
bamboo_agent_user: bambooagent
bamboo_agent_uid: 5000
Nazwa użytkownika serwisowego, główna grupa i ID dla systemd (tylko dla agenta zdalnego).
bamboo_agent_application_folder: "/opt/{{ bamboo_agent_user }}"
bamboo_agent_data_folder: "/opt/{{ bamboo_agent_user }}/bamboo-agent-home"
Ścieżka, w której przechowywane są pliki binarne aplikacji i dane aplikacji (tylko dla agenta zdalnego).
bamboo_agent_jvm_memory: 768m
Java heap space dla zdalnego agenta Bamboo (tylko dla agenta zdalnego).
bamboo_agent_npmrc: ""
bamboo_agent_maven_settings: ""
Zawartość plików konfiguracyjnych użytkownika serwisowego dla npm i maven.
bamboo_agent_capabilities: []
Lista możliwości Bamboo. Dla agentów zdalnych, możliwości będą dodane jako rzeczywiste możliwości w zdalnym agencie Bamboo, gdy properties
jest ustawione. Niestety, nie jest to możliwe dla agentów lokalnych.
Jeśli określisz source
z odpowiednią name
, zainstalowany zostanie odpowiedni pakiet. Musisz samodzielnie zainstalować używany menedżer pakietów!
Możliwość ma następujące wartości:
name
source
(jeden zrepository
(oznacza yum/apt/...),unarchive-remote
,npm
)symlinks
(lista symlinków do utworzenia dla tego binarnego. Ustaw na[]
, jeśli nie używasz!)binary_path
(wartość zostanie dodana do $PATH dla wszystkich użytkowników i użytkownika serwisowego agenta Bamboo)extract_path
(ścieżka, w której należy rozpakować, gdysource: unarchive-remote
)properties
(lista właściwości, które są ustawiane na zdalnych agentach. Podklucze tokey
ivalue
)
Proxy HTTP
http_proxy
Jeśli ustawione, zdalny agent użyje tego proxy do połączeń HTTP. Ten słownik ma następujące wartości:
host
port
user
(opcjonalne)password
(opcjonalne)no_proxy
(opcjonalne, lista wyjątków proxy. Zobacz Java Networking and Proxies)
https_proxy
Jeśli ustawione, zdalny agent użyje tego proxy do połączeń HTTPS. Jeśli nie jest ustawione, ale http_proxy
jest ustawione, jego wartość zostanie skopiowana do https_proxy
. Ten słownik ma następujące wartości:
host
port
Inne wartości będą używane z http_proxy
.
Inne uwagi dotyczące zależności npm
Jeśli skonfigurujesz instalację npm, musisz upewnić się, że samodzielnie zainstalujesz node. Zauważ: jeśli zainstalujesz node w niestandardowej ścieżce, upewnij się, że zdefiniujesz subzmienną "symlinks" i skierujesz cel npm i node do domyślnej ścieżki, takiej jak /usr/bin/.
Proste ustawienie "binary_path", które doda ścieżkę do zmiennej $PATH nie działa, ponieważ moduł ansible npm_module tego nie obsługuje!
Ostrzeżenie o deprecji
- Słowniki
bamboo_master
ibamboo_agent
są przestarzałe i zostaną usunięte w przyszłych wersjach. Proszę zapoznać się z plikiem README. bamboo_agent_capabilities
w przyszłości nie będzie już instalować pakietów. Będzie używane tylko do ustawiania zmiennych możliwości dla zdalnych agentów i ustawiania ścieżek binarnych. Proszę używaćpre_tasks
lubpost_tasks
w swoim playbooku, aby zainstalować za pomocą własnych zadań.
Zależności
Zwykle brak. Ale jeśli używasz tej roli dla lokalnego agenta Bamboo, zaleca się użycie roli mimacom.bamboo
.
Przykład playbooka
To instaluje zdalnego agenta Bamboo. Plik binarny zostanie pobrany z węzła głównego Bamboo (zgodnie z zmiennymi bamboo_master_*
). Pakiet jar zostanie skonfigurowany jako usługa systemd.
Nodejs jako możliwość zostanie pobrane, rozpakowane, utworzone symlinki, a ścieżka binarna zostanie dodana do usługi systemd, aby agent mógł znaleźć nodejs.
Angular CLI jako druga możliwość zostanie zainstalowane za pomocą npm. Żadne symlinki nie są tworzone, a niestandardowa możliwość zostanie ustawiona na zdalnym agencie zgodnie z jego 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"
Aktualizacja zdalnego agenta Bamboo
Zdalne agenty Bamboo nie będą aktualizowane, gdy zmienisz zmienną bamboo_master_version
. Każdy zdalny agent zaktualizuje się, gdy wykryje nową wersję na węźle głównym. Więc po prostu martw się o aktualizację głównego serwera Bamboo :-)
Licencja
Licencja Apache 2.0
Informacje o autorze
Ta rola została stworzona przez Remo Wenger.
Installs a local or remote Bamboo agent with capabilities
ansible-galaxy install mimacom.bamboo-agent