Puppet file_line только если файл существует - PullRequest
1 голос
/ 30 апреля 2019

У меня есть 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, поэтому я не уверен, как добавить для этого зависимость на основе манифеста.Какой самый марионеточный способ справиться с этим?

1 Ответ

3 голосов
/ 30 апреля 2019

Вам, вероятно, 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 для управления строкой в ​​этом файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...