web-dev-qa-db-ja.com

/ etcをVCSに保存するためのアドバイスはありますか?

/ etcを追跡するために使用する最も簡単なVCSは何ですか? etcディレクトリをバージョン管理のベストプラクティスに保存する際の課題は何ですか?集中型または分散型のVCSを使用する必要がありますか?

6
Kyle Burton

etckeeper を使用して処理できます。これにより、リポジトリにgit、Mercurial、darcs、またはbzrを使用できるようになります。

12
CoverosGene

etckeeper を使用してください。これには多くの理由があります。

  • 時々VCSを使うのを忘れるでしょう。 etckeeperはパッケージマネージャーにフックし、ロールバックするpre-instおよびpost-inst状態を提供します
  • ファイルのアクセス許可を台無しにします
  • シャドウpasswdファイルの処理を台無しにします
6
jldugger

私はgitがこの仕事に最適だと思います(Mercurialもおそらく同じように機能しますが)。/etc内の単純な「gitinit」で、あなたは道を進んでいます。その後、気になるファイルを追加するだけで、変更されたときにいつでもチェックインできます。変更があるたびに自動的にチェックインするようにcronを設定することもできます(ただし、ログは取得されません)。ファイル)。最初のマシンとすべて同じ構成を持つ2番目のマシンを設定する場合、または単にバックアップとして使用する場合は、リポジトリをプッシュすることもできます。

私がsysadminingを始めたとき、rcsは/ etcの選択の方法でした。次にCVS、次にSVNが登場しました。何か新しいことが起こったら、それに切り替えます。 :)しかし、VCSの新しいパラダイムごとに、私の人生は実際に楽になりました。

4
jedberg

私はjedbergに同意しますが、その逆を行います。 gitリポジトリを使用しますが、すべてのファイルを無視して.gitignoreを作成してから、気になるファイルにunignoreを追加します。少なくともこの方法では、gitステータスが継続的にダーティになることはありません。

すなわち:.gitignore *!hosts!resolv.conf

等...

ジョン

2
John

宗教的な意図がない場合:分散型VCS、できればバザールを使用することを強くお勧めします。それの訳は:

  • Bazaarは簡単にインストールできます(UbuntuおよびDebianサーバーではapt-get install bzrの問題です)
  • セットアップと開始は簡単です。
cd /etc
bzr init .
bzr add .
bzr commit . -m "Initial configuration"
  • サーバーのセットアップは必要ありません。 Bazaarは、リモートBazaarサーバーを実行していなくても、リモートリポジトリに接続してプッシュできます。 FTPサーバーやWEBDAVなどでうまく機能します。

GitとMercurialは他の2人の出場者です(他の回答で指摘されているように)が、セットアップなしでリモートサーバーにプッシュする機能がありません(少なくともまだ)。

2
Anders Hansson

バージョン管理システムで/ etcのすべてを管理するわけではありません。その理由は、/ etcの内容のほとんどはおそらく時間の経過とともにあまり変化しないからです。パッケージ管理ツールは/ etc内の多くのファイルを管理し、パッケージをアップグレードすると、VCSとの興味深い競合が発生する可能性があります。

代わりに、サーバーのさまざまなコンポーネントとパッケージを管理する configurationmanagement システムを使用し、テンプレートと静的ファイル(該当する場合)を使用してサービスを構成し、/etc(および他の場所)にファイルを保存する設定。私はそれらすべてをバージョン管理システムに保存しますが、個人的にはGitを好みます。システム管理者として、「典型的な」GitワークフローはSubversion(またはCVS)よりも理にかなっているからです。 Gitの分散化は、私にとってシステム管理にとって大きな勝利になります。

2
jtimberman

これまでのすべてのアドバイス(すべて私がしていることをほぼ正確に説明しています)に加えて、私は自分自身のために tig を発見しました。 cmdlineを使用してgitでetcを管理することは、私を夢中にさせ、変更はすぐに積み重なっていきました。 git GUIをランダムに探し回るだけで、tigと呼ばれるこのncursesベースのGUIが存在することに気付きました。

今、私は実際に私の/ etcを管理するのを楽しみにしています!

0
lkraav