mimacom.bamboo-agent

Ansible ロール: bamboo-agent

ビルドステータス

特定の Atlassian Bamboo マスターサーバー用にローカルまたはリモートの 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 の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 リモートエージェントに追加されます。残念ながら、ローカルエージェントにはこれは不可能です。

source を適切な name で指定すると、対応するパッケージがインストールされます。使用するパッケージマネージャーは自分でインストールする必要があります!

能力には以下の値があります:

  • name
  • sourcerepository(yum/apt/...を意味する)、unarchive-remotenpmのいずれか)
  • symlinks(このバイナリのために作成するシンボリックリンクのリスト。使用しない場合は[]に設定してください! サブキーは srcdest
  • binary_path(値はすべてのユーザーと Bamboo エージェントサービスユーザーのために $PATH に追加されます)
  • extract_pathsource: unarchive-remote の場合に展開するパス)
  • properties(リモートエージェントに設定されるプロパティのリスト。サブキーは keyvalue

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 変数にパスを追加することはできません。なぜなら、ansible の npm_module はそれを無視するからです!

非推奨警告

  • bamboo_master および bamboo_agent のディクショナリは非推奨であり、将来のリリースから削除されます。READMEを参照してください。
  • bamboo_agent_capabilities は将来、パッケージをインストールしなくなります。リモートエージェントの能力変数を設定するためにのみ使用され、バイナリパスを設定します。 各自のタスクを使用してインストールするために、プレイブックの pre_tasks または post_tasks を使用してください。

依存関係

通常はありません。しかし、ローカルの Bamboo エージェントにこのロールを使用する場合は、mimacom.bamboo ロールを使用することをお勧めします。

プレイブックの例

これは、Bamboo のリモートエージェントをインストールします。バイナリは Bamboo マスターノードから取得されます(bamboo_master_* 変数に基づきます)。jar は systemd サービスとして設定されます。

Nodejs は能力としてダウンロードされ、展開され、シンボリックリンクが作成され、エージェントが nodejs を見つけられるようにバイナリパスが systemd サービスに追加されます。

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 License 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.