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 远程代理中。不幸的是,对于本地代理,这是不可能的。

如果您指定了带有适当 namesource,则会安装相应的包。您必须自己安装所用的包管理器!

能力包含以下值:

  • name
  • source (可以是 repository(表示 yum/apt/...),unarchive-remotenpm
  • symlinks (要为此二进制文件创建的符号链接列表,设置为 [] 以防不需要!子键为 srcdest
  • binary_path (该值将添加到所有用户和 Bamboo 代理服务用户的 $PATH 中)
  • extract_path (当 source: unarchive-remote 时要提取的路径)
  • properties (在远程代理上设置的属性列表,子键为 keyvalue

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_masterbamboo_agent 已被弃用,将在未来版本中删除。请参阅 README。
  • bamboo_agent_capabilities 将不再安装软件包。它将仅用于设置远程代理的能力变量,并设置二进制路径。 请使用您的 playbook 中的 pre_taskspost_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 创建。

关于项目

Installs a local or remote Bamboo agent with capabilities

安装
ansible-galaxy install mimacom.bamboo-agent
许可证
apache-2.0
下载
2.6k
拥有者
Leading provider of open source, cloud and data software.