Chef 관련 정보를 찾다가 아줄 정리가 잘되어 있는 PDF문서도 발견했다. 아래 첨부파일은 한번쯤 보시길...
개략적인 운영방식은 아래와 같다.
Chef는 기본적으로 Server/Client 구조다. (필요에 따라 Solo로 작동 시킬수도 있다.)
Chef-Server에서 원하는 Package와 그에 적절한 Configuraton를 사전에 Recipe로 만들어 Cookbook에 등록해두고, Chef-Client에 적절한 수행을 가해주면, 원하는 패키지 설치/제거는 물론이고, 설정까지 자동으로 적용된다. Chef-Clinet는 동일한 기능을 가질수도 있고, 개별적인 기능들을 가지게하여, 하나의 '서버군'을 형성하게 할 수도 있다.(사실 난 아직 해보질 못했음...ㅡㅡ;;).
또 Chef-Server 설정에 따라, 특정 Chef-Client가 관리자 실수나, 기타 장애로 설정값이 변경되거나, Chef로 관리되는 서비스에 문제가 발생됬다고 판단될 경우, Package와 Configuration을 자동 복원하고, 서비스를 다시 시작해준다. 매역적인 기능이다.
서로 다른 여러 기능의 Chef-Clinet를 조합하여, 한의 부하 분산 서버군을 구성할 수도 있을 것 같다. 그것도 각각의 VM에 접속할 필요 없이. Chef-Server에서 몇번의 명령만으로... 관리 포인트도 하나로 집중시킬수도 있을 것 같고... 무식한 영어 실력으로 더듬더듬한 내용이지만, 대충 그런것 같다.
그리고, Chef에서는 Cookbook/Recipe가 굉장히 중요한 요소 같다. 아니 Chef의 전부인듯........
각자가 원하는 Recipe를 만들수도 있지만, 아마도 내가 만들고자 하는 Recipe와 90%이상은 유사한 Recipe가 이미 오픈되어 공유되고 있다. 실제로 Cookbook을 한번 다운로드 받아 봤더니 아래와 같이...........엄청..........ㅜㅡ;; 보시다 시피 어지간한 세트는 다 이미 마련되있다. 세부 설정은 해당 recipe의 Configuration을 아주 약간 변형함으로서 내가 원하는 형태로 배포/설정 할수 있다. (그리고 OPSCode라는 곳에서는 더 많은 레시피를 제공받을 수 있는 것 같다. 이부분은 좀더 확인해 봐야 함....)
Chef Cookbook에 포함되어 있는 Recipe (git clone git://github.com/opscode/cookbooks.git)
[root@localhost chef-repo]# ll
total 44
drwxr-xr-x 8 root root 4096 Mar 25 13:10 .
drwxr-xr-x 3 root root 4096 Mar 25 13:14 ..
drwxr-xr-x 2 root root 4096 Mar 25 13:10 certificates
drwxr-xr-x 2 root root 4096 Mar 25 13:10 config
drwxr-xr-x 129 root root 4096 Mar 25 13:11 cookbooks
drwxr-xr-x 2 root root 4096 Mar 25 13:10 data_bags
drwxr-xr-x 8 root root 4096 Mar 25 13:10 .git
-rw-r--r-- 1 root root 18 Mar 25 13:10 .gitignore
-rw-r--r-- 1 root root 2171 Mar 25 13:10 Rakefile
-rw-r--r-- 1 root root 3521 Mar 25 13:10 README.md
drwxr-xr-x 2 root root 4096 Mar 25 13:10 roles
[root@localhost chef-repo]#
[root@localhost chef-repo]#
[root@localhost chef-repo]# ll cookbooks/
total 548
drwxr-xr-x 129 root root 4096 Mar 25 13:11 .
drwxr-xr-x 8 root root 4096 Mar 25 13:10 ..
drwxr-xr-x 5 root root 4096 Mar 25 13:11 activemq
drwxr-xr-x 3 root root 4096 Mar 25 13:11 ant
drwxr-xr-x 7 root root 4096 Mar 25 13:11 apache2
drwxr-xr-x 4 root root 4096 Mar 25 13:11 apparmor
drwxr-xr-x 5 root root 4096 Mar 25 13:11 application
drwxr-xr-x 6 root root 4096 Mar 25 13:11 apt
drwxr-xr-x 6 root root 4096 Mar 25 13:11 aws
drwxr-xr-x 6 root root 4096 Mar 25 13:11 bluepill
drwxr-xr-x 3 root root 4096 Mar 25 13:11 boost
drwxr-xr-x 3 root root 4096 Mar 25 13:11 build-essential
drwxr-xr-x 4 root root 4096 Mar 25 13:11 capistrano
drwxr-xr-x 5 root root 4096 Mar 25 13:11 chef
drwxr-xr-x 5 root root 4096 Mar 25 13:11 chef-client
drwxr-xr-x 7 root root 4096 Mar 25 13:11 cloudkick
-rw-r--r-- 1 root root 408 Mar 25 13:11 CONTRIBUTING
drwxr-xr-x 6 root root 4096 Mar 25 13:11 couchdb
drwxr-xr-x 3 root root 4096 Mar 25 13:11 cron
drwxr-xr-x 7 root root 4096 Mar 25 13:11 daemontools
drwxr-xr-x 4 root root 4096 Mar 25 13:11 database
drwxr-xr-x 4 root root 4096 Mar 25 13:11 django
drwxr-xr-x 7 root root 4096 Mar 25 13:11 djbdns
drwxr-xr-x 6 root root 4096 Mar 25 13:11 dmg
drwxr-xr-x 3 root root 4096 Mar 25 13:11 drbd
drwxr-xr-x 6 root root 4096 Mar 25 13:11 dynect
drwxr-xr-x 5 root root 4096 Mar 25 13:11 dynomite
drwxr-xr-x 4 root root 4096 Mar 25 13:11 ec2
drwxr-xr-x 3 root root 4096 Mar 25 13:11 emacs
drwxr-xr-x 4 root root 4096 Mar 25 13:11 erlang
drwxr-xr-x 4 root root 4096 Mar 25 13:11 fail2ban
drwxr-xr-x 6 root root 4096 Mar 25 13:11 gems
drwxr-xr-x 4 root root 4096 Mar 25 13:11 git
drwxr-xr-x 8 root root 4096 Mar 25 13:11 .git
-rw-r--r-- 1 root root 38 Mar 25 13:11 .gitignore
drwxr-xr-x 5 root root 4096 Mar 25 13:11 glassfish
drwxr-xr-x 4 root root 4096 Mar 25 13:11 gnu_parallel
drwxr-xr-x 5 root root 4096 Mar 25 13:11 god
drwxr-xr-x 7 root root 4096 Mar 25 13:11 gunicorn
drwxr-xr-x 4 root root 4096 Mar 25 13:11 hadoop
drwxr-xr-x 5 root root 4096 Mar 25 13:11 haproxy
drwxr-xr-x 3 root root 4096 Mar 25 13:11 heartbeat
drwxr-xr-x 3 root root 4096 Mar 25 13:11 imagemagick
drwxr-xr-x 4 root root 4096 Mar 25 13:11 instiki
drwxr-xr-x 6 root root 4096 Mar 25 13:11 iptables
drwxr-xr-x 6 root root 4096 Mar 25 13:11 java
drwxr-xr-x 3 root root 4096 Mar 25 13:11 java_sun
drwxr-xr-x 5 root root 4096 Mar 25 13:11 jetty
drwxr-xr-x 6 root root 4096 Mar 25 13:11 jira
drwxr-xr-x 5 root root 4096 Mar 25 13:11 jpackage
drwxr-xr-x 4 root root 4096 Mar 25 13:11 keepalived
drwxr-xr-x 5 root root 4096 Mar 25 13:11 kickstart
-rw-r--r-- 1 root root 10850 Mar 25 13:11 LICENSE
drwxr-xr-x 5 root root 4096 Mar 25 13:11 logrotate
drwxr-xr-x 3 root root 4096 Mar 25 13:11 logwatch
drwxr-xr-x 3 root root 4096 Mar 25 13:11 lvm
drwxr-xr-x 3 root root 4096 Mar 25 13:11 man
drwxr-xr-x 5 root root 4096 Mar 25 13:11 maradns
drwxr-xr-x 3 root root 4096 Mar 25 13:11 maven
drwxr-xr-x 6 root root 4096 Mar 25 13:11 memcached
drwxr-xr-x 3 root root 4096 Mar 25 13:11 mercurial
drwxr-xr-x 7 root root 4096 Mar 25 13:11 munin
drwxr-xr-x 8 root root 4096 Mar 25 13:11 mysql
drwxr-xr-x 8 root root 4096 Mar 25 13:11 nagios
drwxr-xr-x 3 root root 4096 Mar 25 13:11 nanite
drwxr-xr-x 7 root root 4096 Mar 25 13:11 nginx
-rw-r--r-- 1 root root 999 Mar 25 13:11 NOTICE
drwxr-xr-x 3 root root 4096 Mar 25 13:11 nscd
drwxr-xr-x 5 root root 4096 Mar 25 13:11 ntp
drwxr-xr-x 5 root root 4096 Mar 25 13:11 ohai
drwxr-xr-x 5 root root 4096 Mar 25 13:11 one-shot
drwxr-xr-x 6 root root 4096 Mar 25 13:11 openldap
drwxr-xr-x 4 root root 4096 Mar 25 13:11 openssh
drwxr-xr-x 4 root root 4096 Mar 25 13:11 openssl
drwxr-xr-x 5 root root 4096 Mar 25 13:11 openvpn
drwxr-xr-x 5 root root 4096 Mar 25 13:11 ossec
drwxr-xr-x 5 root root 4096 Mar 25 13:11 packages
drwxr-xr-x 5 root root 4096 Mar 25 13:11 pacman
drwxr-xr-x 5 root root 4096 Mar 25 13:11 passenger_apache2
drwxr-xr-x 5 root root 4096 Mar 25 13:11 passenger_enterprise
drwxr-xr-x 5 root root 4096 Mar 25 13:11 perl
drwxr-xr-x 7 root root 4096 Mar 25 13:11 php
drwxr-xr-x 5 root root 4096 Mar 25 13:11 postfix
drwxr-xr-x 5 root root 4096 Mar 25 13:11 postgresql
drwxr-xr-x 5 root root 4096 Mar 25 13:11 pxe_dust
drwxr-xr-x 6 root root 4096 Mar 25 13:11 python
drwxr-xr-x 5 root root 4096 Mar 25 13:11 quick_start
drwxr-xr-x 5 root root 4096 Mar 25 13:11 rabbitmq
drwxr-xr-x 3 root root 4096 Mar 25 13:11 rabbitmq_chef
drwxr-xr-x 6 root root 4096 Mar 25 13:11 radiant
drwxr-xr-x 5 root root 4096 Mar 25 13:11 rails
drwxr-xr-x 4 root root 4096 Mar 25 13:11 rails_enterprise
-rw-r--r-- 1 root root 1227 Mar 25 13:11 Rakefile
-rw-r--r-- 1 root root 659 Mar 25 13:11 README
drwxr-xr-x 5 root root 4096 Mar 25 13:11 redmine
drwxr-xr-x 4 root root 4096 Mar 25 13:11 reprepro
drwxr-xr-x 5 root root 4096 Mar 25 13:11 resolver
drwxr-xr-x 8 root root 4096 Mar 25 13:11 riak
drwxr-xr-x 3 root root 4096 Mar 25 13:11 rsync
drwxr-xr-x 6 root root 4096 Mar 25 13:11 rsyslog
drwxr-xr-x 4 root root 4096 Mar 25 13:11 ruby
drwxr-xr-x 5 root root 4096 Mar 25 13:11 ruby_enterprise
drwxr-xr-x 3 root root 4096 Mar 25 13:11 rubygems
drwxr-xr-x 7 root root 4096 Mar 25 13:11 runit
drwxr-xr-x 3 root root 4096 Mar 25 13:11 rush
drwxr-xr-x 7 root root 4096 Mar 25 13:11 samba
drwxr-xr-x 7 root root 4096 Mar 25 13:11 sbuild
drwxr-xr-x 3 root root 4096 Mar 25 13:11 screen
drwxr-xr-x 5 root root 4096 Mar 25 13:11 snort
drwxr-xr-x 7 root root 4096 Mar 25 13:11 solr
drwxr-xr-x 3 root root 4096 Mar 25 13:11 sqlite
drwxr-xr-x 4 root root 4096 Mar 25 13:11 ssh_known_hosts
drwxr-xr-x 4 root root 4096 Mar 25 13:11 stompserver
drwxr-xr-x 5 root root 4096 Mar 25 13:11 subversion
drwxr-xr-x 5 root root 4096 Mar 25 13:11 sudo
drwxr-xr-x 4 root root 4096 Mar 25 13:11 teamspeak
drwxr-xr-x 5 root root 4096 Mar 25 13:11 teamspeak3
drwxr-xr-x 3 root root 4096 Mar 25 13:11 thrift
drwxr-xr-x 3 root root 4096 Mar 25 13:11 tmux
drwxr-xr-x 5 root root 4096 Mar 25 13:11 tomcat
drwxr-xr-x 8 root root 4096 Mar 25 13:11 tomcat6
drwxr-xr-x 5 root root 4096 Mar 25 13:11 trac
drwxr-xr-x 8 root root 4096 Mar 25 13:11 transmission
drwxr-xr-x 5 root root 4096 Mar 25 13:11 ubuntu
drwxr-xr-x 4 root root 4096 Mar 25 13:11 ucspi-tcp
drwxr-xr-x 5 root root 4096 Mar 25 13:11 unicorn
drwxr-xr-x 4 root root 4096 Mar 25 13:11 users
drwxr-xr-x 5 root root 4096 Mar 25 13:11 varnish
drwxr-xr-x 4 root root 4096 Mar 25 13:11 vim
drwxr-xr-x 5 root root 4096 Mar 25 13:11 wordpress
drwxr-xr-x 3 root root 4096 Mar 25 13:11 xfs
drwxr-xr-x 3 root root 4096 Mar 25 13:11 xml
drwxr-xr-x 8 root root 4096 Mar 25 13:11 zenoss
drwxr-xr-x 3 root root 4096 Mar 25 13:11 zlib
drwxr-xr-x 3 root root 4096 Mar 25 13:11 zsh
[root@localhost chef-repo]#
이제 슬슬 간단한 것 부터 한번 실제로 해봐야 겠다..........
'Cloud > Automation' 카테고리의 다른 글
Puppet Configuration Management Tool (0) | 2012.02.23 |
---|---|
Chef Server/Client (on FrameOS6) (0) | 2011.05.12 |
[시스템 자동화] Install Chef Server/Client on CentOS 5.4 x86_64 ...(폐기) (1) | 2011.04.23 |
Install Chef-Solo on CentOS 5.4 x86_64 (1) | 2011.03.27 |
[Chef]에 관해 간결하고, 재미있게 잘 작성된 PT자료 (추천문서) (0) | 2011.03.25 |