Etckeeperの導入方法(/etcディレクトリのバックアップ)
概要
Linuxを利用しているサーバーについて、設定のバックアップをかねてEtckeeperを導入しました。
ここでは、Etckeeperの導入方法について説明します。
環境
- Debian 11
- CentOS 8
Etckeeperについて
Linuxでサーバーを構築している場合、設定などは基本的に/etcディレクトリ以下のファイルを修正することが多いです。
そこで役立つのがEtckeeperです。Etckeeperは、/etcディレクトリに保存されている様々なファイルをGitなどのVCS(Version Control System)、バージョン管理システムを利用して管理することができます。
例えば、Etckeeperを使ってバージョン管理をすることで、過去の設定ファイルに戻しやすくなったり、GitHubなどのホスティングサービスを使うことで外部に保存ができバックアップもできます。
私は、主にサーバーが何らかの原因で吹っ飛んでしまったときに設定を戻せるようにするためのバックアップとして、Etckeeperを利用しています。
ここでは、Etckeeperへの導入方法について紹介します。
インストールと設定
Etckeeperは、主要なパッケージシステムで公式に用意されていることが多いです。例えばDebianやUbuntu向けにaptコマンドで、CentOSやFedora向けにdnfコマンドで簡単にインストールできます。ちなみに私は、DebianとCentOSをインストールしたLinuxサーバーで、EtcKeeperで利用していますが、何も問題はありません。
インストールは次のコマンドで可能です。
# Debian/Ubuntu系
sudo apt install etckeeper
# CentOS/Fedora系
sudo dnf install etckeeper
次に、設定を行います。ここでは、デフォルトで設定されているGitを使ったバージョン管理を行います。
最初に、etcディレクトリに移動して、etckeeperコマンドを実行します。
cd /etc
sudo etckeeper init
これで、/etcディレクトリをGitリポジトリとして設定できました。
次に、最初のコミットをします
sudo etckeeper commit "First commit"
最低限の設定はこれで終わりです。デフォルトの設定では、Etckeeperは、Cronを用いて毎日1回コミットをします。この頻度で良ければ、このまま何もしなくて良いです。
さらなる設定として、私はGitHubにプロジェクトを作成してそこにプッシュしています。これで、サーバーが仮にフットン部などしてアクセスできなくなったとしても、設定を確認できます。
EtcKeeperでは、あくまでもGitを使っているのでGitの作法でホスティングサービスにファイルをアップロードするようにします。/etcディレクトリで次のようにコマンドを実行します。
sudo git remote add origin <リポジトリのURL>
私はこのリポジトリのURLにSSHのURLを設定しています。なぜSSHのURLを利用しているのかというと、git push時にユーザー名やパスワードの入力をしたくないからです。git pushはrootユーザーで行われるため、SSH公開鍵認証に用いる秘密鍵は、rootディレクトリの.ssh以下に保存しています。
最後に、Etckeeperの設定を変更して、Cronで定期的にコミットするときに、一緒にgit pushをするように設定を修正します。
/etc/etckeeper/etckeeper.conf
について、PUSH_REMOTEを修正します。
PUSH_REMOTE="origin"
PUSH_REMOTEには、git remote addコマンドで追加したリポジトリのURLを示す名前を指定します。今回はoriginとしたので、originと記述します。
これで、設定は終わりです。
さいごに
/etcディレクトリ以下のファイルの内容をGitで管理して、さらにホスティングサービスへ保存するようになりました。デフォルトで、Cronを使って毎日コミットをするようになっているため、面倒な設定はありません。
Linuxサーバーの設定を保存する方法のひとつとして、参考になれば嬉しいです。