etckeeperで/etc配下をgit管理してみよう
インフラエンジニアの伊藤です。
Linuxサーバの運用をする上で、設定ファイルの書き換えは頻繁に行われます。
設定を変更する際は、ファイルの最後に日付名をつけたりしてバックアップするを管理することが多いかと思います。
例えばこんな感じに。
# ls -al |grep httpd.conf -rw-r--r-- 1 root root 16730 Jan 25 22:59 httpd.conf -rw-r--r-- 1 root root 16730 Jan 25 22:59 httpd.conf_20151225 -rw-r--r-- 1 root root 16730 Jan 25 22:59 httpd.conf_20160120
ただし、設定変更するごとにバックアップファイルを取っていたら、ファイルが散乱してしまいます。
ファイルが多いという事はそれだけミスが起こる可能性が増えてきます。これってかなり精神衛生上よくないですよね。
そんなときは etckeeper という VCS(バージョン管理システム)を使って管理するのがオススメです!
etckeeperは、もちろん手動でコミットしてくれますが、
・yumコマンド実行時
・日付が変わったタイミング
などのタイミングでも自動でコミットしてくれます。
まずはインストールする
etckeeperをインストールしてみます。
先ほど軽く触れたようにVCSが必要になります。今回はgitをインストールします。
#yum install git
epelリポジトリからetckeeperをインストールします。
#yum install --enablerepo=epel etckeeper
無事インストールされました。
# rpm -qa |grep etckeeper etckeeper-0.64-1.el5.rf
実際に使ってみる
まずはリポジトリを作成します。
# etckeeper init Initialized empty Git repository in /etc/.git/
コミットしてみます。
# etckeeper commit "First commit" [master (root-commit) 970f0b3] First commit Author: vagrant <vagrant@cli> 1174 files changed, 122593 insertions(+), 0 deletions(-) create mode 100755 .etckeeper create mode 100644 yum/version-groups.conf
コミットのログを確認します。
etckeeper vcs~にて、gitのコマンドが使用可能です。
# etckeeper vcs log commit 970f0b335acdf586e099d57f1bc95d442bff853f Author: vagrant <vagrant@cli> Date: Fri Jan 29 21:02:33 2016 +0900 First commit
試しにApacheをインストールしてみます。
途中でetckeeperがコミットしてくれます。
#yum install httpd (中略) etckeeper: pre transaction commit Updating : httpd-tools-2.2.15-47.el6.centos.1.x86_64 1/4 Updating : httpd-2.2.15-47.el6.centos.1.x86_64 2/4 Cleanup : httpd-2.2.15-47.el6.centos.x86_64 3/4 Cleanup : httpd-tools-2.2.15-47.el6.centos.x86_64 4/4 etckeeper: post transaction commit Verifying : httpd-tools-2.2.15-47.el6.centos.1.x86_64 1/4 Verifying : httpd-2.2.15-47.el6.centos.1.x86_64 2/4 Verifying : httpd-tools-2.2.15-47.el6.centos.x86_64 3/4 Verifying : httpd-2.2.15-47.el6.centos.x86_64 4/4 (中略)
試しにhttpd.confを編集してコミットしたときのログを確認してみます。
# etckeeper vcs log commit a6cee87ff14bcf90587e98017d8a737777bcc5c0 Author: vagrant <vagrant@cli> Date: Fri Jan 29 22:43:53 2016 +0900 edit httpd.conf commit 970f0b335acdf586e099d57f1bc95d442bff853f Author: vagrant <vagrant@cli> Date: Fri Jan 29 21:02:33 2016 +0900 First commit
どの部分を編集したか、diffの確認をしてみます。
# etckeeper vcs diff 970f0b335acdf586e099d57f1bc95d442bff853f 66aefb8e71a7526988c0b3d3863fd6e7e3ec0b54 diff --git a/httpd/conf/httpd.conf b/httpd/conf/httpd.conf index 579d194..5870596 100644 --- a/httpd/conf/httpd.conf +++ b/httpd/conf/httpd.conf @@ -1,3 +1,4 @@ +#test # # This is the main Apache server configuration file. It contains the # configuration directives that give the server its instructions.
ある地点に戻してみます。
# etckeeper vcs revert a6cee87ff14bcf90587e98017d8a737777bcc5c0 Finished one revert. # On branch master nothing to commit (working directory clean)
使い方としてはざっとこんな感じです。
/etc/配下の設定ファイルが大量にあることが避けられていい感じですね!
ということで、以上がetckeeperの使い方でした。
etckeeperを使って、/etc配下を美しく管理しましょう!
クラウドのプロに相談したい場合
弊社ビヨンドでは、創業以来、マルチクラウドインテグレーター・マネージドサービスプロバイダー(MSP)として培った技術力で、AWS や GCP・Azure・Oracle Cloud など、様々なクラウド / サーバーのプラットフォームを駆使した設計・構築・移行を行ってきました。
お客様が求めるシステムやアプリケーションの仕様・機能に応じて、お客様向けに最適化された、オーダーメイド型のクラウド / サーバー環境をご提供いたしますので、クラウドにご興味のある方はお気軽にお問い合わせください。
● クラウド / サーバー設計・構築
● クラウド / サーバー移行・マイグレーション
● クラウド / サーバー運用保守・監視(24時間365日)