特定のホストとポートが管理対象システムから利用できない場合に、Puppetに異なる応答をさせるための準備ができた方法/カスタムファクトなどはありますか?
たとえば、ユーザー情報を読み取るために複数のディレクトリを使用する製品がいくつかあります。
一般的に、最速で最も近いサーバーを最初にリストしたいと思います。利用できない場合は、モジュールで構成ファイルを書き換えて、リストの下位のエントリに移動できるようにします。
それで、これはテンプレートの構成変数を介して何かを交換するためのものですか?
これを行う最良の方法は、速度と到達可能性のテストを行うカスタムファクトをRubyに記述し、そのカスタムファクトを使用してテンプレートに文字列を設定することです。あなたのユースケースに適していますか?
Puppetのstdlibを見てください。カスタムデータまたはスクリプトを/etc/facter/facts.d
( 説明 )に配置できます。
だからあなたは例えばすることができます/etc/facter/facts.d/neighbour.sh
に新しい変数を追加するための小さなスクリプトfacter -p
があります。
#! /bin/sh
if ping -nc 1 dirserver.fnqd > /dev/null; then
echo 'dirserver_available=true'
else
echo 'dirserver_available=false'
fi
少しのスクリプトで、dirserver_1
、dirserver_2
などのカスタムファクトをレイテンシーの順に追加できます。