本文へスキップ

Ansible

構成管理を自動化。全サーバーを1コマンドであるべき状態に。

全48コース・270レッスン約31時間

Ansible入門

全12コース

インベントリ・プレイブック・変数・ハンドラー。構成管理の基礎を手で覚える。

01
Plus

Ansibleの第一歩

Ansibleとは何をするツールなのか、から始める最初の講座。サーバー設定を自動化する仕組みを理解し、インベントリ・疎通確認(ping モジュール)までを実際にコマンドを打ちながら身につけます。

全5レッスン約30分

Plus会員で見放題

02
Plus

グループ操作とアドホックコマンド

「dbサーバーだけ」「アプリサーバーだけ」のグループ単位の操作と、全サーバーへの一斉コマンド実行(アドホックコマンド)。プレイブックを書く前の、日常点検レベルのAnsible活用を身につけます。

全5レッスン約30分

Plus会員で見放題

03
Plus

はじめてのプレイブック

Ansibleの本体・プレイブック(YAML)を読み、構文チェックし、実行する。nginxのインストールから起動までを自動化した実物のプレイブックを題材に、PLAY・TASK・RECAPの読み方まで身につけます。

全5レッスン約35分

Plus会員で見放題

04
Plus

冪等性と通し演習

Ansible最大の武器「冪等性」を2回実行で体感し、--checkによる安全確認(ドライラン)を学び、疎通確認から適用・再実行確認までの一連のデプロイフローを通しで実践します。

全4レッスン約35分

Plus会員で見放題

05
Plus

モジュール図鑑 — ansible-doc で調べる

apt・copy・service といった「モジュール」はAnsibleの部品です。何種類あるのか、どう使うのかを自分で調べられるように、ansible-doc の一覧・詳細・雛形表示と、サーバー情報を集める setup モジュールを実際に打ちながら覚えます。

全6レッスン約30分

Plus会員で見放題

06
Plus

become と設定変更のアドホック

パッケージを入れる・ファイルを置く・サービスを起動する——サーバーを変える操作には管理者権限(become)が必要です。権限不足のエラーを自分の目で見てから -b で解決し、apt・copy・service・user モジュールをアドホックで使って「変えて、確かめる」型を身につけます。

全6レッスン約35分

Plus会員で見放題

07
Plus

インベントリ応用 — children・変数・パターン・ansible.cfg

サーバーが増えると、台帳も育ちます。グループの入れ子(children)・グループやホストごとの変数・対象を絞り込むパターン指定を fleet.ini で学び、最後は ansible.cfg を作って毎回の -i を不要にします。

全6レッスン約35分

Plus会員で見放題

08
Plus

変数とテンプレート

ポート番号やサーバー名を「変数」にすれば、同じプレイブックを設定だけ変えて使い回せます。vars・{{ }}・template モジュールで設定ファイルを生成し、-e と --check --diff で変更を予告し、group_vars / host_vars でグループやホストごとの設定を持つところまでを実践します。

全6レッスン約40分

Plus会員で見放題

09
Plus

ファクト — サーバーの情報を集める

Ansibleが実行のたびに自動で集めている「ファクト(サーバーの情報)」を学びます。OSの種類・メモリ量・IPアドレスをsetupモジュールで取り出し、debugやwhenでファクトを使って「サーバーごとに振る舞いを変える」プレイブックを読み解きます。

全6レッスン約35分

Plus会員で見放題

10
Plus

ハンドラー — 変更したときだけ再起動

設定ファイルを変えたときだけサービスを再起動する——Ansibleの「notify と handlers」の仕組みを学びます。1回目は再起動が走り、2回目は走らない様子を自分の目で確かめ、--check --diff で再起動の予告を読み、sshの設定変更にも応用します。

全6レッスン約35分

Plus会員で見放題

11
Plus

条件とループ — when と loop

「3つのパッケージを入れる」をタスク1つで書く loop と、「DBサーバーだけ」を見分ける when。プレイブックを短く・賢くする2つの書き方を、packages.yml を題材に実行結果(item・skipping)の読み方まで身につけます。

全5レッスン約35分

Plus会員で見放題

12
Plus

Ansible入門 卒業総合演習

入門の総仕上げ。疎通確認・構文チェック・ドライラン・適用・冪等確認・成果の検証という「安全なデプロイの型」を、web.yml と motd.yml の2つのプレイブックで自力で完走します。ここを通せば、Ansibleで実サーバーを構成管理する基礎は卒業です。

全4レッスン約35分

Plus会員で見放題

Ansible中級

全16コース

ロール・Vault・タグ・ローリング適用・エラー対応。本番で回せる運用の型。

01
Pro

カナリアリリース — 1台から広げる

全台一斉は事故のもと。--limitで1台だけ先行適用し、問題なければ残りへ広げる「カナリアリリース」の型を実践します。okとchangedが混ざった出力から適用状況を読み取る、中級の読解力も鍛えます。

全4レッスン約30分

Pro会員で見放題

02
Pro

エラーを読む・直す

壊れたプレイブック(モジュール名のtypo)を題材に、ERRORメッセージの読み方と、sed+リダイレクトでの修正、修正確認までのトラブルシュートを一周します。エラーに強くなる講座です。

全4レッスン約30分

Pro会員で見放題

03
Pro

到達できないホストと総合ドリル

インベントリに応答しないホストが混ざっていたら? UNREACHABLEの読み方と部分適用の考え方を学び、最後は疎通確認から冪等確認までの本番想定フローを自力で完走する総合ドリルです。

全4レッスン約35分

Pro会員で見放題

04
Pro

register — 実行結果で判断する

「確認して、その結果で次の動きを変える」を Ansible で書く講座。register でコマンド結果を受け取り、changed_when / failed_when で意味を整え、when で分岐する。-v で中身の JSON を読み、command と shell の違いも押さえます。

全6レッスン約45分

Pro会員で見放題

05
Pro

タグと部分適用

「設定ファイルだけ更新したい」「パッケージ導入は飛ばしたい」。タグを付けたタスクを --tags / --skip-tags で選んで実行し、--list-tasks で全体像を確認し、--start-at-task で途中から再開する。部分適用の便利さと落とし穴を実践します。

全6レッスン約42分

Pro会員で見放題

06
Pro

失敗を制御する — ignore_errors と block/rescue

タスクが失敗したとき、Ansible はそのホストを以降の処理から外します。「失敗してもいい作業」は ignore_errors で続行し、「失敗したら後始末が必要な作業」は block / rescue / always で安全網を張る。RECAP の failed・ignored・rescued を正確に読めるようになります。

全5レッスン約40分

Pro会員で見放題

07
Pro

ロールで構造化する

プレイブックが育つと、タスク・ハンドラー・テンプレート・変数が1ファイルに詰め込まれて読めなくなります。それらを役割ごとのディレクトリ「ロール」に分け、roles: で組み合わせる。無いロールのエラーから始めて、ansible-galaxy init で雛形を作り、動くロールに育てるまでを実践します。

全6レッスン約48分

Pro会員で見放題

08
Pro

変数の優先順位

同じ変数が group_vars・host_vars・プレイブック・-e に書かれていたら、どれが勝つのか。優先順位の仕組みを ansible-inventory と --check --diff で確かめ、-e @file での上書き、default フィルタ、未定義変数エラーの対処まで身につけます。

全6レッスン約45分

Pro会員で見放題

09
Pro

Vault で機密情報を守る

DBパスワードやAPIトークンを平文のままプレイブックに置くのは事故のもと。ansible-vault でファイルを暗号化し、パスワードファイルを使って実行・閲覧・復号する一連の運用を身につけます。ansible.cfg での省略と encrypt_string まで扱います。

全6レッスン約45分

Pro会員で見放題

10
Pro

ローリングアップデート — serial

全台を同時に再起動すればサービスは止まります。serial で1台ずつ適用し、meta: flush_handlers で「検証の前に再起動する」順序を組む、無停止更新の型を実践します。カナリアリリースの先にある、本番運用の定番です。

全6レッスン約40分

Pro会員で見放題

11
Pro

複数環境の運用 — staging と production

同じプレイブックを検証環境(staging)と本番(production)に使い分ける、現場で最も多い構成を実践します。環境ごとのインベントリと group_vars、staging で確かめてから本番へ、既定を staging にして本番事故を防ぐ設定までを身につけます。

全6レッスン約42分

Pro会員で見放題

12
Pro

変更レビュー — --check --diff を plan にする

Terraform の plan にあたるのが Ansible の --check --diff。何が・どの行が・どう変わるかを適用前に読み、本実行にも --diff を付けて記録に残す。アドホックにも使える差分レビューの技術と、レビューの観点を身につけます。

全6レッスン約40分

Pro会員で見放題

13
Pro

トラブルシューティング集

現場で本当によく踏む5種類のエラー(YAMLのインデント・{{ のクォート・未定義変数・UNREACHABLE・commandでのパイプ)を、わざと壊してある教材で再現し、エラーの読み方と直し方を一周します。エラーに強くなるための実践集です。

全7レッスン約55分

Pro会員で見放題

14
Pro

プレイブックのコードレビュー

動くけれど現場では通らないプレイブック(名前なし・shell でパッケージ導入・毎回 changed)を題材に、レビューで見るべき観点を学びます。--list-tasks と「2回実行」という機械的な手段で問題を見抜き、直した版が収束することを確かめます。

全5レッスン約40分

Pro会員で見放題

15
Pro

運用手順書を書いて、そのとおりに回す

本番適用の手順を RUNBOOK.md に書き出し、そのとおりに deploy.yml を適用します。疎通→構文→予行→カナリア→全体→検証→収束確認。「手順書どおりにやれば誰でも同じ結果になる」状態を自分で作る講座です。

全5レッスン約40分

Pro会員で見放題

16
Pro

Ansible中級 卒業試験

ヒントなしの本番想定。Vault で機密を守り、production インベントリに対して変更をレビューし、ローリングで適用し、検証して収束を確かめる。中級で学んだ型のすべてを自力で組み立てる卒業試験です。

全4レッスン約45分

Pro会員で見放題

Ansible上級

全20コース

コレクション・ロール設計・lint と molecule・ローリングと障害対応。チームで回す自動化の型。

01
Pro

インベントリ設計: グループの深さと変数の優先順位

グループが増えると「どの group_vars が勝つのか」が分からなくなり、本番で意図しない値が配られます。ansible-inventory で変数の出どころを確かめ、グループの深さと ansible_group_priority で優先順位を設計します。

全6レッスン約38分

Pro会員で見放題

02
Pro

動的インベントリと constructed

クラウドではサーバーが増えたり消えたりするため、手書きのインベントリはすぐ古くなります。amazon.aws.aws_ec2 プラグインで EC2 から一覧を作り、keyed_groups と compose でグループと接続先を決め、constructed で既存のインベントリにグループを足します。

全6レッスン約38分

Pro会員で見放題

03
Pro

Jinja2 フィルタで構造化データを変換する

人事システムのアカウント台帳や、アプリの既定値と本番の上書き値など、Ansible には入れ子のデータが流れてきます。selectattr・map・items2dict・combine・extract・from_json で、必要な形にデータを変換する書き方を身につけます。

全6レッスン約38分

Pro会員で見放題

04
Pro

ループ上級: loop_control・until/retries・with_* からの移行

ループは便利な反面、出力が読めなくなったり、待ちが足りずに失敗したりします。loop_control で出力を整え、with_* を loop に書き換え、until / retries / delay で「準備ができるまで待つ」処理を書きます。

全6レッスン約40分

Pro会員で見放題

05
Pro

ハンドラー上級: 順序・listen・失われる通知

ハンドラーは「変更があったときだけ再起動」の基本ですが、順序や失敗時の挙動を知らないと、設定を変えたのに再起動されないまま本番が動き続けます。定義順で動く仕組み、listen、失われた通知の見つけ方と取り戻し方、force_handlers を扱います。

全6レッスン約39分

Pro会員で見放題

06
Pro

冪等性を設計する: changed_when・failed_when・creates

command や shell を使ったタスクは、何度流しても changed になったり、成功を失敗と取り違えたりします。2回流して冪等性を測り、終了コードで changed_when と failed_when を設計し、creates と pipefail で「本当の状態」を返すタスクに直します。

全6レッスン約40分

Pro会員で見放題

07
Pro

check_mode に対応したプレイブックとモジュール

--check は本番に流す前の大事な予告ですが、プレイブックが対応していなければ途中で落ちたり、予告に出ない変更が残ったりします。check_mode: false / true の意味、対応しないモジュールの見分け方、自作モジュールの supports_check_mode、秘密を出さない diff: false を扱います。

全6レッスン約40分

Pro会員で見放題

08
Pro

delegate_to・run_once・localhost への委任

「web サーバーのための作業だが、実行するのは LB」「全台に流すが、DB のマイグレーションは1回だけ」といった処理は、委任で書きます。delegate_to・run_once・serial との組み合わせの罠・コントロールノードへの委任・委任先での変数の見え方を扱います。

全6レッスン約39分

Pro会員で見放題

09
Pro

strategy・forks・throttle でスループットを設計する

台数が増えると、プレイブックの所要時間とリソースの取り合いが問題になります。timer コールバックで所要時間を測り、forks・strategy: free・throttle を使い分け、ansible.cfg に設計として残します。

全6レッスン約40分

Pro会員で見放題

10
Pro

プレイブックの構成設計: import と include

タスクのファイルを分けるとき、import(静的)と include(動的)のどちらを選ぶかで、--list-tasks・when・tags・変数の効き方が変わります。import_playbook でプレイブックを組み立て、両者の違いを実際に確かめて使い分けます。

全6レッスン約39分

Pro会員で見放題

11
Pro

コレクションと requirements.yml でバージョンを固定する

同じプレイブックが、人によって・CI によって違う動きをする原因の多くは、入っているコレクションの版の違いです。コレクションの探し方(collections_path)を確かめ、requirements.yml から入れ、メジャーバージョンの破壊的変更を版の範囲指定で防ぎ、CI と同じ条件で動くことを確かめます。

全6レッスン約39分

Pro会員で見放題

12
Pro

ロールの依存関係と argument_specs

ほかのチームが安心して使えるロールには、依存関係の正しい書き方と、入力の約束(argument_specs)が必要です。依存ロールが1回だけ動く条件、必須の変数と選択肢の検証、新しいロールへの約束の追加、上書きできない変数の原因(vars と defaults)を、実際に流して確かめます。

全6レッスン約39分

Pro会員で見放題

13
Pro

ansible-lint で品質の基準をそろえる

レビューで毎回同じ指摘をするのはやめて、機械に任せます。新しく入った人が書いたロールに ansible-lint をかけ、違反を読み、プロファイルの段階(basic・moderate・safety・shared・production)ごとに直し、本当に例外にすべき箇所だけを理由付きで noqa にして、CI に通る状態にします。

全6レッスン約40分

Pro会員で見放題

14
Pro

ロールを自動テストする(Molecule 風)

ロールを直すたびに staging で試すのは遅く、壊したときの影響も大きくなります。使い捨てのインスタンスにロールを流して、冪等性(2回目に何も変えないこと)と、期待する状態になったか(verify)を自動で確かめる流れを、Molecule 風のツールで練習します。

全6レッスン約40分

Pro会員で見放題

15
Pro

Vault 上級: 複数の vault-id とローテーション

環境ごとにパスワードを分け、誰がどの秘密を読めるかを設計します。ラベル付きの vault-id を読み、環境を指定して値を暗号化し、間違った環境のパスワードで暗号化された値を CI と同じ条件で見つけて直し、本番のパスワードをローテーションし、ログに秘密を出さない書き方を練習します。

全6レッスン約39分

Pro会員で見放題

16
Pro

ゼロダウンタイムのローリングデプロイ

お客さまがカートに商品を入れている最中でも、エラーを出さずに新しい版へ入れ替えます。LB から外す・入れ替える・応答を待つ・戻すの4つを1台ずつ行うローリングデプロイを組み立て、LB の 502 の件数で「止めずに入れ替えられたか」を確かめます。

全6レッスン約40分

Pro会員で見放題

17
Pro

ロールアウトの安全装置: max_fail_percentage・any_errors_fatal・rescue

1台が失敗したとき、Ansible の既定の動きは「残りのホストは続ける」です。本番のリリースでは、それが版の混在や LB の容量不足につながります。失敗したら止める(max_fail_percentage)、事前チェックで全体を止める(any_errors_fatal)、外したサーバーを戻してから止める(rescue)を、ディスクが満杯のサーバーがある本番で練習します。

全6レッスン約40分

Pro会員で見放題

18
Pro

障害対応: 途中で止まったリリースを再開する

夜間の自動リリースが途中で止まりました。CD のログから失敗したホストと原因を読み、本番の今の状態を確かめ、原因を取り除いてから、止まったホストだけをやり直し、最後にリリース全体を完了させます。各レッスンの指示は「ゴール」だけで、迷ったときはヒントで手順を確かめられます。

全6レッスン約40分

Pro会員で見放題

19
Pro

障害対応: 設定のずれ(ドリフト)を直す

「本番の挙動がインベントリと合わない」という問い合わせから、手作業による設定の変更と、走らなかった再起動のハンドラーを見つけます。--check --diff と、動いているプロセスの状態の両方で調べ、正しい状態に戻し、再発しない設定を入れて、ずれが無いことを確かめます。指示は「ゴール」だけです。

全6レッスン約40分

Pro会員で見放題

20
Pro

卒業課題: 品質を保って本番へ安全にリリースする

上級コースの総まとめです。shop 2.4.1 のリリースを、lint・ロールのテスト・staging・本番の順に、お客さまにエラーを出さずに完了させます。RELEASE.md に書かれた完了の条件をすべて満たしてください。各レッスンの指示は「ゴール」だけです。

全6レッスン約40分

Pro会員で見放題