J'essaie de trouver un moyen d'exécuter une commande sur un fichier SELinux .te situé sur le serveur de marionnettes, mais pas sur le client (J'utilise le module puppet-selinux de puppetforge pour compiler le fichier .te dans le fichier du module .pp, donc je n'en ai pas besoin sur le serveur client). Mon idée de base est quelque chose comme:Exécution d'une commande BASH sur un fichier situé sur le serveur Puppet et non sur le client
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',
}
}
Bien que lorsque vous essayez de l'exécuter sur le serveur client je reçois:
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
Toute aide sur ce serait grandement apprécié.
Il est peut-être intéressant de mentionner que si vous essayez de faire quoi que ce soit sur le maître lors de la compilation du catalogue, les fonctions sont à portée de main. Incertain si mentionner les problèmes avec la tentative d'utiliser 'source' avec' exec' et en utilisant des exécutables non absolus dans 'exec'. –