문제
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
를 설정하고
제휴하지 않습니다 StackOverflow