ロールで構造化する
Pro会員限定中級約48分6レッスン
プレイブックが育つと、タスク・ハンドラー・テンプレート・変数が1ファイルに詰め込まれて読めなくなります。それらを役割ごとのディレクトリ「ロール」に分け、roles: で組み合わせる。無いロールのエラーから始めて、ansible-galaxy init で雛形を作り、動くロールに育てるまでを実践します。
対象者: 複数サーバー・複数用途のプレイブックを整理して運用したい方
前提知識: 失敗を制御する 修了程度
この教材を終えると、できるようになること
- roles: の書き方と、ロールが見つからないときのエラーの読み方を説明できる
- tasks / handlers / defaults / templates の各ディレクトリの役割を説明できる
- ansible-galaxy init で規約どおりのロール構造を生成し、一覧で確認できる
- ロールの各ファイルを規約の場所に配置し、tasks/main.yml がタスクのリストだけであることを確認できる
- ロールのタスクが「ロール名 : タスク名」で表示されることと、ロール越しでもハンドラー・冪等性が働くことを確認できる
修了後の姿: ロールで構造化し、Vaultで機密を守り、タグ・ローリング適用・エラー制御を使った本番想定のAnsible運用ができるようになります。
Chapter 1ロールを読む・作る・使う
既存ロール common の構造を読み、新しいロール app を作って app.yml を完成させます。
- roles: で組み立てる — まずはエラーからapp.yml を読み、存在しないロールを指定したときのエラーを観察します。約8分(有料会員限定)
- ロールの構造を読む — roles/commonfind と cat で、ロールのディレクトリ構成と各ファイルの役割を確認します。約10分(有料会員限定)
- ansible-galaxy init — 雛形を作るansible-galaxy init でロール app の雛形を作り、生成されたファイルを確認します。約9分(有料会員限定)
- ロールに中身を入れる用意されたタスク・ハンドラー・既定値・テンプレートを、ロールの決まった場所にコピーします。約10分(有料会員限定)
- ロール入りプレイブックを実行する完成した app.yml を実行し、TASK [ロール名 : タスク名] の出力を読み、冪等性も確かめます。約11分(有料会員限定)
Chapter 2確認クイズ
ロールの構造と使い方を確認します。