Config管理ツールどうしてるのよ?2021 Ver
はじめに
この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2021 (一枚目) の 6日目として投稿しています
- 2017年版: https://qiita.com/advent-calendar/2017/cisco
- 2018年版: https://qiita.com/advent-calendar/2018/cisco
- 2019年版: https://qiita.com/advent-calendar/2019/cisco
- 2020年版: https://qiita.com/advent-calendar/2020/cisco
- 2020年版(2枚目): https://qiita.com/advent-calendar/2020/cisco2
- 2021年版: https://qiita.com/advent-calendar/2021/cisco ⇦今ここ
- 2021年版(2枚目): https://qiita.com/advent-calendar/2021/cisco2
Config管理ツールどうしてますか?
以下のようなツール候補があると思ってます
- ConfigCollector
- Ansible
- Rancid + Viewvc
- oxidized
代表的なもので上記のようなものがあると思います。
ただ時代は2021年でPython2も推奨されない今選択肢は限られてくると思います。
で今回はGitへの連携も考えていたので
その部分の記事がある程度あるRancid + Viewvcを選択しました(参考記事は最後に載せています)
ただoxidizedはRancidリスペクトで作られたツールで軽量で拡張可能なツールらしいので今後検証していきたいなとは思っています。(RESTAPI等のサポートもあります)
Rancidについて
簡単に書けば以下の通りの動きを実行してくれます
1.ネットワーク機器にログイン
2.コマンドを実行(様々なコマンドに対応しています)
3.前回実行時から差分があればVersionをあげてCommitをする。
上記のような流れでConfigを管理できます。
構成は以下のようにしています
Viewvcに監視する機器を登録する方法
Viewvcでは以下のような感じでConfigのdiffを確認できます
diffツールをローカルPCに入れないでも確認できるということは
運用上ローカルPCにツールを入れることが厳しい会社でも助かる一面はあるのではないでしょうか?
Viewvcに監視する機器を登録する手順を載せておきます
①.cloginrcファイルを編集
vim /usr/local/rancid/.cloginrc
監視機器ip;cisco;up
add user 監視機器ip 監視機器ログインユーザー名
add method 監視機器ip ssh
add password 監視機器ip 監視機器ログインパスワード 監視機器enableパスワード
[例]
add user 192.168.1.1 admin
add method 192.168.1.1 ssh
add password 192.168.1.1 admin admin
②.cloginrcファイルをcopy
root@localhost ~]# cp /usr/local/rancid/.cloginrc /home/rancid/.cloginrc
cp: overwrite ‘/home/rancid/.cloginrc’? Y
cat /home/rancid/.cloginrc
③router.db ファイルを編集
[root@localhost cisco]# vim /usr/local/rancid/var/cisco/router.db
[フォーマット]
監視機器ip;cisco;up
[例]
192.168.1.1;cisco;up
④テスト
[root@localhost ~]# sudo -u rancid /usr/local/rancid/bin/clogin
192.168.1.1
*以下は自動実行出力ログ
10.124.54.112
spawn ssh -x -l admin 10.124.54.112
Password:
csr1k>enable
Password:
csr1k#
⑤機器追加確認
[root@localhost ~]# sudo -u rancid /usr/local/rancid/bin/rancid-run
[root@localhost ~]# cd /usr/local/rancid/var/cisco/configs
[root@localhost configs]# ll
total 60
-rw-r-----. 1 rancid netadm 11177 Dec 1 17:56 192.168.1.1
-rw-r-----. 1 rancid netadm 11231 Dec 1 17:56 192.168.1.2
-rw-r-----. 1 rancid netadm 11185 Dec 1 17:56 192.168.1.3
-rw-r-----. 1 rancid netadm 11223 Dec 1 17:56 192.168.1.4
-rw-r-----. 1 rancid netadm 11188 Dec 1 17:56 192.168.1.5
drwxr-x---. 2 rancid netadm 51 Dec 1 17:56 CVS
失敗の場合、以下のパスで先ほど実行と同じ時間のローグファイルを失敗の原因を確認
[root@localhost logs]# cd /usr/local/rancid/var/logs
[root@localhost logs]# ll
[root@localhost logs]# cat cisco.20211201.175603
所感
一応Gitlabでも接続して管理しているがviewvcの方が評判が良く
自分もこっちで見ることが多いのでviewvcを採用しています。(Gitに慣れてない人が多いのもあるとは思いますが)
これが俺の最強config管理システムだ!!!!!!
というのがあれば教えてください
今後検証したいことはまだ残っていまして
一体Rancidは何台ぐらいまで管理できるのか?(1000台でもいけるの?)
とかありましてもしRancidで1000台とか2000台とか監視してるよという話があればあとでこっそり自分に教えてください(こちらは今数十台です)
半年近く運用しましたが特にサービスとして落ちることはなくてとても良いツールだと思っています。
最新版のConfigを常にデータとして持てればその先の自動化やBatfishとの検証テストもできるのでまず集めることは大事なのかなと思います。
参考記事(構築)
免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。
Discussion