カスタム エラスティック イメージの作成 - Linux

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

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.

5.インスタンスをカスタマイズする

Customizing your instance is the most complicated part of creating a custom elastic image. You need to install the packages that are prerequisites for Bamboo onto your instance (if you didn't choose the Elastic Bamboo Stock images as your base AMI), add your customizations, deploy Bamboo onto your instance and set up an EC2 environment on your instance.

5.1 Bamboo 前提条件パッケージのインストール

2. 既存の AMI を選択する」でベース AMI としてアトラシアンの AMI を選択した場合、このイメージは Bamboo 用に事前設定されているため、このステップをスキップして「5.2 カスタマイズの追加」に進むことができます。別の AMI を選択した場合は、以下に示すコマンドを使用して、インスタンスに次のパッケージをインストールする必要があります。

Amazon EC2 API ツール

wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
unzip ec2-api-tools.zip
mv ec2-api-tools-* /opt/ec2-api-tools

注: ディストリビューションにすでに ec2-api-tools パッケージが含まれている場合は、代わりにそれをインストールできます。

Java JRE

You need to install a JRE (or JDK) on your instance to be able to run the agent. The preferred way of doing this is to install a package that came with your distribution.  For a list of supported JREs, see supported platforms.

5.2 ユーザー カスタマイズをインスタンスに追加する

ここまで完了したら、独自のカスタマイズを追加するプロセスは非常に簡単です。

ユーザー カスタマイズをインスタンスに追加するには:

  1. エラスティック インスタンスにログインします (「4. インスタンスへのアクセス」の説明に従います)。
  2. エラスティック インスタンスにログインしたら、インスタンスをスタンドアロン マシンとして扱い、任意のアイテムをインストールできます。たとえば、Ubuntu インスタンスに Tomcat をインストールする場合は、スタンドアロン マシンに Tomcat をインストールする場合と同じように、「sudo apt-get install tomcat6」の実行、Tomcat の設定、起動スクリプトが実行されていることの確認などを行います。
    (warning)ただし、実行中のインスタンスのオペレーティング システムをカスタマイズすることはできませんのでご注意ください。カスタマイズされたオペレーティング システム (Ubuntu など) でインスタンスを作成する場合は、(「2. 既存の AMI を選択する」の説明に従って) そのオペレーティング システムがインストールされた AMI を選択する必要があります。
  3. インストールしたすべてのアイテムは、この手順の最後に作成するスナップショット イメージに保存されます (「6. カスタマイズしたインスタンスのイメージを作成する」を参照)。このイメージから起動されたインスタンスには、すべてのユーザー カスタマイズが自動的にインストールされます。

5.3 Bamboo をインスタンスにデプロイする

Bamboo の前提条件をインスタンスにインストールしてカスタマイズを追加したら、Bamboo のエラスティック ブートストラップ ファイルをインスタンスにデプロイできます。

5.3.1 Bamboo ユーザーを作成する

最初に、次のコマンドを実行してインスタンス上に「bamboo」ユーザーを作成する必要があります。

useradd -m bamboo

5.3.2 エージェントのインストーラーをインスタンスにダウンロードする

次に、以下の説明に従って Bamboo エージェントのバイナリをインストールします。ここではイメージ バージョン 2.2 を使用しますが、https://maven.atlassian.com/content/repositories/atlassian-public/com/atlassian/bamboo/atlassian-bamboo-elastic-image/ で入手可能な最新バージョンを使用してください。

imageVer=2.2
wget https://maven.atlassian.com/content/repositories/atlassian-public/com/atlassian/bamboo/atlassian-bamboo-elastic-image/${imageVer}/atlassian-bamboo-elastic-image-${imageVer}.zip
sudo mkdir -p /opt/bamboo-elastic-agent
sudo unzip -o atlassian-bamboo-elastic-image-${imageVer}.zip -d /opt/bamboo-elastic-agent
sudo chown -R bamboo /opt/bamboo-elastic-agent
sudo chmod -R u+r+w /opt/bamboo-elastic-agent

5.4 インスタンス設定

この段階では、カスタマイズされたインスタンスに Bamboo がデプロイされているはずです。カスタマイズされたインスタンスを作成する最後のステップは、インスタンスに EC2 環境をセットアップすることです。これをセットアップするには、次の手順を実行します。

  1. インスタンス上で次のコマンドを実行して、bamboo ユーザー ディレクトリの権限を設定します。

    chown -R bamboo:bamboo /home/bamboo/
    
  2. Configure path variables
    Create a file profile.sh in your instance's /mnt directory. This file contains the default Elastic Bamboo path configuration settings, as seen below:

    export JAVA_HOME=<path to JRE used to start the agent>
    export EC2_HOME=<location of your EC2 tools installation>
    export EC2_PRIVATE_KEY=/root/pk.pem
    export EC2_CERT=/root/cert.pem
    export PATH=/opt/bamboo-elastic-agent/bin:$EC2_HOME/bin:$JAVA_HOME/bin:$M2_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin:$PATH
    

    If all of the tools on this page were installed in recommended locations, no changes are required. Otherwise, you can update the file as required.
    Once profile.sh is correctly customized for your instance, you need to copy it to the /etc/profile.d directory by running the following command on your instance in the /mnt directory:

    mv profile.sh /etc/profile.d/bamboo.sh
  3. Configure the Bamboo agent to start up automatically with the instance by sourcing Bamboo's /opt/bamboo-elastic-agent/etc/rc.local file in SysVinit or systemd.

    tip/resting Created with Sketch.

    Alternatively, you can use the AWS cloud-init startup scripts. To do that, create a script like the one below and add it to your cloud-init configuration in /var/lib/cloud/scripts/per-instance/bamboo-agent-start:

    #!/bin/sh
    
    # Bamboo agent startup
    . /opt/bamboo-elastic-agent/etc/rc.local
    
    exit 0

    For more information, go to Run commands on your Linux instance at launch in the Amazon Elastic Compute Cloud documentation.

  4. Ensure the bamboo user can write to and execute from /tmp. Validate if noexec option is NOT set on/tmp mountpoint.
    If your security policy enforces you to use noexec as a mount option in /tmp, you can alternatively specify a different java.io.tmpdir during your agent startup:

    $ cat /opt/bamboo-elastic-agent/bin/runStartupScripts.sh
    #!/bin/sh
    
    echo Running startup scripts...
    
    bambooAgentBin=$(cd -P -- $(dirname $0) && pwd)
    
    #
    # custom -Djava.io.tmp to bypass /tmp noexec option
    #
    java -Djava.io.tmpdir=/home/bamboo -cp $bambooAgentBin/*installer*.jar com.atlassian.bamboo.agent.elastic.startup.RunStartupScripts 2>&1 | tee -a /tmp/BambooStartupLog.log
  5. 最後の設定とクリーンアップ
    最後に、次のコマンドを実行して Bamboo のようこそ画面を作成し、インスタンスのキーをクリーンアップします。

    cp /opt/bamboo-elastic-agent/etc/motd /etc/motd
    echo bamboo-<x.x.x>  >> /etc/motd
    rm -f /root/firstlogin /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub
    /etc/ssh/ssh_host_key /etc/ssh/ssh_host_key.pub /etc/ssh/ssh_host_rsa_key
    /etc/ssh/ssh_host_rsa_key.pub /root/.ssh/authorized_keys
    touch /root/firstrun
    

    <x.x.x> は実行している Bamboo のバージョン (4.1.2 など) です。

  6. 次に、「カスタマイズしたインスタンスのイメージを作成する」セクションの手順に従って AMI を作成します。

  7. Bamboo からイメージを起動します。エージェントが起動し、必要なすべてのデータを EC2 インスタンスにダウンロードします。
  8. /opt/bamboo-elastic-agent/bin/prepareInstanceForSaving.sh を実行します。
  9. 次に、「カスタマイズしたインスタンスのイメージを作成する」セクションの手順に従って AMI を作成します。これで完了です。新しく作成された AMI には、Bamboo エージェントを起動するのに必要なものがすべて含まれています。

注: 最初に Bamboo からインスタンスを起動した場合は、ステップ 5 と 6 の代わりに以下を実行するだけで済みます。

su -c /opt/bamboo-elastic-agent/bin/bamboo-elastic-agent - bamboo

最終更新日: 2023 年 10 月 24 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.