chef정리

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 유저@호스트

대상 호스트에 있는 키친(레포지토리)을 완전히 삭제