У меня возникают проблемы с запуском агента Puppet. Я буду использовать агент с параметром --onetime, так как я хочу, чтобы агент извлекал свою конфигурацию, а не отправлял Puppet Master.
Я использую Puppet версии 2.73 как для мастера, так и для агента на хосте Debian.
Я нахожусь в среде, где каждое действие пользователя в отношении выполнения марионеточного агента должно быть записано, поэтому sudo кажется очевидным выбором для запуска Puppet agent.
Однако при запуске агента Puppet как sudo я получаю несколько ошибок:
user@puppetagent$ sudo puppet agent --onetime
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/hostname
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/hostname
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/dnsdomainname
/usr/lib/ruby/vendor_ruby/puppet/util.rb:215: command not found: /bin/hostname
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
Could not prepare for execution: could not create PID file: /var/run/puppet/agent.pid
Когда я выполняю то же действие как root, проблем не возникает.
Я прочитал документацию по марионеточным лабораториям (которую я сейчас не могу найти), в которой упоминалось, что запуск агента с помощью команды sudo может быть невозможен.
Итак, мой вопрос: можно ли запустить марионеточный агент от имени непривилегированного пользователя, запустив sudo? Если да, то какие изменения я должен внести в файл sudoers, если это то, что нужно изменить.
Если это невозможно, может ли кто-нибудь предложить некоторые альтернативы для 1) запуска марионеточного агента только на одном хосте за раз, чтобы конфигурация была извлечена, и 2) записи этого действия.
Я не получаю требования «по одному хосту за раз». Puppet прекрасно может обслуживать и записывать запуск нескольких агентов Puppet одновременно.
Чтобы исключить проблему с окружающей средой, запустите sudo -i <command>
.
В любом случае, использование Puppet в режиме push может больше соответствовать вашим требованиям. Агент марионетки (который необходимо сначала перенастроить) будет прослушивать соединение от мастера марионеток, заставляя его инициировать запуск марионетки.
Вы можете сделать это, запустив puppet kick
на кукловода.
Бумажный след создается клиентским отчетом, который загружается на главный сервер, и auditd (как на клиенте, так и на главном сервере) регистрируется на сервере системного журнала (регистрация sudo не выполняется. который надежно) отслеживает, как вы подаете команду.