Git
Network
cli
Router
EdgeRouter

EdgeRouter X の設定をgitで管理する

背景

せっかく、設定がテキストファイルで出力できるなら、gitで管理して自由自在にバージョンを行き来したい!
ということで、EdgeOSにgitを入れてGitHubのプライベートリポジトリにpushする設定を行った。

EdgeOSにDebianリポジトリを入れる

EdgeOSにはGitが入っておらず、公式リポジトリにもないため、単純にapt-getしても入らない。
そのため、ここを参考にDebianのリポジトリを追加する。
ここで注意しないといけないのは、Debianリポジトリを追加した状態で"upgrade"すると、EdgeOSまでDebianでアップグレードされてしまい上書きされてしまいます。

Gitを入れる

sudo apt-get install git-core

GitHubの準備

GitHubでリポジトリを作成しておき、クローンする。
今回はプライベートリポジトリの節約のため、ルータの設定のみを置くrouterブランチを作成して、それをクローンした。

git clone -b router git@github.com:[repositories].git

Commitする

方針は単純で、設定ファイルをクローンしたリポジトリにコピーしてきてCommitする。

cd ~/git
cp /config/config.boot router.config
git add router.config
git commit -m "Commit"
git push

参考にさせていただいたページでは、Commitメッセージに日時を入れて自動実行を想定しているが、ここでは任意のタイミングで任意のコメントをつけてCommitしてpushするスクリプトgit.shを設定した。

#!/bin/vbash
source /opt/vyatta/etc/functions/script-template

#check argument
if [ $# -ne 1 ]; then
  echo "Error: Invalid argument passed."
  exit 1
fi

cd ~/git
cp /config/config.boot router.config
git add router.config
git commit -m "$1"
git push
# chmod +x git.sh
# ./git.sh "test commit"