problemas de chef e rvm instalados omnibus

problemas de chef e rvm instalados omnibus

Estou tentando descobrir uma coisa e gostaria da opinião de outra pessoa sobre isso. Instalei o chef no meu servidor Ubuntu (11.10) através do incrívelinstalação omnibus. Funcionou perfeitamente bem. Consegui rodar chef-client e ele funcionou sem problemas.

Então instalei o RVM e dois rubis - e foi aí que meus problemas começaram. Logo depois de instalar todo o sistema RVM, ou seja, executando:

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

E instalei 2 rubis (definindo um dos rubis como rubi padrão no sistema). Não consegui mais executar o chef-client - estava recebendo "comando não encontrado" quando executado como usuário normal normal - estava pensando que o RVM bagunça alguns PATHS então esse foi o motivo. Eu pensei em executá-lo como root, ou seja:

sudo su -
chef-client

mesmo resultado. Então tentei o rvmsudo conforme sugerido por algumas pessoas, mas também não ajudou. Então eu dei uma última chance - executei como

sudo chef-client

E isso funcionou bem! Estou realmente confuso sobre por que o procedimento acima está funcionando e por que executar chef -client como root (ou seja, sudo su -; chef-client) NÃO está funcionando. Estou esquecendo de algo ? Eu realmente aprecio todas as dicas ou explicações, pois estou um pouco perdido. Eu gostaria de executar o chef-client como um daemon como root e não posso fazer isso com o comando sudo acima - eu sei que poderia definir um usuário com nopasswd e provavelmente funcionaria, mas eu realmente gostaria de entender o que é acontecendo aqui ;)

Responder1

Parece que você está tendo um problema de carregamento de caminho.

O instalador omnibus instala o Chef /opt/chef/bin/chef-cliente depois cria um link simbólico para/usr/bin/chef-client referência1para que esteja disponível para todos os usuários no $PATH.

No momento em que você instalar o rvm ele vai mexer com $PATH, especificamente, qual Ruby será usado pelo Chef, já que écarregando o Ruby do ambiente em execução no momentoao executar.

Ao executar com sudo su -, você está mudando para rooto ambiente de e executando todos os carregadores profile/bashrc/bash_profile associados que configuram o ambiente de um usuário.

Ao executar com sudo, você não carrega o ambiente inteiro, portanto o RVM não altera os caminhos.

Outro teste que você pode fazer para ver o impacto das diferenças de shell é executar:

sudo which ruby
sudo su - which ruby

E compare as diferenças.

Você pode querer dar uma olhada nochef-clientecookbook, que uma vez executado, irá ajudá-lo a configurar um daemon de serviço para controlar/configurar seu serviço chef-cliente (usamos isso em todos os nossos servidores).

Como o rvm é instalado como padrão em todo o sistema, talvez seja necessário desativá-lo para o root (ou para o usuário com o qual deseja executar o Chef, mas eu sugiro o root).

informação relacionada