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
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 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 によって作成されました。