変数に特定の値があるかどうかを確認できる例をすでにいくつか見つけました
if $var == 'somevalue' {
...
}
何かが定義されている場合の
if defined(Package['somepackage']) {
...
}
しかし、ユーザーが存在するかどうかを確認し、存在しない場合は失敗するにはどうすればよいですか。必要なのは/usr/bin/id -u ${name} >/dev/null 2>&1
だけなので、スクリプトまたはシェルテストの結果の使用方法を知っていれば十分です。ユーザーディレクトリが存在するかどうかを確認しても問題ありません。
file
とexec
はonlyif
パラメータを受け入れません。そうでなければ、これはまったく問題になりません。
事実を追加して確認してみませんか?
puppet 3でのセットアップでは、以下をmodules/facts/lib/facter/user_exists_blah.rb
に配置します。
require 'facter'
Facter.add(:user_exists_blah) do
setcode do
name = "blah"
Facter::Util::Resolution.exec("/usr/bin/id -u #{name} 2>/dev/null")
end
end
そしてそれを
if $::user_exists_blah {
}
空の文字列はfalseと評価されるため、ブール値として使用できます。