この記事は公開されてから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)で差分参照したいと思っていましたが、時間が足りずにできてません。)