chef 정리
knife가지고 놀기
cookbook 만들기
shell
$ knife cookbook craete [쿡북이름] -o [디렉토리명]
$ knife cookbook craete hello -o site-cookbooks
knife solo
knife-solo의 설치
knife-solo는 rubygem이므로 아래의 커맨드로 설치가능
shell
$ gem install knife-solo
설치하는 것 만으로도 knife커맨드에 chef-solo를 위한 커맨드가 추가 됨.
knife solo
를 파라메터 없이 실행해 보면 사용가능한 커맨드의 리스트가 출력 됨.
knife-solo의 문서
https://github.com/matschaffer/knife-solo/blob/master/README.rdoc
레시피 전송 & 실행 knife solo cook
shell
$ knife solo cook 유저@호스트명
cook 커맨드는 키친(리포지토리)를 대상 서버에 업로드하고, chef-solo를 실행시킨다.
knife-solo를 이용한 chef-solo 실행환경 준비
shell
$ knife solo prepare 유저@호스트
$ knife solo prepare -p 포트 유저@호스트
리포지토리 작성
shell
$ knife solo init 리포지토리 명
디렉토리 구성은 아래와 같다.
├── .chef
│ └── knife.rb
├── cookbooks #다운로드한 쿡북을 저장
├── data_bags #노드간에 공유할 수 있는 변수 저장
├── nodes #노드별로 JSON파일을 저장
├── roles
└── site-cookbooks #자신이 만든 쿡북을 저장
prepare + cook = bootstrap
shell
knife solo bootstrap 유저@호스트
knife solo prepare 를 호출하고 나서 knife solo cook을 호출.
clean
shell
$ knife solo clean 유저@호스트
대상 호스트에 있는 키친(레포지토리)을 완전히 삭제