/ etcのバージョン管理にEtckeeperを使用する

前書き

/etc/ディレクトリには、道のLinuxシステムの機能に重要な役割を果たしています。これは、ほとんどすべてのシステム構成ファイルが内にあるため/etc/です。に保存されて/etc/いるデータは、組み込みのシステムライブラリだけでなく、新しくインストールされたソフトウェアやその構成にも関連しています。システムとソフトウェアのインストール、アップグレード、設定変更はすべてに保存され/etc/ます。したがって、/etc/予期しないまたは偶発的な誤動作によって引き起こされる潜在的なエラーを回避するために管理するときにバージョン管理を利用することは良い習慣です。

Etckeeper /etc/を使用すると、Git、Mercurial、Bazaar、またはDarcsリポジトリを使用して、バージョン管理メカニズムで簡単に管理できます。デフォルトでは、Etckeeperはgitを使用して/etc/のバージョンリポジトリディレクトリを日単位で維持し、データ損失の可能性を最小限に抑えます。さらに、いつでも手動で変更をコミットできます。

この記事では、CentOS 6サーバーインスタンスにEtckeeperをインストールする方法と、手動でコミットを実行して変更を元に戻す方法を見てみましょう。

前提条件

この記事の手順は、LEMPスタックを備えたVultr CentOS 6インスタンスで検証されました。他のディストリビューションの手順は異なる場合があります。

注:sudo特権を持つ非rootユーザーとしてシステムにアクセスすることは、優れたセキュリティー慣行です。

ステップ1:Etckeeperをインストールする

EtckeeperはEPEL Yumリポジトリに含まれています。Etckeeperをインストールする前に、EPEL Yumリポジトリをセットアップする必要があります。

sudo yum install epel-release
sudo yum update
sudo yum install etckeeper

Etckeeperが正常にインストールされると、gitおよびその他の依存関係が自動的にインストールされます。

にある構成ファイルを編集して、Etckeeperの構成をカスタマイズできます/etc/etckeeper/etckeeper.conf。ただし、デフォルトの設定は適切であり、このチュートリアルではこれを使用します。

ステップ2:/ etcをEtckeeperのgit作業ディレクトリとして構成する

/etc/次のコマンドを実行することにより、Etckeeperをgit作業ディレクトリとして扱うことができます。

cd /etc
sudo etckeeper init

上記の「初期化」サブコマンドは、という名前のファイルが作成されます.gitignoreとという名前のディレクトリ.gitにを/etc/

.gitignoreはファイルの事前定義リストが含まれており、バージョン管理による管理は必要ありません。必要に応じて、ファイル名を必要に応じて追加または削除できます。行# begin section managed by etckeeper...と行の間には、1行に1つのファイル名を入れてください# end section managed by etckeeper

.gitディレクトリは、バージョンのリポジトリ格納する場所である/etc/ディレクトリを。

ステップ3:初期コミットを実行する

最初のコミットの前に、コミットされる内容を確認できます。

sudo etckeeper vcs status | more

vcsEtckeeper のサブコマンドは、バージョン管理ソフトウェア(git)を呼び出して、/etc/ディレクトリで次のサブコマンドを実行します。したがって、上記のコマンドは次と等しくなります。

sudo git -C /etc status | more

を押してspace barページをめくります。バージョン管理すべきでないファイルを見つけたら、それらを.gitignoreファイルに追加します。

これで、/ etcディレクトリのすべてのコンテンツ(で定義したファイルを除く.gitignore)をgitリポジトリにコミットできます。レビューのために、2つの引用符の間に意味のあるコメントを書くことを忘れないでください。

sudo etckeeper commit "Initial config in /etc"

ここでは、gitディレクトリを圧縮してディスク領域を節約できます。

sudo etckeeper vcs gc

ステップ4:/ etcに変更を加えた後、別のコミットを実行する

gitと組み合わせると、Etckeeperは/etc/、ファイルの追加、変更、削除などのディレクトリで発生したすべての変更、およびファイルとディレクトリの所有権や権限の変更を記録できます。/etc/該当するものはすべてバージョン管理ポリシーに該当します。

/etc/バージョン管理下にあるからといって、それに対して何らかの操作を実行できるわけではないことに注意してください。深刻な誤動作により、Etckeeperが構成を動作状態に復元する前にシステムが操作不能になる可能性があります。

テストの目的では/etc/、新しいファイルの追加、でのホスト名の変更、/etc/hostsYumを使用した新しいソフトウェアのインストールなど、への安全な変更のみを行う必要があります。

たとえば、次の場所にファイルabcdeを追加します/etc/

sudo touch /etc/abcde

次に、ファイルに次の行192.168.0.2 desktopを追加し/etc/hostsます。

echo '192.168.0.2 desktop' | sudo tee -a /etc/hosts

最後に、「commit」サブコマンドを再度実行できます。

sudo etckeeper commit "add a file /etc/abcde and add a line to /etc/hosts"

ステップ5:変更を取り消す

まず、gitの履歴を確認して、各コミットのIDとコメントを取得します。

sudo etckeeper vcs log

次に、コミットIDの最初の数ビットでコミットの詳細を確認できます。ここでは、最初のコミットIDは7f5bff、2番目のコミットIDはであると想定してい1aa658ます。

sudo etckeeper vcs show 1aa658

押しjて下に移動、押しkて上に移動、入力/keyword<Enter>して検索、押しqて終了します。

3番目に、2つのコミットの違いを次のコマンドで比較することもできます。2つのコミットのシーケンスに注意してください。自然なシーケンスでは、前者を後者の前に置きます。

sudo etckeeper vcs diff 7f5bff..1aa658

これで/etc/hosts、最初のコミットと2番目のコミットの間にホスト名を誤って構成したことがわかりましたが、ファイルの追加は/etc/abcde正しい操作/etc/hostsであり、次のコマンドを使用してファイルのみの変更を取り消すことができます。

sudo etckeeper vcs checkout 7f5bff /etc/hosts

最初のコミットと2番目のコミットの間のすべての変更を取り消す場合は、次のコマンドを使用できます。

sudo etckeeper vcs checkout 7f5bff

もちろん、2番目のコミットに戻ることもできます。

sudo etckeeper vcs checkout 1aa658

結論

Etckeeperを適切に構成すると、システムをより確実に調整および保守できます。それでも、バージョン管理はバックアップとは異なり、/etc/気になるのはディレクトリだけではないことに注意してください。システムを正常な状態に保つには、バージョン管理メカニズムに加えて、定期的にシステムをバックアップする必要があります。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。