옴니버스 설치 Chef 및 RVM 문제

옴니버스 설치 Chef 및 RVM 문제

나는 한 가지를 알아 내려고 노력하고 있으며 이에 대한 다른 사람의 견해를 원합니다. 멋진 도구를 통해 Ubuntu 서버(11.10)에 Chef를 설치했습니다.옴니버스 설치. 완벽하게 작동했습니다. 나는 Chef-Client를 실행할 수 있었고 아무런 문제없이 실행되었습니다.

그런 다음 RVM과 두 개의 루비를 설치했는데, 그때부터 문제가 시작되었습니다. RVM 시스템 전체를 설치한 직후, 즉 다음을 실행하여:

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

그리고 루비 2개를 설치했습니다(루비 중 하나를 시스템의 기본 루비로 설정). 더 이상 Chef-client를 실행할 수 없습니다. 일반 일반 사용자로 실행할 때 "명령을 찾을 수 없습니다"라는 메시지가 표시되었습니다. RVM이 일부 경로를 망친다고 생각했습니다. 그래서 그게 이유였어. 나는 그것을 루트로 실행할 것이라고 생각했습니다. 즉:

sudo su -
chef-client

같은 결과. 그런 다음 일부 사람들이 제안한 대로 rvmsudo를 시도했지만 그것도 도움이 되지 않았습니다. 그런 다음 마지막 기회를 주었습니다. 다음과 같이 실행했습니다.

sudo chef-client

그리고 그것은 잘 작동했습니다! 위의 작업이 작동하는 이유와 왜 Chef -client를 루트(예: sudo su -; Chef-client)로 실행하면 작동하지 않는지 정말 궁금합니다. 뭔가 빠졌나요? 조금 길을 잃었 기 때문에 모든 힌트 나 설명에 정말 감사하겠습니다. 나는 Chef-client를 루트로 데몬으로 실행하고 싶지만 위의 sudo 명령으로는 그렇게 할 수 없습니다. nopasswd를 사용하여 사용자를 설정할 수 있다는 것을 알고 있으며 아마도 작동할 것입니다. 그러나 무엇인지 정말로 알고 싶습니다. 여기서 진행됩니다 ;)

답변1

경로 로딩 문제가 있는 것 같습니다.

옴니버스 설치 프로그램은 Chef를 설치한 /opt/chef/bin/chef-client다음 다음에 심볼릭 링크 합니다./usr/bin/chef-client 심판 1의 모든 사용자가 사용할 수 있도록 합니다 $PATH.

rvm을 설치하는 순간 $PATH, 특히 Chef가 어떤 Ruby를 사용할지 혼란스러워질 것입니다.현재 실행 중인 환경의 루비 로드실행할 때.

로 실행하면 의 환경 sudo su -으로 변경되고 root사용자 환경을 설정하는 관련 profile/bashrc/bash_profile 로더가 모두 실행됩니다.

로 실행하면 sudo전체 환경이 로드되지 않으므로 RVM이 경로를 변경하지 않습니다.

셸 차이점의 영향을 확인하기 위해 수행할 수 있는 또 다른 테스트는 다음을 실행하는 것입니다.

sudo which ruby
sudo su - which ruby

그리고 차이점을 비교해 보세요.

당신은요리사-클라이언트일단 실행되면 요리사-클라이언트 서비스를 제어/구성하기 위한 서비스 데몬을 설정하는 데 도움이 될 것입니다(우리는 이것을 모든 서버에서 사용합니다).

rvm은 시스템 전체에 기본으로 설치되므로 루트(또는 Chef를 실행하려는 사용자이지만 루트를 제안함)에 대해 이를 비활성화해야 할 수도 있습니다.

관련 정보