3

インフラストラクチャをシェフにゆっくりと移行し、途中でクックブックのコレクションを構築しています。

私が確信していないことの1つは、ノード/ロール/ユーザー固有のドットファイルがどこに行くべきかということです。

たとえば、rbenv クックブックを使用して複数のユーザーに rbenv をインストールできます。
ユーザー A は rdoc ドキュメントを必要としないため、カスタム.gemrcファイルが必要になります。

これはどこに行くべきですか?
ファイルの内容をノード/ロール固有の JSON ファイル、またはデータ バッグに入れることもできますが、これは適切ではありません。

一般的なクックブックではなく、特定のノード/ユーザー向けの方法で実際のファイルを含める方法はありますか?

4

2 に答える 2

1

私が歴史的にこれに対処してきた方法は、ユーザーの Github プロファイル名をノードに追加し、その属性が設定されている場合は独自にホストされているドットファイルをダウンロードし、そうでない場合はデフォルト (組織) が設定されていることです。

例えば:

git "/home/user/dotfiles" do
  repository "git@github.com:git_user/dotfiles.git"
  user "user"
  group "user"
end

execute "cp -R /home/user/dotfiles /home/user"

リポジトリをノード属性として設定して、独自のリポジトリに限定されないようにすることもできます。

ファイルも必ずしもコピーする必要はありません。個人的には、シンボリック リンクを張っていますが、安定した方法で動作するようにスクリプトを十分に堅牢にするために、事前にそれらがどのように設定されているかを少し知っておく必要があります。

于 2013-04-26T21:11:13.460 に答える