Я пытаюсь найти способ запуска команды в файле SELinux .te, который находится на марионеточном сервере, но не клиенте (Я использую модуль puppet-selinux от puppetforge для компиляции файла .te в файл модуля .pp, поэтому мне не нужен он на клиентском сервере). Моя основная идея что-то вроде:Выполнение команды BASH на файле, расположенном на сервере Puppet, а не на клиенте
class security::selinux_module {
exec { 'selinux_module_check':
command => "grep module selinux_module_source.te | awk '{print $3}' | sed 's/;//' > /tmp/selinux_module_check.txt",
source => 'puppet:///modules/security/selinux_module_source.te',
}
}
Хотя при попытке запустить его на сервере клиента, я получаю:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter source on Exec[selinux_module_check] at /etc/puppet/environments/master/security/manifests/selinux_module.pp:3 on node client.domain.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Любая помощь по этому вопросу будет весьма признателен.
Можете упомянуть, что если вы пытаетесь сделать что-либо на мастере во время компиляции каталога, функции в значительной степени подходят. Непонятно, если упоминать проблемы с попыткой использовать 'source' с' exec' и использовать не-абсолютные исполняемые файлы в 'exec'. –