mimacom.bamboo-agent

Ansible Rolle: bamboo-agent

Build Status

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 von repository (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 sind src und dest)
  • binary_path (Wert wird für alle Benutzer und den Bamboo-Agent-Dienstbenutzer zu $PATH hinzugefügt)
  • extract_path (Pfad, wo extrahiert wird, wenn source: unarchive-remote)
  • properties (Liste von Eigenschaften, die bei entfernten Agenten festgelegt werden. Unterunterglieder sind key und value)

HTTP-Proxy

http_proxy

Wenn festgelegt, verwendet der entfernte Agent diesen Proxy für HTTP-Verbindungen. Dieses Dictionary hat folgende Werte:

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 und bamboo_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 verwende pre_tasks oder post_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.

Über das Projekt

Installs a local or remote Bamboo agent with capabilities

Installieren
ansible-galaxy install mimacom.bamboo-agent
Lizenz
apache-2.0
Downloads
2.6k
Besitzer
Leading provider of open source, cloud and data software.