mimacom.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, будет установлен соответствующий пакет. Вы должны установить используемый менеджер пакетов самостоятельно!
Возможность имеет значения:
namesource(Один из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 соединений. Этот словарь имеет следующие значения:
hostportuser(необязательно)password(необязательно)no_proxy(необязательно, список исключений прокси. См. Java Networking and Proxies)
https_proxy
Если установлен, удаленный агент будет использовать этот прокси для HTTPS соединений. Если не установлен, но http_proxy установлен, его значение будет скопировано в https_proxy. Этот словарь имеет следующие значения:
hostport
Другие значения будут использоваться из 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.bamboo-agent