Задание Puppet cron - убедитесь, что файлы существуют
Я пытаюсь настроить задачу Puppet cron со следующей структурой:
file { '/usr/local/sbin/file.py':
mode => '0755',
source => 'puppet:///modules/file.py',
require => File['/usr/local/sbin']
}
cron { "cronjob":
require => "ALL_THE_FILES_ABOVE"
command => "...command_to_run_script..."
minute => '*/1'
}
Все вышеперечисленное находится в одном файле run_script.pp
, Мне интересно, как я могу кодировать require => "ALL_THE_FILES_ABOVE"
часть.
Спасибо!
2 ответа
На основании информации, представленной в вашем вопросе, я сделаю предположение, что содержание run_script.pp
это много file
ресурсы и перечисленные cron
ресурс. Вы заявляете, что хотите cron
ресурс там требовать все file
ресурсы в этом классе. Исходя из этого, вот чистое и эффективное решение.
Есть несколько сложных / продвинутых способов найти чистое и эффективное решение, но самое простое для понимания - использование ресурса по умолчанию: https://puppet.com/docs/puppet/5.3/lang_defaults.html
При этом мы можем установить пары атрибут / значение по умолчанию для всех file
ресурсы, содержащиеся в этой области. Это облегчит использование before
метапараметр на file
вместо ресурсов: https://puppet.com/docs/puppet/5.3/metaparameter.html
Это упрощает решение для одной строки в вашем классе:File { before => Cron['cronjob'] }
Обратите внимание, что в этом методе будет оговорка: если вы объявляете, запрашиваете или содержите класс в этом манифесте, то это значение по умолчанию может быть расширено до этой "области влияния" и вызвать циклическую зависимость. В этом случае вы должны использовать атрибут ресурса по умолчанию для каждого выражения: https://puppet.com/docs/puppet/5.3/lang_resources_advanced.html
Вы можете использовать несколько требуют
file{'path/foo':}
file{'path/bar':}
file{'~/foobar':
require => [ File['path/foo'], File['path/bar'] ]
}
или вы можете использовать стрелку заказа
-> (стрелка в порядке; дефис и знак больше чем) - применяет ресурс слева перед ресурсом справа.
file{'path/foo':} ->
file{'path/bar':} ->
file{'~/foobar':}
Вот больше информации об отношениях и порядке в Puppet