第6章 · 自動化とプログラマビリティ·v1.0.0·更新 2026/7/17·読了目安 約15分
変更要約: 初版
6.4構成管理ツール(Ansible・Terraform・Puppet/Chef)
この節の要点
設定をコードとして管理するIaC(Infrastructure as Code)の考え方、冪等性の意味、専用エージェント不要でSSH経由・プッシュ型・YAMLで書くAnsible、宣言的にインフラを構築するTerraform、そしてエージェント常駐・プル型のPuppet/Chefの位置づけを、ツール選定の判断として学びます。
手作業のCLIをスクリプトで置き換える先に、「あるべき設定状態をコードで宣言し、ツールに実現させる」という構成管理の世界があります。設定をコード化すればバージョン管理・レビュー・再現ができ、IaC(Infrastructure as Code)と呼ばれます。この節では、CCNAで問われる代表的なツール——Ansible・Terraform・Puppet・Chef——が「エージェントの要否」「プッシュかプルか」「記述言語」でどう違うかを整理し、要件に応じたツール選定の判断を身につけます。
6.4.1IaCと冪等性
- IaC(Infrastructure as Code)=サーバやネットワークの設定を手作業ではなくコード(テキストファイル)として記述・管理する考え方。Git等でバージョン管理でき、変更のレビューや過去状態への復元、環境の再現が容易になる。
- 冪等性(idempotency)=同じ設定コードを何度適用しても結果が同じになる性質。既に望む状態なら変更せず、差分がある部分だけを直すため、繰り返し実行しても安全。構成管理ツールが備えるべき重要な性質。
- 宣言的 vs 手続き的=「最終的にどうあってほしいか(状態)」を書くのが宣言的、「どの手順で行うか(順序)」を書くのが手続き的。宣言的な記述は冪等性と相性が良い。
6.4.2Ansible(エージェントレス・プッシュ・YAML)
- Ansible=エージェントレス(管理対象に専用の常駐ソフトを入れず、SSHで接続して設定を適用する)ツール。設定はプレイブックというYAMLファイルに記述し、冪等に適用される。
- プッシュ型=管理側(コントロールノード)から対象機器へ設定を押し出す方式。対象側に何かを常駐させる必要がなく、既にSSHが有効な機器へすぐ適用できるため導入障壁が低い。

