У меня есть манифест Puppet, который создает класс с другим классом внутри него:
class profiles::common::wlsdomains {
class {"wlsdomain":
applications => hiera('wlsapplications', ""),
crontab => hiera_hash('crontab', ""),
generateWlsdomain => hiera('generatewlsdomain'), # This line needs changing
}
}
Все идет нормально. Теперь проблема в последней строке. Я хочу установить для "generateWlsdomain" значение "hiera ('generatewlsdomain')" при определенных условиях. Здесь возникает необходимость в выражении «if». Я бы хотел заменить эту строку примерно таким:
if $::generate == "true" {
generatewlsdomain => "true"
}
elsif $::generate == "false" {
# Do nothing; leave generatewlsdomain unset
}
else { # If $::generate is neither "true" nor "false", then get a value from Hiera
generateWlsdomain => hiera('generatewlsdomain'),
}
Другими словами, я хочу в первую очередь посмотреть на $ :: generate, чтобы решить, что делать, но использовать значение из Hiera в качестве резервной копии, если $ :: generate не задано.
Однако что-то подсказывает мне, что я не могу просто заменить существующую строку этим блоком кода, потому что существующая строка является частью разделенного запятыми списка, а не просто собственной общей строкой кода.
В случае необходимости, это работает на машине RedHat.