APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【Blog Week】Gitを用いたコンフィグ管理のすゝめ

はじめに

初めましてiTOC事業部BzD部の内田です。
皆さんはネットワーク機器のコンフィグを管理する際に以下のような困りごとは無いでしょうか?

  • 「いつ」「誰が」「なぜ」「どんな」変更を加えたのか分からない
  • 複数人で更新していたためにデグレードが発生してしまった
  • 差し込みの業務に忙殺されていたらレビューの指摘事項を忘れてしまった

上記の解消として「Git」を用いてみるのはいかがでしょうか?

Gitって何?

そもそも「Git」とは何者なのかですが、『ファイルを世代管理するためのツール』で、
主にプログラマがコードを書く際に用いられており、メリットとしては以下などがあります。

  • 同一ファイル名で世代管理でき、更新内容を追ったり過去バージョン戻したりするのが楽になる
  • ファイルが占有されないため、複数人で並行した作業が楽になる
  • 「関連サービス(※1)」を用いることで、ファイルに関するコミュニケーションを残すことが楽になる

GitHubって何?

別途Gitと併せて名前を聞く「GitHub」ですが上記で記載した「関連サービス(※1)」にあたるもので、
各自で作成したファイルを統合管理して"よりGitを利用しやすくするもの"となります。

具体的にどんなイメージ?

今回はCiscoルータのコンフィグを検討する例を紹介いたします。

GitHub上で管理するファイルに対して修正を行い、
PullRequest(以降PR)という機能を通じてメンバー、リーダーで検討を進めていきます。

まず工場出荷時のコンフィグは以下のような状態です。

その後メンバーにてコンフィグを草案したら、
PRを作成しリーダー宛にレビューを依頼します。

ここで画像の通り考慮漏れの指摘を受けました。
修正を行い再度レビュー依頼をします。

その後も同様に指摘 ⇒ 修正のやり取りを何度か繰り返し、
最終的に問題なしと判断されたらコンフィグ完成となります。

ここでGitHubの作業履歴を確認すると以下のように表示されます。

このようにGitHubを利用することで各修正内容について、
「いつ」「誰が」「なぜ」「どんな」が世代管理されていきます。

また何か問題が発覚したときなどは、必要に応じて以前のバージョンに戻ることもできます。

おわりに

Gitを用いたコンフィグ世代管理についてイメージできましたでしょうか?

「いつ」「誰が」「なぜ」「どんな」が可視化されることによって、
コミュニケーションの負担が減り、本質的な業務へリソースを振り向けるきっかけに繋がると考えられます。

またGitHubには「機器への設定変更を行う機能」を持たせることも出来ますので、
その内容については別途記事を投稿させていただこうと思います!