
У меня возникли проблемы с запуском моего агента Puppet. Я буду использовать агент с параметром --onetime, так как хочу, чтобы агент извлекал свою конфигурацию, а не Puppet Master ее отправлял.
Я использую Puppet версии 2.73 как в качестве главного сервера, так и в качестве агента на хосте Debian.
Я работаю в среде, где каждое действие пользователя, касающееся выполнения агента Puppet, должно регистрироваться, поэтому sudo кажется очевидным выбором для запуска агента Puppet.
Однако при запуске агента 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, проблем не возникает.
Я прочитал документацию Puppet Labs (которую сейчас не могу найти), в которой упоминалось, что запуск агента с помощью команды sudo может оказаться невозможным.
Итак, мой вопрос: возможно ли запустить puppet agent как непривилегированный пользователь, запустив sudo? Если да, то какие изменения мне нужно внести в файл sudoers, предполагая, что это то, что нужно изменить.
Если это невозможно, может ли кто-нибудь предложить альтернативы: 1) запуск агента Puppet только на одном хосте за раз, чтобы извлекалась конфигурация, и 2) запись этого действия.
решение1
Я не понимаю требования "один хост за раз". Puppet прекрасно справляется с обслуживанием и записью нескольких запусков агентов puppet одновременно.
Чтобы исключить возможность проблемы с окружающей средой, запустите sudo -i <command>
.
В любом случае, использование Puppet в режиме push может быть более подходящим для ваших требований. Агент puppet (который вам нужно сначала перенастроить) будет прослушивать соединение от puppetmaster, заставляя его инициировать запуск puppet.
Это можно сделать, запустив puppet kick
puppetmaster.
Отчет клиента формируется с помощью загрузки отчета на главный сервер и регистрации Auditd (как на клиентском, так и на главном сервере) на сервере syslog (регистрация sudo не производится).чтонадежный) отслеживающий, как вы отдаете команду.