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
服务用户名、主要组和系统用户 ID(仅适用于远程代理)。
bamboo_agent_application_folder: "/opt/{{ bamboo_agent_user }}"
bamboo_agent_data_folder: "/opt/{{ bamboo_agent_user }}/bamboo-agent-home"
存储应用程序二进制文件和应用程序数据的路径(仅适用于远程代理)。
bamboo_agent_jvm_memory: 768m
远程 Bamboo 代理的 Java 堆空间(仅适用于远程代理)。
bamboo_agent_npmrc: ""
bamboo_agent_maven_settings: ""
服务用户的 npm 和 maven 设置文件内容。
bamboo_agent_capabilities: []
Bamboo 能力的列表。对于远程代理,当设置了 properties
时,能力将作为实际能力添加到 Bamboo 远程代理中。不幸的是,对于本地代理,这是不可能的。
如果您指定了带有适当 name
的 source
,则会安装相应的包。您必须自己安装所用的包管理器!
能力包含以下值:
name
source
(可以是repository
(表示 yum/apt/...),unarchive-remote
,npm
)symlinks
(要为此二进制文件创建的符号链接列表,设置为[]
以防不需要!子键为src
和dest
)binary_path
(该值将添加到所有用户和 Bamboo 代理服务用户的 $PATH 中)extract_path
(当source: unarchive-remote
时要提取的路径)properties
(在远程代理上设置的属性列表,子键为key
和value
)
HTTP 代理
http_proxy
如果设置,远程代理将在 HTTP 连接中使用此代理。此字典包含以下值:
host
port
user
(可选)password
(可选)no_proxy
(可选,代理例外列表。参见 Java 网络和代理)
https_proxy
如果设置,远程代理将在 HTTPS 连接中使用此代理。如果未设置但 http_proxy
已设置,则其值将被复制到 https_proxy
。此字典包含以下值:
host
port
其他值将从 http_proxy
中使用。
关于 npm 依赖的其他说明
如果您配置安装 npm,必须确保自行安装 Node。请注意:如果您将 Node 安装到非默认路径,请确保定义 "symlinks" 子变量,并将 npm 和 Node 的目标指向类似 /usr/bin/ 的默认路径。
简单地设置 "binary_path",这会将路径添加到 $PATH 变量中是不行的,因为 ansible npm_module 会忽略它!
降级警告
- 字典
bamboo_master
和bamboo_agent
已被弃用,将在未来版本中删除。请参阅 README。 bamboo_agent_capabilities
将不再安装软件包。它将仅用于设置远程代理的能力变量,并设置二进制路径。 请使用您的 playbook 中的pre_tasks
或post_tasks
自行安装。
依赖
通常没有。但如果您将此角色用于本地 Bamboo 代理,建议使用 mimacom.bamboo
角色。
示例 Playbook
这将安装一个 Bamboo 远程代理。二进制文件将从 Bamboo 主节点获取(根据 bamboo_master_*
变量)。该 jar 将设置为 systemd 服务。
Node.js 作为能力将被下载、解压、创建符号链接,并相应地添加到 systemd 服务中,以便代理找到 Node.js。
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_master_version
变量时,Bamboo 远程代理不会被升级。每个远程代理将在检测到主节点的新版本时自行更新。因此,只需关注升级 Bamboo 主节点 :-)
许可
Apache 许可证 2.0
作者信息
此角色由 Remo Wenger 创建。