2016-08-08 7 views
1

두 요리법을 호출해야하는 요리사 요리 책이 있습니다 (하나는 root, 다른 사용자는 작성하여 /etc/sudoers에 추가). 실행해야하는 다른 요리법 새로 생성 된 사용자를 사용합니다.요리사 : 동일한 요리 책에서 다른 사용자와 함께 두 개의 요리법 실행

bash 리소스를 사용하여 특정 사용자로 명령을 쉽게 실행할 수 있다는 것을 알고 있습니다.이 경우 두 경우 모두 (루트 사용자와 신규 사용자) include_recipe을 호출해야합니다.

아이디어가 있으십니까?

답변

4

요리사 클라이언트는 root 사용자로 실행되며 단순히 다른 사용자로 요리법을 실행할 수 없습니다.

사용자를 만들 완전히 합법적 다음 예를 들어,이 사용자의 이름으로 일의 부부를 수행

user "foo" 

directory "/usr/local/foo" do 
    owner "foo" 
end 

execute "install foo" do 
    command "whatever-foo" 
    user "foo" 
end 

그러나, 당신은 당신이 정말로 두를 포함 할 조리법이있는 경우 시간과 그게 진짜 똑같은 일을, 다른 사용자 (예 : 자신의 홈 디렉토리에), 그럼 요리법 모든 것을 생각 잊지 만해야합니다. user 속성이있는 custom resource을 사용하십시오.

그런 다음 한 번에 모든 사용자에 대해,이 리소스를 두 번 호출 할 수 있습니다

%w{root otheruser}.each do |u| 
    mycookbook_myresource "do-it-for-user-#{u}" do 
    user u 
    end 
end