LoginSignup
2
0

More than 1 year has passed since last update.

ImageBuilderで作成したカスタムAMIの初回起動時の設定

Last updated at Posted at 2022-01-17

ImageBuilderで作成したカスタムAMIの初回起動時の設定

はじめに

先日、ImageBuilderを使用して、ZabbixAgentとSplunkをインストールしたカスタムAMIを作成しました。
このカスタムAMIを作成してEC2インスタンスを起動したのですが、Splunkが起動していませんでした。

$ cd /opt/splunk/bin
$ sudo ./splunk status
splunkd 3598 was not running.
Stopping splunk helpers...
                                                           [  OK  ]
Done.
Stopped helpers.
Removing stale pid file... done.

EC2インスタンスを起動した直後に動作するよう、cronにSplunkを起動する設定を追加して検証します。

参考

システム起動時に1度だけ実行されるCronを設定する
ImageBuilderでカスタムAMIを作成

前提

ImageBuilderでカスタムAMIを作成を参考に、ImageBuilderの準備ができていることとします。
・コンポーネント
  ZabbixAgent用
  Splunk用
・イメージレシピ
  上記コンポーネントを含んだイメージレシピ
・パイプライン
  上記イメージレシピを使用するパイプライン

ImageBuilderのコンポーネントを追加

既存のコンポーネントに

echo '@reboot /opt/splunk/bin/splunk start' | crontab

を追記すればよいのですが、ここは共通的なコンポーネントを用意し、そちらに記述することにします。

新たに「CommonCompornent」というコンポーネントを用意しました。
コンポーネントは以下のように記述しています。

name: CommonModule
description: This is CommonModule document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: SetCron
        action: ExecuteBash
        inputs:
          commands:
            - echo '@reboot /opt/splunk/bin/splunk start' | crontab

作成したコンポーネントをイメージレシピに加えます。
既存のレシピを選択し、新バージョンのイメージレシピとして作成します。
コンポーネントは「ZabbixAgent」と「Splunk」の2つだけなので、ここに先ほど作成した「CommonCompornent」を追加します。

最後に、イメージパイプラインを編集モードで開き、使用するイメージレシピを先ほど作成した最新のバージョンに変更します。

これで、「ZabbixAgent」「Splunk」「CommonCompornent」の3つのコンポーネントが含まれたイメージパイプラインが完成します。

あとはパイプラインを実行し、作成されたカスタムAMIを使用してEC2インスタンスを起動。
起動後のEC2インスタンスにSSH接続し、Splunkが起動していることが確認できました。

$ cd /opt/splunk/bin
$ sudo ./splunk status
splunkd is running (PID: 3283).
splunk helpers are running (PIDs: 3287 3389 3469 3473).

おわりに

この、起動処理を初期処理として外出しするか、インストール用コンポーネントに含めるかは好みのところだと思いますが、今回は、インストールとは別の処理と位置づけ、「初期処理」として別コンポーネントにしてみました。
他にも、環境変数の設定や各種初期設定などがあれば、今回のようなCommonCompornentのように切り出しておくのが良いと思いました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0