문제

nginx를 설치하고 사용자 정의 nginx.conf 파일을 설치하는 요리사 요리 책이 있습니다.기본적으로 Opscode의 동일한 요리책이며, cookbook_file을 사용하여 파일을 설치합니다.

conf 파일을 변경한 다음 Chef를 사용하여 쿡북을 다시 실행하면 구성 파일이 업데이트되지 않습니다.이것은 버그인 것 같습니다. 제가 뭔가 잘못하고 있는 걸까요?

도움이 되었습니까?

해결책

Chef에서는 레시피의 명령 순서가 실행 순서입니다.당신이 그것을 지켰다면 template 위해 nginx.conf 그리고 그것은 너의 뒤에 온다 cookbook_file 명령을 실행하면 생성된 템플릿이 파일을 덮어씁니다.

예를 들어

# cookbook file
cookbook_file "#{node[:nginx][:dir]}/nginx.conf" do
  source "my_nginx.conf"
  mode 0644
  owner "root"
  group "root"
end

# template
template "nginx.conf" do
  path "#{node[:nginx][:dir]}/nginx.conf"
  source "nginx.conf.erb"
  owner "root"
  group "root"
  mode 0644
  notifies :reload, "service[nginx]"
end

그만큼 template 에 의해 배치된 파일을 덮어쓰게 됩니다. cookbook_file.

다른 팁

테스트에서는 :create_if_missing를 설정하면 내용이 변경된 경우 파일을 업데이트하지 않습니다.:create를 설정하고

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top