Your wish is my command

It’s a long journey

초간단 Chef 설치하기

-Ubuntu에서 Chef  초간단 설치하기 입니다.

About Chef

Chef는 1. 서버 형상 관리 툴 2. 서버 관리 자동화 툴 3. 요세는 클라우드 자동화 툴이라고도 합니다. puppet도 같은 비슷하죠.

Chef는 ruby로 작성되어 있으며, 작업하다보면 rails와 비슷하단 느낌을 많이 받습니다. 근데 저도 아직 잘 chef에 관해서 모릅니다. 공부하고 있는 단계죠. 어쨌든!

chef-server

레포지트리 설정

Ubuntu나 CentOS로 공식적으로 들어간 chef 패키지는 없고, 개발사인 opscode에서 관리하는 레포지트리를 사용합니다.

$ echo "deb http://apt.opscode.com/ `lsb_release -cs`-0.10 main" | sudo tee /etc/apt/sources.list.d/opscode.list

Repository PGP 키 추가

$ sudo mkdir -p /etc/apt/trusted.gpg.d
$ gpg -keyserver keys.gnupg.net -recv-keys 83EF826A
$ gpg -export packages@opscode.com | sudo tee /etc/apt/trusted.gpg.d/opscode-keyring.gpg > /dev/null

레포지트리 업데이트

$ sudo apt-get update

Chef 설치

$ sudo apt-get install chef-server
  • 설치하면서 URL을 물어보는데 http://:4040 으로 설정합니다. localhost로 설정하면 나중에 bootstrap으로 클라이언트 설치하는데 오류가 발생합니다.

knife 설정

knife는 chef를 움직이는 cli 툴입니다. 현재 계정(root가 아닌)에서 knife를 사용하여 명령을 내릴 수 있도록 설정합니다.

$ mkdir -p ~/.chef
$ sudo cp /etc/chef/validation.pem /etc/chef/webui.pem ~/.chef
$ sudo chown -R `whoami` ~/.chef
$ knife configuration -i
  • 인증서의 위치는 위에서 복사한 ~/.chef의 경로로 입력

knife 설치 확인

$ knife client list
$ knife cookbook list

클라이언트 설치(precise)

chef bootstrap은 Ubuntu 10.04를 지원하지만, 12.04(precise)를 지원하지 않습니다. 하지만 간단히 그냥 lucid를 precise로 바꾸기만 하면 됩니다. 물론 lucid를 이용하는 경우는 기존 것 그대로 이용하면 됩니다.

$ cd /usr/lib/ruby/vendor_ruby/chef/knife/bootstrap $ cp ubuntu10.04-apt.erb ubuntu12.04-apt.erb $ sed  -i ’s/lucid/precise/g’ ubuntu12.04-apt.erb $ knife bootstrap 10.200.1.5 -d ubuntu12.04-apt -sudo -x -P -bootstrap-version 0.10

  • 10.200.1.5: chef-client를 설치할 호스트 아이피
  • -d: 배포판을 지정한다. lucid인 경우는 ubuntu10.04
  • -sudo: sudo를 이용해서 명령을 실행한다.
  • -x: ssh로 접속할 사용자를 지정한다. root 계정으로 직접 접근하지 못하는 서버들에 설정한다.
  • -P: ssh password
  • -bootstrap-version 0.10: bootstrap 설치할 버전

에러없이 잘 실행된다면

$ knife node list

로 해당 호스트가 등록된 것을 확인할 수 있습니다.

정상적으로 설치가 완료되었는데, 노드가 등록이 안되는 경우는 거의 대부분 시간이 안맞아서 그렇습니다. chef는 ampq를 사용하는데, 여기선 시간이 아주 중요하기 때문이지요. 시간이 안맞다면 ntpdate -u kr.pool.ntp.org 이렇게 시간이 중요하기 때문에 서버를 포함한 모든 노드는 ntpd를 설치하여 시간을 동기화하시기 바랍니다.

Cookbook 시작하기…

이제 Chef 설치는 잘 되었을 것이고, cookbook, knife등을 익힐 차례입니다. Cookbook Fast Start Guide에서 시작하기 바랍니다.

http://wiki.woosum.net/Chef