problemas de chef y rvm instalados en ómnibus

problemas de chef y rvm instalados en ómnibus

Estoy tratando de descubrir una cosa y me gustaría la opinión de otra persona sobre esto. Instalé chef en mi servidor Ubuntu (11.10) a través del increíbleinstalación ómnibus. Funcionó perfectamente bien. Pude ejecutar chef-client y funcionó sin ningún problema.

Luego instalé RVM y dos rubíes, y fue entonces cuando comenzaron mis problemas. Inmediatamente después instalé RVM en todo el sistema, es decir, ejecutando:

curl -L https://get.rvm.io | sudo bash -s stable

E instalé 2 rubíes (estableciendo uno de los rubíes como rubí predeterminado en el sistema). Ya no podía ejecutar chef-client. Recibía "comando no encontrado" cuando lo ejecutaba como usuario normal. Estaba pensando que RVM estropea algunas RUTAS. entonces esa fue la razón. Pensé en ejecutarlo como root, es decir:

sudo su -
chef-client

mismo resultado. Luego probé rvmsudo como lo sugieren algunas personas, pero tampoco ayudó. Luego le di una última oportunidad: lo ejecuté como

sudo chef-client

¡Y eso funcionó bien! Estoy realmente desconcertado por qué funciona lo anterior y por qué ejecutar chef -client como root (es decir, sudo su -; chef-client) NO funciona. Me estoy perdiendo de algo ? Realmente agradecería todas las sugerencias o explicaciones ya que estoy un poco perdido. Me gustaría ejecutar chef-client como demonio como root y no puedo hacerlo con el comando sudo anterior. Sé que podría configurar un usuario con nopasswd y probablemente funcionaría, pero realmente me gustaría entender qué es. pasando aquí ;)

Respuesta1

Parece que tienes un problema de carga de ruta.

El instalador general instala Chef /opt/chef/bin/chef-clienty luego establece enlaces simbólicos a/usr/bin/chef-client ref1para que esté disponible para todos los usuarios en $PATH.

En el momento en que instales rvm, se alterará con $PATH, específicamente, qué ruby ​​usará Chef, ya que escargando el ruby ​​del entorno actualmente en ejecuciónal ejecutar.

Al ejecutar con sudo su -, está cambiando al rootentorno de y ejecutando todos los cargadores de perfil/bashrc/bash_profile asociados que configuran el entorno de un usuario.

Cuando se ejecuta con sudo, no se carga todo el entorno, por lo que RVM no cambiará las rutas.

Otra prueba que puedes realizar para ver el impacto de las diferencias del shell es ejecutar:

sudo which ruby
sudo su - which ruby

Y compara las diferencias.

Quizás quieras mirar elchef-clientecookbook, que una vez ejecutado, lo ayudará a configurar un demonio de servicio para controlar/configurar su servicio chef-cliente (lo usamos en todos nuestros servidores).

Dado que rvm está instalado de forma predeterminada en todo el sistema, es posible que deba deshabilitarlo para root (o para el usuario con el que desea ejecutar Chef, pero sugeriría root).

información relacionada