2013-02-15 4 views
5

나는 요리사가 요리법의 변화를 감지하고 요리사 클라이언트를 사용하여 변경 사항을 설치한다는 점에서 당근이라는 사실을 알고 있습니다. 셰프를 사용하여 EC2 인스턴스를 가져 오지만 매 30 분마다 데몬으로 실행되는 요리사 클라이언트가 모든 요리법을 다시 실행하여 일부 서비스에 원치 않는 변경을 유발합니다. 이 옵션을 변경하고 주문형 요리사 클라이언트를 실행하기 위해 어떤 옵션이 있는지 알고 싶습니다.매 30 분마다 운영되는 요리사 데몬

다음은 요리사 클라이언트 요리 책에 내가 지금까지 생각했던 옵션,

  1. 변경 시간 간격이 매우 높은 시간 데몬이 종종 더 실행하지 않습니다 너무.
  2. EC2 인스턴스가 배포 된 후 요리사 데몬 ssh 또는 요리사 레시피를 제거합니다.

또한 chef-client에는 매주 로그 회전 예정이 있다고 생각합니다. 다시 chef-client를 다시 시작합니다. 이 끌어 오기 기반 동작을 피하는 방법에 대한 아이디어가 있습니까? 모든

+0

해당 노드의 빈 run_list. 셰프 - 클라이언트가 30 분마다 아무것도하지 않고 "주문형"$ knife 노드 your_node 편집 및 업데이트 run_list를 실행하게하십시오. – karthik

답변

10

첫째 :

귀하의 요리사의 조리법에 상관없이 요리사가 실행 횟수, 당신의 1에서 노드와 동일한 구성을 설정할 수 없습니다. 스스로 어떤 서비스도 다시 시작해서는 안됩니다. 이 동작은 변경된 경우 구성 파일에 의해 알림을 받아야합니다. 예 :

service 'apache2' do 
    action [:enable, :start] 
end 

template '/etc/apache2/httpd.conf' do 
    action :create 
    [...] 
    notifies, :restart, 'service[apache2]' #this notification will launch, only if the file has changed 
end 

chef-client --once을 실행하여 chef-client 데몬을 비활성화 할 수도 있습니다. 이렇게하면 요리사가 노드를 제공하고 cron에서 자아를 제거합니다. 따라서 앞으로는 수동으로 만 실행될 것입니다.

그러나 더 큰 문제는 실제로 요리사 - 클라이언트 실행으로 인해 모든 서비스가 일부 서비스에 변경 사항이 발생한다는 것입니다. 먼저 해결해야합니다.

+0

Draco에게 감사드립니다. 당신은 더 큰 문제가 무엇인지에 관해서는 해결되어야합니다. 그러나 문제가 해결 될 때까지 EC2 인스턴스에서 클라이언트를 비활성화해야합니다. --once 옵션을 사용하면 래서 피의 모든 템플릿을 변경해야합니까? – pup784

+0

나는 이전의 코멘트에서 요리 책을 의미했다. – pup784

+2

요리 책을 변경할 필요가 없습니다. EC2 노드에 로그인하고'sudo chef-client -once'를 실행하십시오. 또는'sudo service chef-client stop'. 아니면 서비스를 멈추게하는 레서피를 만드십시오 :'service 'chef-client'{action [: stop, : disable]}'. 많은 가능성이 있습니다. –

0

Draco가 근본적인 문제를 해결하는 것에 대해 동의하지만 셰프 - 클라이언트가 30 분마다 실행되지 않도록하려면 실행에서 chef-client :: service recipe 만 제거하면됩니다 명부. chef-client README을 참조하십시오.

0

요리사 데이터뱅크에서 구성 파일을 작성하는 경우 이 아닌이 다른 실행에서 동일한 순서로 반환되므로 검색 결과를 정렬해야합니다. 결과를 정렬하지 않으면 명백한 이유없이 너무 자주 다시 시작되는 Apache 서비스를 갖게됩니다.

요리사 - 클라이언트 실행이 동일한 데이터로 멱등 원인지 확인하십시오. 이것을 충분히 강조 할 수는 없습니다.

관련 문제