カスタム エラスティック イメージの作成
Atlassian doesn't provide support for customized images. Bamboo provides flexibility to use customized machine images, but it's impossible for us to support all individual configurations.
Use Bamboo stock images as the base for all image customizations to ensure a minimal level of consistency of your Elastic Bamboo setup.
An elastic image is an Amazon Machine Image (AMI) that is stored in one of Amazon data centres for use with the Elastic Bamboo feature. An elastic image is used to create elastic instances, which in turn create elastic agents. Conceptually, an elastic image is equivalent to an operating system running on a computer's boot hard drive and elastic instances would be the software that runs on this operation system.
Amazon Web Services (AWS) に登録されたエラスティック イメージのそれぞれに、AMI ID と呼ばれる独自の識別子があります。
1 つの Bamboo Server に複数のエラスティック イメージを関連付けられます。1 つの既定の共有イメージがアトラシアンによって AWS で管理されており、すべての Elastic Bamboo ユーザーが利用できます。
At a high level, the process for creating a custom elastic image consists of taking one of the existing Amazon Machine Images (AMIs) available on Amazon EC2, starting an instance of the AMI, customising the instance and then creating an image from the customised instance. This image can then be used as an elastic image in your Bamboo installation.
カスタム イメージを作成する代わりに次のことを検討してください (Linux/UNIX のみ)。
- Bamboo 管理 / イメージ設定に用意されているインスタンス設定スクリプトを使用できます。このスクリプトは、エージェントが起動する前にルート ユーザーとして実行されるものです。
- Consider customising an existing Bamboo image by using Amazon's Elastic Block Store (EBS), as described in Configuring elastic instances to use the EBS.
上記のオプションは、新しいカスタム イメージを作成するよりもはるかに簡単です。問題が発生し、支援が必要な場合は、遠慮なくお問い合わせください。
始める前に
- これは簡単な手順ではなく、おそらく必要ないでしょう。
- Please note, Atlassian does not support custom elastic images. Consider customising the elastic agents started from your stock images instead.
- 次の手順に記載の EC2 コマンドの多くは、コマンド ライン ツールではなく AWS コンソールを使用して実行できます (イメージの登録など)。自分が一番使いやすい方法を使用してください。
On this page:
1. 要件
まず、次の設定が完了していることを確認してください。
- EC2 が設定された Amazon Web Services (AWS) アカウント — Elastic Bamboo をすでに使用している場合は、EC2 が設定された AWS アカウントをすでに保有しているはずです。そうでない場合は、「Elastic Bamboo の使用を開始する」を参照してください。
Amazon EC2 API ツール — ローカル マシンに EC2 API ツールをインストールする必要があります。そうしないと、AMI インスタンスを起動してアクセスすることができません。なお、これらのツールを実行するには Java ランタイム環境が必要です。次のコマンドを実行すると、EC2 API ツールをインストールできます。
wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip unzip ec2-api-tools.zip- 環境変数 — カスタム エラスティック イメージを作成する前に、ローカル マシンで次の環境変数を設定する必要があります。
EC2_HOME— インストール済みの EC2 API ツールのパスに設定しますEC2_CERT— EC2 アカウントに割り当てられた証明書のパスに設定します。EC2_PRIVATE_KEY— AWS アカウントに割り当てられた非公開キーのパスに設定します。
登録済みキー ペア — AMI インスタンスで EC2 API ツールを使用するには、非公開キー ファイルと証明書ファイルで構成される登録済み EC2 キー ペアが必要です。以前に EC2 キー ペアを生成して登録したことがある場合は (EC2 API ツールを使用するためなど)、それを再利用できます。新しいキー ペアを生成する必要がある場合は、次のコマンドを使用して生成できます。
ec2-add-keypair <key_pair_name>非公開キーの内容はコンソールのコマンド ライン出力に表示されます。この内容を先頭に次の行を追加してファイルに保存します。
"--BEGIN RSA PRIVATE KEY--"末尾には次の行を追加します。
"--END RSA PRIVATE KEY--"この非公開キー ファイルは、AMI インスタンスへのアクセスに使用されます。次のコマンドを実行して、非公開キー ファイルに対する適切な権限を設定します。
chmod 600 <private_key_file>
2.既存の AMI を選択する
We strongly recommend that you select an existing Linux/UNIX AMI to customise, rather than starting with a blank AMI. When choosing an AMI, decide whether you want to launch 32-bit or 64-bit instances from your custom elastic image and select an existing AMI matching your choice.
We recommend the following existing Linux/UNIX AMIs for customisation (in order of preference):
| ソース | 説明 | AMI リスト |
|---|---|---|
| アトラシアン | アトラシアンから提供されているストック イメージの 1 つ。これは、Linux または Windows 用の Amazon イメージを Bamboo 用に更新して準備したものです。つまり、Bamboo の前提条件をインストールする必要はありません。 | Bamboo インスタンスの管理 / イメージ設定で利用可能 |
| Amazon | Amazon から提供されている Centos ベースのイメージ。Bamboo の前提条件はインストールされていません。通常は、アトラシアンの AMI を使用することをお勧めします。 | Amazon のサイト |
| Canonical (Ubuntu) | Canonical (Ubuntu Linux プロジェクトの背後にある会社) から提供されている公式の Ubuntu イメージです。Bamboo の前提条件はインストールされていません。 | Canonical のサイト |
Atlassian's AMIs (and hence, their IDs) may change with each release of Bamboo, including both major and minor releases. To quickly access Atlassian's AMI IDs for your currently-running version of Bamboo, open that Bamboo site in a web browser and access its 'Image Configurations' page (see Managing your Elastic Image Configurations for more information). The AMI IDs of Atlassian's AMIs are labelled with "(stock image)".
3.インスタンスを起動する
After you have selected an existing AMI to customise, the next step is to start an instance of the AMI.
3.1 アトラシアンの既定の AMI のインスタンスを起動する
If you chose to customise Atlassian's default AMI, you will have to start the instance from the admin section of Bamboo. See Starting an elastic instance.
アトラシアンの既定の AMI は、コマンド ラインの ec2 ツールでは起動できません。これは、起動時に、アトラシアンの AMI の Bamboo エージェントによって、それが Bamboo Server から起動されたかどうかが確認され、そうでない場合はすぐにシャットダウンされるためです。
起動したら、「エラスティック インスタンスにアクセスする」を参照して、実行中のインスタンスへのアクセス方法に関する詳細を確認してください。
3.2 コマンド ラインからインスタンスを起動する
次のように、ec2-run-instances コマンドを使用してインスタンスを起動します。
ec2-run-instances <image_name> -k <key_pair_name>
ここで、<image_name> は前のステップで選択した AMI の名前であり、<key_pair_name> は「1. 要件」で生成した登録済みキー ペアの名前です。このキーの公開証明書がインスタンスに挿入されます。
たとえば、キー ペア my-keypair を使用してイメージ ami-e55bbd8c のインスタンスを起動する場合は、次のコマンドを実行します。
ec2-run-instances ami-e55bbd8c -k my-keypair
このコマンドのコマンド ライン出力は次のとおりです。
INSTANCE i-25b86743 ami-e55bbd8c running my-keypair
i-25b86743 は、上記の例の新しいインスタンスの名前です。新しいインスタンスの名前は、次のステップでインスタンスにアクセスするために必要になるため書き留めておく必要があります。
使用されていないインスタンスをシャットダウンすることを忘れないでください。
インスタンスを起動すると、インスタンスの稼働時間に対して Amazon から請求されることに注意してください。このステップの後にカスタム エラスティック イメージの設定を中止する場合は、必ず AWS コンソールからインスタンスをシャットダウンしてください。
3.3 Bamboo からインスタンスを起動する
You can also start a fresh, uncustomised image from Bamboo and begin customisation. The drawback of this approach is that you have only 40 minutes before Bamboo shuts down your instance. The advantage is that you can customise the agent in a single step (as opposed to having to customise/create image/start from Bamboo/save image again).
4.インスタンスにアクセスする
Bamboo からインスタンスを起動したら、「エラスティック インスタンスにアクセスする」を参照して、実行中のインスタンスへのアクセス方法に関する詳細を確認してください。
インスタンスが実行されていれば、インスタンスにアクセスできるようにインスタンスのアドレスを取得する必要があります。そのためには、次のコマンドを使用します。
ec2-describe-instances <instance_name>
たとえば、インスタンス i-25b86743 のアドレスを調べるには、次のように入力します。
ec2-describe-instances i-25b86743
このコマンドのコマンド ライン出力は次のようになります。
RESERVATION r-790f7210 121852097033 default
INSTANCE i-25b86743 ami-e55bbd8c ec2-174-129-94-241.compute-1.amazonaws.com
domU-12-31-39-04-38-87.compute-1.internal running elasticbamboo 0 m1.small
2009-06-24T12:36:20+0000 us-east-1c aki-a71cf9ce ari-a51cf9cc
monitoring-disabled
上記の例のインスタンスのアドレスは ec2-174-129-94-241.compute-1.amazonaws.com です。
その後、このアドレスを使用して SSH 経由でインスタンスにアクセスできます。手順については、「エラスティック インスタンスにアクセスする」を参照してください。このドキュメントのサンプル コマンド テキストを使用する場合は、次のように調整する必要があります。
- サンプル コマンド テキスト内の
/opt/bamboo/home/xml-data/configuration/elasticbamboo.pkを「1. 要件」で生成した非公開キー ファイルを置き換えます。 - サンプル コマンド テキスト内の
ec2-68-111-185-197.compute-1.amazonaws.comを対象のインスタンスのアドレスに置き換えます。
5. Customising your instance
Now that you have a running instance, customisation steps heavily depend on the operating system you're using. We've prepared separate pages with Linux-specific instructions and Windows-specific instructions.
6. Creating an image of your customised instance
新しいイメージを作成するプロセスは、イメージがインスタンス ストアと EBS ルート イメージのどちらに基づいているかによって異なります。イメージのタイプは、AWS コンソールまたは ec2-describe-images を使用して確認できます。
EBS ルート インスタンスからイメージを作成する
手順については、Amazon チュートリアルを参照してください。
インスタンス ストア (S3) インスタンスからイメージを作成する
The final step is to create an image from your customised instance. To do this, you will require the following information:
- Amazon アカウント番号
- アクセス キー ID
- シークレット アクセス キー
- イメージの保存に使用される Amazon S3 バケット名 (Amazon S3 にアクセスできない場合は、このページでサインアップできます)。
Amazon 非公開キー ファイルと証明書をインスタンスに転送します。
キー ファイルをインスタンスに転送するには、ローカル マシンで次のコマンドを実行します。scp -i <private_key_file> $EC2_PRIVATE_KEY root@<instance_address>:/mnt scp -i <private_key_file> $EC2_CERT root@<instance_address>:/mntここで、<private_key_file> は、「1. 要件」の「登録済みキー ペア」ステップでローカル マシンから作成した非公開キー ペアです。<instance_address> は、「4. インスタンスにアクセスする」で調べたインスタンスのアドレスです。
EC2_HOME および JAVA_HOME 環境変数を設定します。
これらの環境変数を設定するには、インスタンスで次のコマンドを実行します。export EC2_HOME=<location of your EC2 tools installation> export EC2_PRIVATE_KEY=/mnt/<ec2_private_key_file> export EC2_CERT=/mnt/<ec2_certificate_file> export JAVA_HOME=<path to JRE used to start the agent>You can create an image of your customised instance by using the
ec2-bundle-volcommand, as follows:ec2-bundle-vol -c $EC2_CERT -k $EC2_PRIVATE_KEY -u <amazon_account_number> -p <elastic_image_name> --batch --debugここで、<elastic_image_name> は、カスタム イメージに割り当てる名前です (「CustomImage1」など)。
イメージが作成されたら、次のコマンドを実行して Amazon S3 にアップロードする必要があります。
ec2-upload-bundle -b <s3_bucket_name> -m /tmp/<elastic_image_name>.manifest.xml -a <access_key_id> -s <secret_access_key> --retry --debugここで、<s3_bucket_name>、<access_key_id>、<secret_access_key> は、前述の Amazon S3 バケット名、アクセス キー ID、シークレット アクセス キーです。<elastic_image_name> は、カスタム イメージに割り当てる名前です (「CustomImage1」)。
次に、
ec2-registerコマンドを使用して、Amazon EC2 にイメージを登録する必要があります。ec2-register <s3_bucket_name>/<elastic_image_name>.manifest.xmlここで、<s3_bucket_name> は、前述の Amazon S3 バケット名です。<elastic_image_name> は、カスタム イメージに割り当てる名前です (「CustomImage1」)。このコマンドの出力には、カスタム イメージの AMI ID が表示されます。
7. 次のステップ
カスタム エラスティック イメージの作成が終了したら、それを使用できるようにするために、さらに 2 つのステップを完了する必要があります。
最初に、エラスティック イメージ設定を作成して、カスタム エラスティック イメージを Bamboo インストールに関連付ける必要があります。新しいカスタム イメージの AMI ID を書き留めて、「エラスティック イメージ設定の管理」の手順に従ってください。
次に、イメージから起動したインスタンスで実行されるエラスティック エージェントの機能を設定する必要があります。そのためには、カスタム エラスティック イメージの実際の用途に合わせて、適切なビルダー、JDK、Perforce、カスタム機能をエラスティック イメージ設定に追加します。たとえば、JDK 1.6 と Maven 2 をインストールしてカスタム エラスティック イメージを作成した場合は、JDK 1.6 と Maven 2 の機能をエラスティック イメージ設定に追加する必要があります。詳細な手順については、「エラスティック エージェントの機能の設定」を参照してください。
8. お困りですか?
さらに支援が必要な場合は、次のようなリソースを活用できます。
- AWS サポート センター — 特に Bamboo に関係のない Amazon サービスで問題が発生した場合は、AWS サポート センターから基本的なサポートを受けることができます。Web / 電話サポートを利用するには、Premium サポートにサインアップする必要があります。
- AWS リソース センター — AWS リソース センターには、AWS サービスのオンライン ドキュメント、コード サンプル、ツールへのリンクが用意されています。
- Bamboo デベロッパーフォーラム — このプロセスに関する有益なヒントや問題があれば、Bamboo デベロッパー フォーラムで気軽に話し合ってください。