LinuCレベル3 プラットフォームスペシャリスト プラットフォームの運用管理 問16
プラットフォームの運用管理/初期設定とインストールの自動化cloud-initのuser-dataに記述するbootcmdとruncmdの違いの説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの運用管理」に対応。実際の試験問題ではありません)
- Abootcmdは起動の早い段階で起動のたびに、runcmdは初回起動の終盤に一度だけ実行される
- Bbootcmdは初回起動時に一度だけ実行され、runcmdはインスタンスの起動のたびに実行される
- Cbootcmdはroot権限で、runcmdはusersで最初に定義した一般ユーザーの権限で実行される
- Dbootcmdはシェルスクリプトの形式で、runcmdはAnsibleのタスク形式で書く必要がある
正解:A
解説
bootcmdは起動処理の早い段階(パッケージの導入やユーザーの作成などの設定処理より前)に実行され、初回に限らず起動のたびに実行されます。runcmdは起動処理の終盤(パッケージの導入やユーザーの作成が終わった後)に、そのインスタンスの初回起動時に一度だけ実行されます。そのため、毎回必要な早期の処理はbootcmdに、導入したパッケージを前提にした初期設定はruncmdに書くのが一般的です。どちらもrootで実行され、コマンドは文字列またはリストで記述します。
選択肢ごとの解説
- A正しい。bootcmdは起動の早い段階で毎回、runcmdは初回起動の終盤に一度だけ実行されます。
- B誤り。実行のタイミングが逆です。起動のたびに実行されるのはbootcmdです。
- C誤り。どちらもrootの権限で実行されます。
- D誤り。どちらもシェルで実行するコマンドを文字列またはリストで書きます。Ansibleのタスク形式ではありません。