簡體   English   中英

僅當文件存在時,Puppet file_line

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM