2016-04-09 9 views
0

私は私たちのネットワーク上にミラー化されたyum-repositoriesを提供するモジュールを書いています。単一のサーバーは、それらを他のホスト(およびそれ自身)に提供するミラーをホストします。リソース属性はファイルの存在に依存できますか?

私は初期の鶏卵に問題があります。最初のダウンロードはしばらくの間は行われませんが、ミラーリングスクリプトが最初の実行を終了する前に新しいリポジトリを有効にすると、 yum-failuresのためにパッケージをインストールしてください。しかし、その後いくつかの点で、それは

私は"${repodir}/repodata/repomd.xml"は人形-、実行時に存在しているか否かに依存-resource私yumrepoenabled -attributeを持つことができます...有効にする必要がありますか?

私はinline_templateと考えましたが、クライアントではなくPuppet-serverで動作します。 Puppet自体(カスタム機能なし)にとどまっている間に何か他のことができますか?

おそらく、Execが発生したかどうかによって属性がトリガーされる可能性があります。creates -attributeでファイルの存在を条件としてExecを条件付きにできますか?

私たちはまだPuppet-3.7.5にいます...ありがとう!

答えて

1

私はinline_templateと考えましたが、[the]クライアントではなく[the] serverで動作します。

ここに問題があるのはなぜですか。評価する条件は、クライアントに固有の条件ではありません。むしろサイト全体の意味を持つネットワーク(ミラーサーバー)上の特定のマシンのプロパティです。私が知る限り、カタログのコンパイル中にマスター上の状態を評価しても、固有の問題はありません。

すべての管理プロパティー値はカタログ作成中に決定されるため、これは良いニュースです。間接的または評価されるプロパティ値を表現する方法はありません。ターゲット・ノードから引き出された情報をカタログに組み込む場合は、ファクト(おそらくカスタムファクト)からその情報を収集するか、その情報を管理する必要があります。気になるあなたの問題へ

二つのアプローチ:

  1. あなたが特定のミラーは準備ができているかどうかを判断するコマンドを実行する(マスター上)generate()機能を使用することができます。ミラーがホストされているのと同じマシンでマスタが実行されない場合は、マスタがリモートからミラーホストに問い合わせるためのメカニズムが必要です。

  2. あなたが収集するために、それは輸出は、すべてのノードのための適切なYumrepoリソースは、それ自体が含まれてい、リポジトリが存在して準備ができて、その情報に基づいてされている報告するミラーホスト上のカスタム事実を使用することができます。

+0

*間接的または評価されるプロパティ値*を表現する方法はありません。 - それは私が探していたものです。 'Exec'の' created'や 'onlyif'のようなものですが、' Yumrepo'-resourceやもっと良いことにはすべてのリソースタイプ(metaparameter)に対してです。 –

関連する問題