構成ファイル(httpd.conf、my.cnf、.bashrcなど)をバージョン管理下に置くための最良の方法は何ですか?バージョニングのメリットに加えて、ソリューションをバックアップとしても機能させて、新しいサーバーを持ち込み、SVNから構成ファイルを直接チェックアウト(またはエクスポート)できるようにしたいです。
設定ファイルの元のパスも保存することをお勧めします。
構成ファイル(httpd.conf、my.cnf、.bashrcなど)をバージョン管理下に置くための最良の方法は何ですか?バージョニングのメリットに加えて、ソリューションをバックアップとしても機能させて、新しいサーバーを持ち込み、SVNから構成ファイルを直接チェックアウト(またはエクスポート)できるようにしたいです。
設定ファイルの元のパスも保存することをお勧めします。
私は構成ファイルのリビジョン管理を行っていますが、svn の代わりにgitを使用しています (複数のマシンがある場合は、git の方が簡単です)。これもリポジトリの下にbash スクリプト (と呼ばれるinstall.sh
) があり、ファイルをマシン上の適切な場所にコピーまたはシンボリック リンクします。
したがって、新しいマシンにセットアップする必要がある場合は、リポジトリの git clone (svn チェックアウトと同等) を実行し、myinstall.sh
を実行して構成ファイルを適切な場所にセットアップします。install.sh
あなたが望むように、周りにいるということは、構成ファイルの元のパスも保存していることを意味します。
これは私が実装したものです:
すべての構成を 1 つのディレクトリに rsync するサーバーがあります (たとえば、/data/configs/hostname/{etc,httpd}.
変更を転送するために 1 時間ごとに rsync を実行しています。rsync が完了するとすぐに、変更を自動コミットする svnautocommit スクリプトがあります。このようにして、必要な変更またはバージョンにロールバックできます。
要件に基づいて SVN ディレクトリ構造を計画する必要がある場合があります。
古いSolaris 8ボックスからMac OS Xまで、いくつかのマシンでこれを行います。レイアウトは非常にシンプルです。
私のリポジトリには次のものがあります。
<root>/common
/.emacs.d
/.bash_common
/scripts # platform-independent binary tools
<root>/linux
.bashrc
.emacs
...
<root>/solaris
.bashrc
.emacs
...
<root>/osx
.bashrc
.emacs
...
各 OS ホームディレクトリには .emacs.d、.bash_common、およびスクリプトへの svn:externals 参照があるため、それらは複製されません。
さらに、私は linux および solaris ディレクトリにホスト固有のパス構成などを含む .bash_hostconfig を持っています。これは、職場でのセットアップが自宅とは大きく異なるためです (場所によっては FC5-8 および RHEL3-5)。午前)。
これらのことの間に、新しいマシンを起動して実行するための非常に簡単なプロセスがあります。/$platform を一時ディレクトリにチェックアウトし、$HOME 内のすべてをそれらのファイルで上書きするだけです。このように常に $HOME からの相対パスであるため、元のパスを保存する必要はありません。
CVS を使用して、できるだけフラットなディレクトリ構造に構成を保存します。この手法は、SVN に簡単に拡張できます。
次に、CVS エクスポートを使用して Makefile をセットアップし、次のことを行います。
また、Sol10、Apache、特定のアプリなど、専門性を高めるためにこれらの tarball をセットアップしています。
HTH
乾杯、
ロブ
すべての構成ファイルを特定のディレクトリ ツリー (アプリケーションごとに 1 つのサブディレクトリ) に格納できます。ほとんどのアプリケーションには構成パスを指定するディレクティブが必要なので、サーバーごとに変更する必要があるのはこれだけです (または、構成ファイルをハードコーディングしている場合は、include のようなものがサポートされている可能性があります)。
そして、このツリーは、好きな VCS にチェックインできます。
展開するために、シェル スクリプトなどを記述して、構成ファイル ツリーを使用するようにすべてを初期化できます。
とにかく中央ストアが必要なので、 Slackのようなもう少し複雑なものを選ぶことができます。プッシュサーバーでファイルを管理およびバージョン管理してから、クライアントに再同期します。サブロールの説明には、ツリー構造の例がいくつかあります。