「デザイン」から「サーバテンプレート」を選択します。
対象サーバサーバテンプレートを選択します。スクリプトタブを選択します。
スクリプトの書き方
- シェルスクリプトです。
- perlとか使えます。
- Inputで入力した値は "$DB_PASSWORD"になります。
- 実行した値を変数として使いたい場合は "$(grep -lir "missingok" $logrotate_file)"という風にします
- 直前に実行したコマンドの値は "($?)"になる
- パッケージ毎の起動は、/etc/init.d/パッケージ restart(Debian系特有)ではなく、serviceを使って起動する
- スクリプト内で設定された関数や、変数は引き継がれない事を前提にする。他のスクリプトに依存はせず、面倒でもスクリプト単体で、動くようにしておく
- サーバテンプレートに対応させるサーバイメージを複数ディストリビューションにする場合は、分岐を入れる
(Debian系だとapt-get、CentOS系だとyumなど) - 同じディストリビューションでもバージョンによってパッケージの依存関係が違っていたりするので、もし依存関係が違っていたら、個別にバージョンを確認し、必要なパッケージのインストール等を行う必要がある
日本語化してみたライトスクリプト(随時追加)
RightLink
RightScaleが提供するサーバイメージ(v5以上)にはRightLinkというパッケージがはいっています。
RightLinkは ライトスクリプトとChefを動かす為のエージェントです。拡張してPuppetとかも動かす事が出来ます。
MITライセンスで公開されているオープンソースです(レポジトリはこちら)
RightLink込みのサーバイメージの作り方はまた今度記事を書きたいと思います。
個々のコマンドのバイナリは /usr/bin/rs_のprefixであります。
RightLinkのコマンド
ほとんどのコマンドには以下のオプションがついています。
- --verbose, -v #デバック情報を出力する
- --help #ヘルプを出す
- --version #パッケージのログを出す
rs_log_level(サポートページ)
- ログレベルの設定
- オプション
--identify, -l #ログ出力レベルを設定する
例:rs_log_level --log-level debug
rs_run_recipe(サポートページ)
- rs_run_right_script(ライトスクリプト用) rs_run_recipe(Chef用)
- スクリプトを実行させる
- rs_run_recipe --identity, -i ID [--json, -j JSON_FILE] [--verbose, -v]
- rs_run_recipe --name, -n NAME [--json, -j JSON_FILE] [--verbose, -v]
- オプション
--identity, -i ID # ライトスクリプトもしくはサーバテンプレートに設定されているChefのレシピのIDを取得する
--name, -n 名前 #ライトスクリプトもしくはChefレシピ名(IDで上書きされている)
--json, -j JSON_FILE #レシピを実行する前にJSONファイルを属性として取り込む
--parameter, -p NAME=type:VALUE #ライトスクリプトのInputを定義、もしくは上書きする(run_right_scriptのみ利用可能)
rs_shutdown(サポートページ)
- インスタンスに対して再起動、停止、終了のリクエストを送ります
- オプション
--reboot, -r #再起動のリクエストを送る
--stop, -s #停止のリクエストを送る(ルートディバイスがEBS等である際に利用出来ます)
--terminate, -t #終了リクエストを送る
--immediately, -i #リクエストを今すぐに実行させる
--deferred, -d #他のスクリプトが終了するまで待つ
rs_tag(サポートページ)
- タグの一覧、追加、削除を現在のインスタンスや、クエリに対して行う事が出来る
- オプション
--list, -l #現在のインスタンスのタグ一覧を表示する
--add, -a タグ #タグを追加する
例:rs_tag --add 'options:tags=awesome'
--remove -r タグ #タグを削除する
例: rs_tag --remove 'options:tag=awesome'
--query, -q タグリスト #デプロイメントのインスタンスのタグ情報を取得する
一般的なパッケージ
lsb_release
- Linuxのバージョンを確認する
- オプション
-v, --help #ヘルプを出力
-v, --version #システムがサポートしているLSBモジュール を表示する
-i, --id #ディストリビューターの名前
出力例:Distributor ID: Ubuntu
-d, --description #ディストリビューションの説明を表示
出力例:Description: Ubuntu 10.04.2 LTS
-r, --release #ディストリビューションのリリース番号を表示
出力例:Release: 10.04
-c, --codename #コードネームを表示
出力例:Codename: lucid
-a, --all #上記情報を全部出す
-s,--short #短くして表示
mknod(manページ)
- 指定したタイプのスペシャルファイルを作成します