カスタム エラスティック イメージの作成 - Windows
次にリストされたタスクを実行するには、リモート デスクトップ クライアントを使用して管理者アカウントでインスタンスにログインします。
ユーザー アカウントを設定する
Bamboo エージェントが使用するユーザー アカウントを作成します。アカウント名は自由に指定ください。次の例では Bamboo を使用しています。お使いのマシンで実行中のすべてのビルドが、このアカウントを使用します。一般ユーザーでかまいません (つまり、ビルドで必要な場合を除き、パワー ユーザーや管理者である必要はありません)。そのユーザーのパスワードを設定します。Windows イメージの既定のユーザーは、ユーザー名は Bamboo、パスワードは Atlassian1 です。
重要: 既定では、新たに作成されたユーザーに対しては、リモート ログイン権利を拒否する必要があります (それが望ましいからです)。念のため、そのユーザーの資格情報を使用してログインできないことを確認してください (資格情報を既定以外のものに変更していない限り)。
ファイアウォールを設定する
ポート 26224 で TCP 接続を受け入れるように Windows ファイアウォールを再設定します。Bamboo にはその他のインバウンド接続は必要ありません。
このポートの EC2 セキュリティ グループ設定の変更について心配する必要はありません。Bamboo が自動的にセットアップします。
必要なソフトウェアをインストールする
サポート対象の Oracle Java バージョンをインストールします。
- こちらの場所からエージェント インストーラー zip の最新バージョンをダウンロードします(このガイドが作成された時点では、最新バージョンはこちらでした)。任意の場所に展開します。Bamboo で配布しているストック イメージに合わせて
C:\opt\bamboo-elastic-agentを使用することをおすすめします。 - Windows インスタンスの起動時にバッチ ファイルも起動するようにする必要があります。これを行うには、Windows タスク スケジューラ ([スタート] > [管理ツール]> [タスク スケジューラ]) を使用し、[詳細] に
<PATH TO YOUR BATCH FILE>を指定して「プログラムの開始」という新しい操作タスクを設定します。
[全般] タブで [ユーザーがログオンしているかどうかにかかわらず実行する] を選択するのを忘れないでください。
ネットワーク接続が起動して稼働中になっている場合のみエージェントが起動するように、トリガー タスクを適切に定義します。
アカウントがバッチ ジョブとしてログインできる必要があるという警告がタスク マネージャーに表示されます。ユーザーに対して「Log on as batch job (バッチ ジョブとしてログオン)」ポリシーが設定されていることを確認してください。[コントロール パネル] > [管理ツール] > [ローカル セキュリティ ポリシー] の順に移動することでこのポリシーにアクセスできます。[ローカル セキュリティ ポリシー] ウィンドウで、[ローカル ポリシー] > [ユーザー権利の割り当て] > [Log on as batch job (バッチ ジョブとしてログオン)] をクリックします。
インスタンスで EBS の使用量を有効にする
Bamboo 5 以降では、Windows インスタンスでカスタム エラスティック ブロック ストレージを使用できるようになります。そのためには、インスタンスで SAN ポリシーを変更する必要があります。変更しないと、ディスクは「オフライン」状態で接続され、「the disk is offline because of policy set by an administrator (管理者が設定したポリシーにより、ディスクがオフラインになっています)」というステータス テキストが表示されます。
Diskpart ユーティリティを使用して SAN ポリシーを変更できます。Diskpart を実行して以下を入力します。
san policy=OnlineAll
Enter を押します。Diskpart; を終了します。これで新しいポリシーが有効になります。
テスト
すべてが正しく設定されているかどうかを確認する最も簡単な方法は、Windows タスク スケジューラ ([スタート] > [管理ツール]> [タスク スケジューラ]) を使用して定義したタスクを実行することです。タスクを右クリックして [実行] を選択します。必ずタスク スケジューラを使用してスクリプトをテストしてください。スクリプトを手動で実行すると、管理者アカウントを使用することになりますが、これは正しい方法ではありません。
%USERPROFILE%/bamboo-elastic-agent.out ファイルを探します。このファイルがあり、Bamboo Server によって起動された EC2 インスタンス内でエージェントが実行されなかったというエラー メッセージが含まれていれば、カスタマイズは正常に完了しています。
c:\opt\bamboo-elastic-agent\bin\prepareInstanceForSaving.bat を実行します。
インスタンスをバンドルします。新しいイメージの AMI ID をメモしておきます。
Bamboo からのイメージの起動
40 分以内に次の手順を完了しないと Bamboo によってインスタンスがシャット ダウンされるため、時間がなくなった場合は忘れずに作業内容を保存してください (つまり、中間イメージを作成します)。
Bamboo で、先ほど作成したイメージのイメージ構成を定義し、Bamboo から起動します。すべてうまくいけば、エージェントがインスタンスと一緒に起動します。次のステップが実行されます。
- 追加のディレクトリを作成して、/create /opt/bamboo-elastic-agent のディレクトリ構造を更新します。表示されれば、Java がそのマシンで適切に動作しており、S3 への接続が機能していることになります。
- エージェントを起動すると、Bamboo エージェント ホーム ディレクトリが作成され、Bamboo サーバーから取得されたデータが反映されます。
すべてうまくいけば、エージェントが Bamboo インスタンス リストに表示されます。これで Bamboo エージェントの起動は完了です。
エージェントは Bamboo サーバーと同期したばかりであるため (サーバーにあるものと完全に一致する jar ファイルをすべてダウンロードしたため)、追加の手順として、その状態を保存して、将来のインスタンスの起動を早め、帯域幅の使用量を減らすことをおすすめします。
そのためには、以下を実行します。
c:\opt\bamboo-elastic-agent\bin\prepareInstanceForSaving.bat
イメージを保存し、新しいイメージ構成を定義し、インスタンスを強制終了して Bamboo から実行してみてください。






