[英]Puppet file_line only if file exists
我有一個file_line,我想在任何存在給定文件的系統上執行,但在文件不存在的所有系統上都會被忽略。
file_line {'java_security_random':
line => 'securerandom.source=file:/dev/urandom',
path => '/etc/alternatives/jre/lib/security/java.security',
match => /^securerandom.source=.*/,
}
這個問題是我在沒有安裝java的所有主機上都出錯。 我們不使用Puppet來管理或安裝java,所以我不確定如何為此添加基於清單的依賴項。 什么是最偶然的Puppet方式來處理這個問題?
你可能需要1到創建自定義的事實,在這個文件的存在報告。
# has_java_security.rb
Facter.add(:has_java_security) do
setcode do
File.exist?('/etc/alternatives/jre/lib/security/java.security')
end
end
在你的清單中:
if $facts['has_java_security'] {
file_line {'java_security_random':
line => 'securerandom.source=file:/dev/urandom',
path => '/etc/alternatives/jre/lib/security/java.security',
match => /^securerandom.source=.*/,
}
}
有關如何編寫自定義事實的更多信息,請參見此處
1當然,我假設您有充分的理由使用一個工具來管理Java和Puppet來管理此文件中的行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.