第5章 · インフラと自動化·v1.0.0·更新 2026/7/20·読了目安 約16分
変更要約: 初版
5.2テスト・CI/CDと自動化ツール
この節の要点
ネットワーク変更を安全に流すためのCI/CDパイプライン(lint→テスト→デプロイ)、仮想環境で試すCisco Modeling Labs(CML)と状態を検証するpyATS、そしてAnsible(エージェントレス・冪等)・Terraform(宣言的・状態管理)・Cisco NSO(マルチベンダ・サービスモデル)の得意分野を、「このパイプライン段は何を守っているか」「この要件にはどのツールか」という判断として学びます。
自動化は「間違った設定を、より速く・より広く配る」危険も併せ持ちます。だからこそ、変更を本番へ届ける前に機械的に検証する仕組み(テストとパイプライン)が要ります。この節では、ネットワーク変更を安全に運ぶCI/CDの各段が何を守っているのか、仮想環境CMLとテストフレームワークpyATSの役割、そしてAnsible・Terraform・NSOをそれぞれ「何が得意か」で選ぶ判断を、道具比較の暗記でなく要件との突き合わせとして整理します。
5.2.1CI/CDパイプラインの段
- CI(継続的インテグレーション)=変更をコミット/Pull Requestするたびに自動でビルド・検査・テストを走らせ、壊れた変更を早期に弾く仕組み。ネットワークでは、まず
yamllint等のlint(構文/書式検査)で「そもそも文法が正しいか」を機械確認する段が入る。ここで落ちれば本番に届く前に止まる。 - CD(継続的デリバリ/デプロイ)=テストを通過した変更を自動で(あるいは承認後に)本番へ配布する段。典型的な順序は
lint → 仮想環境でテスト → 承認 → 本番デプロイ → 事後検証。各段は「前段を通ったものだけ次へ」進むゲートであり、どこで落ちたかが原因の切り分けになる。
5.2.2テストの道具:CMLとpyATS
- Cisco Modeling Labs(CML)=実機さながらの仮想ネットワークをシミュレートする環境。パイプラインの「テスト段」で、本番と同じトポロジをCML上に作り、変更を本番の前に安全に試す(サンドボックス)。物理機材を用意せずに検証でき、壊しても本番に影響しない。
- pyATS(+Genie)=Cisco製のネットワークテスト自動化フレームワーク。機器の
show出力を構造化データにパースし、「BGPネイバがEstablishedか」「インタフェースがupか」といった期待状態を機械的に検証(アサーション)する。変更前後の状態を比較して回帰(想定外の劣化)を検出するのに使う。

