mimacom.bamboo-agent

Rola Ansible: agent Bamboo

Status budowy

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 z repository (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ć, gdy source: unarchive-remote)
  • properties (lista właściwości, które są ustawiane na zdalnych agentach. Podklucze to key i value)

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:

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 i bamboo_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 lub post_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.

O projekcie

Installs a local or remote Bamboo agent with capabilities

Zainstaluj
ansible-galaxy install mimacom.bamboo-agent
Licencja
apache-2.0
Pobrania
2.6k
Właściciel
Leading provider of open source, cloud and data software.