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.
ansible-galaxy install mimacom/ansible-role-bamboo-agent