©  BIGLOBE  Inc.  20151
ルータコンフィグのGit管理理のススメ
〜~Git管理理以外を⾃自動化してみた〜~
BIGLOBE  Inc.
Taiji  Tsuchiya
2015/7/17
©  BIGLOBE  Inc.  20152
ルータコンフィグは
どのように管理してますか?
2015/7/17
©  BIGLOBE  Inc.  20153
ftpサーバ ?
rancid ?
ルータにログイン?
2015/7/17
©  BIGLOBE  Inc.  20154
「Git」  を使うと、
ルータコンフィグの
差分管理・問題箇所の発見
がやりやすくなります。
2015/7/17
©  BIGLOBE  Inc.  20155
Gitとは
l 分散型バージョン管理システム
l GUIベースのGit管理サーバ
p GitHub / GitLab / Bitbuckt, etc
l プログラマには当たり前となったツール
p 最近は、Webサービス系企業の
デザイナー、書籍執筆、カスタマーサポート
でも一部使われるようになった
2015/7/17
©  BIGLOBE  Inc.  20156
社内評価環境で
ルータコンフィグのGit管理
を試してみた
2015/7/17
©  BIGLOBE  Inc.  20157
社内評価環境
l 複数台、複数機種のルータが存在
l 複数の検証が同時並行で実施
p Route Policyの検証
p 特殊構成の検証
p 新機種、新OSの検証
p 新機能の検証
l あれ、なんでここping通らないの?(汗)
2015/7/17
©  BIGLOBE  Inc.  20158
Git管理画面(履歴一覧)
2015/7/17
変更ID
(差分確認)
実施者 変更ログ ファイル一覧確認
変更日時
©  BIGLOBE  Inc.  20159
Git管理画面(差分確認)
2015/7/17
変更ログ
削除部分
追加部分
©  BIGLOBE  Inc.  201510
Git管理のメリット・デメリット
l メリット
p コンフィグを世代管理できる
p コンフィグ差分を明確化できる
p 変更意図をコメントとして残すことができる
「だれが」「いつ」「どの部分を」「どのような意図で」
変更したか一目でわかる
l デメリット
p Gitコマンドを覚える必要がある
p Git管理サーバを利用/構築する必要がある
2015/7/17
©  BIGLOBE  Inc.  201511
ルータコンフィグをGit管理する流れ
1.  複数台のルータコンフィグを収集・保存
2.  GitコマンドでGit管理サーバにアップロード
3.  Git管理ツールへアクセスし、差分を確認
2015/7/17
©  BIGLOBE  Inc.  201512
ルータコンフィグ収集ツール ConfigCollector
l Python moduleとして公開中
https://github.com/taijiji/ConfigCollector
https://pypi.python.org/pypi/ConfigCollector
l 対応OS
p Cisco IOS / IOS-XR / IOS-XE
p Juniper JUNOS
2015/7/17
ルータ情報(Json形式)
•  ホスト名
•  IPアドレス
•  ユーザ名
•  パスワード
•  OS種類
ConfigCollector
IOSルータ
IOS XRルータ
IOS-XEルータ
JUNOSルータ
ssh
show running-config
show configuration
show running-config
show running-config
©  BIGLOBE  Inc.  201513
ConfigCollector  インストール手順
2015/7/17
pip install configcollector
©  BIGLOBE  Inc.  201514
Git管理するまでのおおまかな流れ
1.  複数台のルータコンフィグを取得
2.  管理対象ファイルの指定
3.  変更点をコミット
4.  Git管理サーバにアップロード
5.  Git管理サーバにて確認
2015/7/17
configcollector –i routers.json -o router_config/
git add router_config/ .
git commit
< 変更ログを記述>
git push
Gitコマンド
ルータ情報ファイルの指定 出力先ディレクトリの指定
©  BIGLOBE  Inc.  201515
まとめ
l ルータコンフィグをGit管理すると
差分情報が見やすくなります
l ルータコンフィグ収集ツール
ConfigCollectorを使うことで
少ない手順でルータコンフィグを
Git管理することができます
2015/7/17

ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜

  • 1.
    ©  BIGLOBE  Inc. 20151 ルータコンフィグのGit管理理のススメ 〜~Git管理理以外を⾃自動化してみた〜~ BIGLOBE  Inc. Taiji  Tsuchiya 2015/7/17
  • 2.
    ©  BIGLOBE  Inc. 20152 ルータコンフィグは どのように管理してますか? 2015/7/17
  • 3.
    ©  BIGLOBE  Inc. 20153 ftpサーバ ? rancid ? ルータにログイン? 2015/7/17
  • 4.
    ©  BIGLOBE  Inc. 20154 「Git」  を使うと、 ルータコンフィグの 差分管理・問題箇所の発見 がやりやすくなります。 2015/7/17
  • 5.
    ©  BIGLOBE  Inc. 20155 Gitとは l 分散型バージョン管理システム l GUIベースのGit管理サーバ p GitHub / GitLab / Bitbuckt, etc l プログラマには当たり前となったツール p 最近は、Webサービス系企業の デザイナー、書籍執筆、カスタマーサポート でも一部使われるようになった 2015/7/17
  • 6.
    ©  BIGLOBE  Inc. 20156 社内評価環境で ルータコンフィグのGit管理 を試してみた 2015/7/17
  • 7.
    ©  BIGLOBE  Inc. 20157 社内評価環境 l 複数台、複数機種のルータが存在 l 複数の検証が同時並行で実施 p Route Policyの検証 p 特殊構成の検証 p 新機種、新OSの検証 p 新機能の検証 l あれ、なんでここping通らないの?(汗) 2015/7/17
  • 8.
    ©  BIGLOBE  Inc. 20158 Git管理画面(履歴一覧) 2015/7/17 変更ID (差分確認) 実施者 変更ログ ファイル一覧確認 変更日時
  • 9.
    ©  BIGLOBE  Inc. 20159 Git管理画面(差分確認) 2015/7/17 変更ログ 削除部分 追加部分
  • 10.
    ©  BIGLOBE  Inc. 201510 Git管理のメリット・デメリット l メリット p コンフィグを世代管理できる p コンフィグ差分を明確化できる p 変更意図をコメントとして残すことができる 「だれが」「いつ」「どの部分を」「どのような意図で」 変更したか一目でわかる l デメリット p Gitコマンドを覚える必要がある p Git管理サーバを利用/構築する必要がある 2015/7/17
  • 11.
    ©  BIGLOBE  Inc. 201511 ルータコンフィグをGit管理する流れ 1.  複数台のルータコンフィグを収集・保存 2.  GitコマンドでGit管理サーバにアップロード 3.  Git管理ツールへアクセスし、差分を確認 2015/7/17
  • 12.
    ©  BIGLOBE  Inc. 201512 ルータコンフィグ収集ツール ConfigCollector l Python moduleとして公開中 https://github.com/taijiji/ConfigCollector https://pypi.python.org/pypi/ConfigCollector l 対応OS p Cisco IOS / IOS-XR / IOS-XE p Juniper JUNOS 2015/7/17 ルータ情報(Json形式) •  ホスト名 •  IPアドレス •  ユーザ名 •  パスワード •  OS種類 ConfigCollector IOSルータ IOS XRルータ IOS-XEルータ JUNOSルータ ssh show running-config show configuration show running-config show running-config
  • 13.
    ©  BIGLOBE  Inc. 201513 ConfigCollector  インストール手順 2015/7/17 pip install configcollector
  • 14.
    ©  BIGLOBE  Inc. 201514 Git管理するまでのおおまかな流れ 1.  複数台のルータコンフィグを取得 2.  管理対象ファイルの指定 3.  変更点をコミット 4.  Git管理サーバにアップロード 5.  Git管理サーバにて確認 2015/7/17 configcollector –i routers.json -o router_config/ git add router_config/ . git commit < 変更ログを記述> git push Gitコマンド ルータ情報ファイルの指定 出力先ディレクトリの指定
  • 15.
    ©  BIGLOBE  Inc. 201515 まとめ l ルータコンフィグをGit管理すると 差分情報が見やすくなります l ルータコンフィグ収集ツール ConfigCollectorを使うことで 少ない手順でルータコンフィグを Git管理することができます 2015/7/17