omnibus instalou problemas de chef e rvm

3

Estou tentando descobrir uma coisa e gostaria que alguém visse isso. Eu instalei o chef no meu servidor Ubuntu (11.10) através da incrível instalação completa . Funcionou perfeitamente bem. Consegui executar o chef-client e ele funcionou sem problemas.

Então eu instalei o RVM e dois rubis - e foi aí que meus problemas começaram. Logo depois que eu instalei o sistema RVM wide por exemplo:

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

E instalou 2 rubis (definindo um dos rubis como padrão ruby no sistema) Eu não podia mais executar o chef-client - Eu estava recebendo "comando não encontrado" quando executado como usuário regular normal - Eu estava pensando RVM bagunça alguns CAMINHOS, então esse foi o motivo. Eu pensei em rodar como root ie:

sudo su -
chef-client

mesmo resultado. Então eu tentei rvmsudo como está sendo sugerido por algumas pessoas, mas isso não ajudou também. Então eu dei um último tiro - eu corri como

sudo chef-client

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

    
por gyre 27.08.2012 / 19:21

1 resposta

0

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

O instalador omnibus instala o Chef em /opt/chef/bin/chef-client e, em seguida, vincula simbolicamente a /usr/bin/chef-client ref1 para que esteja disponível para todos os usuários em $PATH .

No momento em que você instala rvm, ele vai mexer com $ PATH, especificamente, qual ruby deve ser usado pelo Chef, já que é carregando o ruby do env em execução ao executar.

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

Ao executar com sudo , você não está carregando o ambiente inteiro, portanto, o RVM não mudará de caminho.

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

sudo which ruby
sudo su - which ruby

E compare as diferenças.

Você pode querer ver o livro de receitas chef-client , que, uma vez executado, o ajudará 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 raiz (ou o usuário que você deseja executar como, mas eu sugiro root).

    
por 15.12.2013 / 03:45