여러 DevOps가 단일 셰프 요리책을 어떻게 관리하나요?

여러 DevOps가 단일 셰프 요리책을 어떻게 관리하나요?

요리책을 만들었고 manage.chef.io이를 호스팅하고 배포하는 데 사용하고 있습니다. 저는 GitHub 개인 저장소에 요리책을 호스팅했습니다.

시나리오를 생각해 보십시오. 요리책과 그 내용을
일부 변경했지만knife cookbook upload밀어내는 것을 잊어버리다Github에 올려주세요.

이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까? 실수로라도 아닙니다. 모든 사람이 언제든지 최신 저장소를 갖고 있는지 확인하려면 어떻게 해야 하나요? knife upload그렇지 않으면 불가능합니다. 변경 사항을 수정 git push하지 않은 경우에는 할 수 없는 것과 같습니다 .git pull

내 동료가 GitHub에서 가져오지만 변경 사항이 없습니다. 따라서 그는 자신의 변화를 만듭니다 knife cookbook upload. 하지만 그 사람은 이전 버전을 가지고 있기 때문에 내 변경사항을 대체할 것입니다.

그렇다면 여러 DevOps 간에 요리책을 관리하는 가장 좋은 방법은 무엇입니까?

답변1

가장 간단한 접근 방식은 일반적으로 Chef 서버에 대한 푸시를 Jenkins와 같은 CI 서비스의 제어하에 두는 것입니다. 사람이 요리책 업로드를 실행할 권한이 없기 때문에 소스 제어에 대한 직렬화가 강제됩니다. 이를 방지할 수 있을 만큼 충분한 의사소통을 할 수도 있지만 그렇게 하면 오류가 발생할 가능성이 훨씬 더 커집니다. 정책 파일과 관련된 일부 Chef 워크플로에서는 일반 요리책 업로드를 전혀 사용하지 않으므로 이 문제가 발생하지 않습니다.

관련 정보