サーバー起動時スクリプト
サーバー起動時スクリプトの技術仕様/制限値について記しています。
構成の内容
スクリプトの入力(埋め込み)タイミング | ・サーバー作成時 ・サーバー起動時 ・サーバー再起動時 ・イメージからのサーバー作成時 |
入力方法 | ・サーバー作成時 ・コントロールパネル ・API |
スクリプトの入力形式 | ・テキストボックスへの直接入力 ・スクリプトファイルのアップロード |
ファイル形式 | プレーンテキスト (Base64形式を選択することもできます) |
ファイルサイズ | base64表記の状態で8KB以内 ※通常の平文をbase64表記に変換した場合、サイズは4/3倍(約133%)になります。 |
Linuxサーバー(CentOS, RedHat)について
- 「#!」で始まる場合にはシェルスクリプトと認識し起動時にスクリプトを実行します。
- それ以外は、作成したサーバーに「/.niftycloud_user_data」というファイル名でスクリプトを書き出します。
Windowsサーバーについて
- 「@REM」で始まる場合にはバッチファイルと認識し起動時にバッチを実行します。
それ以外は、作成したサーバーに「C:.bat」というファイル名でバッチスクリプトを書き出します。 - base64でエンコードしてある場合には「base64エンコードのスクリプトを使用する」にチェックを入れてください。
- スクリプトの最大サイズは、base64 エンコード後のサイズで8KBまでです。
注意事項
2011年10月26日以前にスタンダードイメージから作成したサーバーおよび、VMインポート機能で作成したサーバーでは、サーバー起動時スクリプトが利用できません。
利用する場合は、別途、OS初期化スクリプトをインストールしてください。
OS初期化スクリプトのご利用設定Red Hat系Linux 7以降、Ubuntu 16.04以降のOSでは、起動時実行スクリプトでSSHの起動および再起動を行うとサーバーが起動しなくなり、サーバー作成時ではサーバーが削除されます。systemctl restart sshd等のコマンドは指定しないようにしてください。
起動時スクリプトの記載を誤り、サーバーが起動しなくなった場合は、起動時スクリプトを設定しない状態でサーバーを再起動してコンソール接続で対処してください。
コンソール接続一度、起動時スクリプトの設定画面から離れた後、同画面に戻ると、スクリプトがbase64エンコードされた状態で表示さます。
これは、起動時スクリプトの設定画面から別画面に遷移するタイミングで、入力されたスクリプトは平文からbase64にエンコードするためです。起動時スクリプトは、起動時スクリプトを入力しない状態でサーバー再起動を実施した場合、自動的に削除されます。 起動時スクリプトを実行したい場合は、コントロールパネルまたはAPIより、サーバー起動を実施するタイミングで入力してください。