bamboo-agent

Ansible Роль: bamboo-agent

Статус сборки

Устанавливает локальный или удаленный агент Bamboo (узел) для конкретного сервера Atlassian Bamboo.

Требования

У вас уже должен быть сервер Atlassian Bamboo, так как агенты Bamboo зависят от него. Перед использованием этой роли убедитесь, что у вас достаточно лицензий для удаленных агентов Bamboo (если это необходимо), иначе они не появятся в Bamboo.

Переменные роли

Доступные переменные перечислены ниже, вместе с значениями по умолчанию (см. defaults/main.yml):

install_jdk: true

Устанавливать ли JDK или нет.

openjdk_version: 1.8.0

Версия openJDK для установки (только удаленный агент).

bamboo_agent_remote: False

Является ли это удаленным агентом.

bamboo_master_version: ""
bamboo_master_fqdn: ""
bamboo_master_https: False
bamboo_master_port: ""

Соединение с мастер-сервером Bamboo (только для удаленного агента).

bamboo_master_user: bamboo

Пользователь службы для узла мастер-сервера Bamboo (только локальный агент).

bamboo_agent_user: bambooagent
bamboo_agent_uid: 5000

Имя пользователя службы, основная группа и идентификатор для systemd (только удаленный агент).

bamboo_agent_application_folder: "/opt/{{ bamboo_agent_user }}"
bamboo_agent_data_folder: "/opt/{{ bamboo_agent_user }}/bamboo-agent-home"

Путь, где хранить бинарные файлы приложения и данные приложения (только удаленный агент).

bamboo_agent_jvm_memory: 768m

Память кучи Java для удаленного агента Bamboo (только удаленный агент).

bamboo_agent_npmrc: ""
bamboo_agent_maven_settings: ""

Содержимое файлов настроек пользователя службы для npm и maven.

bamboo_agent_capabilities: []

Список возможностей Bamboo. Для удаленных агентов возможности будут добавлены как реальные возможности в удаленный агент Bamboo, когда установлен параметр properties. К сожалению, это невозможно для локальных агентов.

Если вы укажете source с правильным name, будет установлен соответствующий пакет. Вы должны установить используемый менеджер пакетов самостоятельно!

Возможность имеет значения:

  • name
  • source (Один из repository (означает yum/apt/...), unarchive-remote, npm)
  • symlinks (Список символьных ссылок, которые нужно создать для этого бинарного файла. Установите в [], если не используете это! Подключи - src и dest)
  • binary_path (Значение будет добавлено в $PATH для всех пользователей и пользователя службы агента Bamboo)
  • extract_path (Путь, куда извлечь, когда source: unarchive-remote)
  • properties (Список свойств, которые установлены на удаленных агентах. Подключи - key и value)

HTTP прокси

http_proxy

Если установлен, удаленный агент будет использовать этот прокси для HTTP соединений. Этот словарь имеет следующие значения:

  • host
  • port
  • user (необязательно)
  • password (необязательно)
  • no_proxy (необязательно, список исключений прокси. См. Java Networking and Proxies)
https_proxy

Если установлен, удаленный агент будет использовать этот прокси для HTTPS соединений. Если не установлен, но http_proxy установлен, его значение будет скопировано в https_proxy. Этот словарь имеет следующие значения:

  • host
  • port

Другие значения будут использоваться из http_proxy.

Другие примечания для зависимостей npm

Если вы настраиваете установку npm, вам необходимо самостоятельно установить node. Пожалуйста, обратите внимание: если вы устанавливаете node в нестандартный PATH, убедитесь, что определили подпеременную "symlinks" и указали путь для npm и node на стандартный путь, например, /usr/bin/.

Просто установка "binary_path", которая добавляет путь в переменную $PATH, не сработает, так как модуль npm ansible игнорирует это!

Предупреждение о снятии с поддержки

  • словари bamboo_master и bamboo_agent сняты с поддержки и будут удалены в будущих релизах. Пожалуйста, смотрите README.
  • bamboo_agent_capabilities больше не будет устанавливать пакеты в будущем. Оно будет использоваться только для установки переменных возможностей для удаленных агентов и установления бинарных путей. Пожалуйста, используйте pre_tasks или post_tasks в вашем плейбуке, чтобы устанавливать с использованием ваших собственных задач.

Зависимости

Обычно нет. Но если вы используете эту роль для локального агента Bamboo, рекомендуется использовать роль mimacom.bamboo.

Пример плейбука

Это устанавливает удаленный агент Bamboo. Бинарный файл будет загружен с узла мастер-сервера Bamboo (в соответствии с переменными bamboo_master_*). JAR будет настроен как служба systemd.

Nodejs как возможность будет загружен, извлечен, сделана символьная ссылка, и бинарный путь будет добавлен в службу systemd, чтобы агент мог найти nodejs.

Angular CLI как вторая возможность будет установлена с использованием npm. Символьные ссылки не создаются, и будет установлена пользовательская возможность на удаленном агенте в соответствии с его 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"

Обновление удаленного агента Bamboo

Удаленные агенты Bamboo не будут обновлены, когда вы измените переменную bamboo_master_version. Каждый удаленный агент обновит себя, как только обнаружит новую версию на мастер-узле. Так что просто беспокойтесь об обновлении мастер-сервера Bamboo :-)

Лицензия

Apache License 2.0

Информация об авторе

Эта роль была создана Remo Wenger.

О проекте

Installs a local or remote Bamboo agent with capabilities

Установить
ansible-galaxy install mimacom/ansible-role-bamboo-agent
Лицензия
apache-2.0
Загрузки
2574
Владелец
Leading provider of open source, cloud and data software.