Information Technology/Automation
[Chef] Berkshelf를 이용한 Cookbook 의존성 관리
hdhwang
2023. 3. 20. 00:09
많은 의존성이 걸린 Cookbook을 수동으로 설치하고 확인하기는 매우 힘들다. 다운로드 Cookbook의 의존성을 모두 확인해 직접 설치해도 새로 설치한 Cookbook의 의존성을 다시 해결해야 한다.
knife cookbook site install 명령을 이용하여 모든 의존성 Cookbook을 로컬에 설치할 수 있지만, 디렉터리와 Git 저장소가 의존성 Cookbook으로 어지럽혀진다.
Berkshelf는 모든 의존성을 재귀적으로 다운로드하고 관리하는데, 루비 Gem의 Bundler와 유사한 역할을 한다. 이는 Chef 저장소를 의존성 Cookbook으로 어지럽히지 않고, 모든 Cookbook을 별도의 위치에 저장한다. 사용자가 Berkshelf 의존성 파일(Berksfile)만 저장소에 Commit하면 모든 동료와 빌드 서버는 그 파일을 이용해서 의존성 Cookbook을 다운로드하고 설치할 수 있다.
- berkshelf Gem을 포함하는 Gemfile 생성
[root@ChefWorkstation] $ vi Gemfile
source 'https://rubygems.org'
gem 'berkshelf'
:wq
- Bundler를 실행하여 Gem 설치
[root@ChefWorkstation] $ bundle install
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/.
…
참 고 문 헌
[1] 이토 나오야, 박상욱, “인프라스트럭처 자동화 프레임워크 Chef Solo 입문”, 제이펍, 2014.
[2] 마티아스 마샬, 최광민, “Chef, 클라우드 서비스 설정관리 자동화 도구”, 에이콘, 2015.