注記これは、Stack Overflow からのクローズされた質問、そして建設的なバージョンは、Server Fault の同様の質問。
多くの場合、 の下にある多くの構成ファイルを編集する必要があります/etc
が、次のシステム アップグレードを実行するときにこれらの変更が失われないようにする必要があります。
現在、すべての設定ファイルとメンテナンススクリプトの一部を に格納し/opt/admin
、/etc
そこにターゲットをシンボリックリンクしていますが、これは適切ではないようです。私が見た基準によれば. 私が考えたもう 1 つのオプションは、これらを に格納することです/usr/local
。前述のドキュメントには、システム管理者がソフトウェアをローカルにインストールするときに使用すると書かれています。これが私が得た情報に最も近いものです。ただし、/usr/local
パッケージ化されていない新しいソフトウェアをインストールすると、 も上書きされます。
これらを維持する方法について、標準的または広く採用されているベスト プラクティスはありますか? これはディスカッション ページではないため、回答は明確で、それを裏付ける 1 つまたは 2 つの記事が必要です。
注記これまでで最も役に立つと私が感じた回答をここに含めました。議論し、より多くの回答が寄せられるように、ここでこれを再度オープンしました。
答え1
両者を分離するわけではないが、等キーパー設定ファイルの変更を非常にうまく追跡します。リポジトリをボックス外のどこかに保存しておくと、新しいマシンにそれらの変更を簡単に復元できます。
答え2
これを行うには、構成管理ツールを使用できます。同じ役割を持つサーバーを追加すると、適切に拡張されます。
ニーズに合ったものを作り上げたようですが、ニーズと予算に応じて、Chef、Puppet、Ansible、Opsware、またはその他の構成管理/自動化/オーケストレーション ツールを検討することをお勧めします。
答え3
私が言及した質問への回答から、一般的な解決策は 2 つあるようです。シンボリック リンクを使用するか、ファイルのリストを維持するかです (リンクされた質問の ptman と Jim の回答を参照してください)。ベスト プラクティスの記事は見つかりませんでした。
私はハイブリッドなソリューションを提案します。つまり、設定ファイルのリストを含む単純なファイル ( と呼びますFILES
) のみを管理します。スクリプトは実際の設定ファイルを読み取り、選択したディレクトリ (スクリプトを、ディレクトリをFILES
と呼びます) の下の複製されたファイルシステム階層にシンボリックリンクを作成します。link-config-files.sh
system-config
この方法により、編集が簡単で、シェルマジックを必要としない 1 つのファイルでのみファイルを管理することになります。 重要な構成ファイルは、system-config
シンボリックリンクのおかげで からアクセスできます。 をバックアップするための cron ジョブがセットアップされているsystem-config
ため、すべての構成ファイルが自動的にバックアップされます。 また、別の cron ジョブが定期的に実行されるlink-config-files.sh
ため、 にファイルを表示 (または非表示) してsystem-config
バックアップするには、 を編集するだけですFILES
。
今のところこれが最善の解決策だと思います。もちろん偏見はあります。いずれにせよ、これが私のスクリプトですバックアップ スクリプトもリンクします。