
「夜ノDevelopers.IO 2016 in Sapporo」でいまどきのネットワーク機器の設定管理ツールの話をしてきました。 #cmdevio2016
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんばんわ、コカコーラ大好き カジです。 ブログのリリースが遅くなってしまいましたが、2016年10月14日(金)に開催された「夜ノDevelopers.IO 2016 in Sapporo」でふとしたきっかけで調査することになったネットワーク機器の設定管理ツールの話をしてきました。
発表資料
フォローアップ
ポイント
「対象機器」(ネットワーク機器の種類)と「やりたいこと」(管理したいこと)で選定しましょう。 設定管理ツールには多機能なものがあることを初めて知りましたが、設定管理だけではなく、ファームウェア管理や、変更検知なども含まれているものもあるので、悩みますね。 本当は国産メーカのルータ設定を管理したいと思って調査し始めましたが、今回試したRANCIDの最新バージョンは開発されていないようでした。
資料中に出てくるPacker、VyOSについて
PackerはPackerでAmazon LinuxのAMI(Amazon Machine Image)を作成するを参照ください。
VyOSについては1つのグローバルIPで複数VPCとVPN接続してみた#reinventとVyOSをAWSで使う時によくやることをまとめてみた を参照して構築ください。
VyOS対応RANCIDサーバ on Amazon Linux 構築用 Packerファイル
手間をかけた点
- Amazon Linuxで構築
- rancidユーザではなく、ec2-userで構築
Packerのファイルをこちらに記載しておきます。
Packer用Jsonファイル
% cat packer-rancid-on-ec2.json
{
"builders": [
{
"type": "amazon-ebs",
"access_key": "{{user `aws_access_key`}}",
"secret_key": "{{user `aws_secret_key`}}",
"region": "ap-northeast-1",
"source_ami": "ami-374db956",
"instance_type": "t2.micro",
"ssh_username": "ec2-user",
"ssh_timeout": "10m",
"ami_name": "RANCID - Really Awesome New Cisco confIg Differ {{timestamp}}"
}
],
"provisioners": [
{
"type": "shell",
"script": "rancid_install.sh"
}
]
}
上記で利用するスクリプトファイル rancid_install.sh
#!/bin/bash # Packeage Install sudo yum update sudo yum -y install wget ftp telnet gcc cvs expect # rancid install echo "## rancid Install ##" wget ftp://ftp.shrubbery.net/pub/rancid/rancid-3.5.1.tar.gz tar xzvf rancid-*.tar.gz cd rancid-*/ ./configure --prefix=/usr/local/rancid make sudo make install sudo chown -R ec2-user:ec2-user /usr/local/rancid/ sudo chmod 775 /usr/local/rancid/ # Config backup cp -ip /usr/local/rancid/etc/rancid.conf /usr/local/rancid/etc/rancid.conf.org sed -i.bk '/# list of rancid groups/,/^#LIST_OF_GROUPS/cLIST_OF_GROUPS="Routers Switches"' /usr/local/rancid/etc/rancid.conf # cvs Setup /usr/local/rancid/bin/rancid-cvs # VyOS Add cd /home/ec2-user sudo yum -y install git git clone https://bitbucket.org/wzurowski/rancid-vyatta.git cd rancid-vyatta cp vyos.pm /usr/local/rancid/lib/rancid cp vlogin /usr/local/rancid/bin/ cat /usr/local/rancid/etc/rancid.types.base > /usr/local/rancid/etc/rancid.types.conf echo "#" >> /usr/local/rancid/etc/rancid.types.conf cat ./rancid.types.conf >> /usr/local/rancid/etc/rancid.types.conf
まとめ
知らないことが多くあったので、勉強になりました。 また、AnsibleのNetwork Moduleを試してみたいと思いましたし、発表後に弊社吉江 から「Oxidized」というツールについても聞いたので調査してみたいと思いました。
.oO(ViewVCを使わずに、CVS (Concurrent Version System)で差分参照したいと思っていましたが、時間が足りずにできてません。)







