
Tengo problemas para iniciar mi agente Puppet. Usaré el agente con el parámetro --onetime ya que quiero que el agente extraiga su configuración en lugar de que Puppet Master la presione.
Estoy usando Puppet versión 2.73 tanto para el maestro como para el agente en un host Debian.
Estoy en un entorno donde se debe registrar cada acción del usuario con respecto a la ejecución del agente Puppet, por lo que sudo parece la opción obvia para iniciar el agente Puppet.
Sin embargo, al iniciar el agente Puppet como sudo, recibo algunos errores:
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
Cuando realizo esta misma acción como root, no hay problemas.
Leí documentación de Puppet Labs (que no puedo encontrar ahora) que mencionaba que ejecutar el agente con el comando sudo podría no ser posible.
Entonces mi pregunta: ¿es posible ejecutar el agente títere como usuario sin privilegios ejecutando sudo? Si es así, ¿qué tipo de cambios debo realizar en el archivo sudoers, asumiendo que esto es lo que hay que modificar?
Si esto no es posible, ¿alguien puede sugerir algunas alternativas para 1) ejecutar el agente títere solo en un host a la vez para que se extraiga la configuración y 2) registrar esta acción?
Respuesta1
No recibo el requisito de "un host a la vez". Puppet es perfectamente capaz de servir y grabar múltiples ejecuciones de agentes de Puppet a la vez.
Sólo para descartar que sea un problema medioambiental, ejecuta sudo -i <command>
.
De todos modos, usar Puppet en modo push podría adaptarse mejor a sus demandas. El agente títere (que primero debe reconfigurar) escuchará una conexión del titiritero, lo que hará que inicie una ejecución del títere.
Puedes hacer esto ejecutando puppet kick
el titiritero.
El registro en papel se genera mediante el informe del cliente que se carga en el maestro y se audita (tanto en el cliente como en el maestro) al iniciar sesión en un servidor syslog (el registro de sudo no esesoconfiable) rastreando la emisión del comando.