設定ファイルの一元管理とか@Ubuntu

管理するサーバが増えるたびに、自分仕様の設定ファイルを毎回配備するのがとても面倒に感じたので、Mercurial を使って配備する事にしてみた。

最終的に、新しいサーバが増えたときは以下のような手順で設定ファイルを配備する事が出来ます。

$ hg clone ssh://xxx@xxxxx/path/to/repository settings
$ cd settings
$ ./deploy.sh

今回の対象ファイル

今回対象とする設定ファイルは以下の通り。

  • .bashrc
  • .bash_aliases
  • .screenrc
  • .vimrc
  • .vim/ (ディレクトリ)

配備スクリプト

配備するスクリプトを適当に作ってみた (deploy.sh)。

#!/bin/bash
backupdir=~/backup.$$
mkdir $backupdir

if [ -f ~/.bashrc ]; then
    mv ~/.bashrc $backupdir/.bashrc
fi
cp .bashrc ..

if [ -f ~/.bash_aliases ]; then
    mv ~/.bash_aliases $backupdir/.bash_aliases
fi
cp .bash_aliases ..

if [ -f ~/.screenrc ]; then
    mv ~/.screenrc $backupdir/.screenrc
fi
cp .screenrc ..

if [ -f ~/.vimrc ]; then
    mv ~/.vimrc $backupdir/.vimrc
fi
cp .vimrc ..

if [ -d ~/.vim ]; then
    mv ~/.vim $backupdir/.vim
fi
cp -R .vim ..

まだ運用を始めたばかりで不安なので、一応は簡易的にバックアップはとってあるけど、ゆくゆくは不要になるだろう。

変更ファイルの取り込み

変更を加えたときは以下のような手順。

$ cd ~/settings
$ ./incorporate.sh
$ hg ci
$ hg push

これで変更した設定ファイルは Mercurial で管理される事になる。
例えばある時に、vim の plugin を入れたら、この手順でMercurial管理しておけば、
他のサーバに展開する時は配備スクリプト(deploy.sh)で簡単に配備できます。

以下は、変更を加えた設定ファイルを取り込む時のスクリプト (incorporate.sh)。

#!/bin/bash

if [ -f ~/.bashrc ]; then
    cp ~/.bashrc .
fi

if [ -f ~/.bash_aliases ]; then
    cp ~/.bash_aliases .
fi

if [ -f ~/.screenrc ]; then
    cp ~/.screenrc .
fi

if [ -f ~/.vimrc ]; then
    cp ~/.vimrc .
fi

if [ -d ~/.vim ]; then
    cp -R ~/.vim .
fi

最後に

rsync や Dropbox を使うっていう手もあるけど、個人的にはこの方法が一番手軽な気がします。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中