페이지

2010년 10월 16일 토요일

CentOS 설치 및 Chef 운영 환경 조성

(들어가기에 앞서, 이 글은 http://kerberosj.tistory.com/tag/%EC%89%90%ED%94%84 을 참조하고 거진 대부분을 따라하고 조금만 덧붙인 상태의 글이다.)

Cloud Computing System을 위하여 서버를 구축하고 Chef란 Tool을 이용하여 수 많은 서버를 관리하고 조직할 수 있다.

첫번째로, 리눅스 환경 중의 하나인 CentOS를 설치, 그 위에 Chef을 구동시키는 과정 설명이다.

기본지식이 워낙 없어서 그런지 개삽질에 삽질을 연거푸 하면서 조금씩 실력을 늘여가고 있다. 
뭐 진짜 쉬운게 하나도 없다만; 순서하나, 폴더하나, 글자하나만 틀려도 에러를 툭툭 뱉어내는 컴퓨터 ㅅㅂ 던지고 싶었네..ㅋㅋ 

잡설을 줄이고 암튼, Chef의 구동하기 위한 환경을 이제 설정해보자. 


1. chef을 구동하면서 opscode란 회사를 이용하였다.  뭐 회사에서 정해줘서 그런 것도 있겠지만, 이 회사가 경험이 참 많다. Chef를 기반으로 해서 갖가지 오픈소스로 자동화된 infrastructure를 여러 번 설계하였다.  - 암튼 그래서 cookbook의 개발 및 배포에 사용할 vm을 준비하고 이 vm을 opscode에 등록한다.
- http://www.opscode.com/users/new
 가입 후,  우측 상단의 자신의 ID를 클릭, key를 받아 둔다.

ID 선택

자신의 키를 받는다.

2. 자신의 private key값을 받았다면 이제 Organization 키값을 받아야 한다. http://manage.opscode.com 으로 이동, 우측 상단의 Organization을 클릭, 적당한 이름으로 하나를 생성한다. 이후, 조직명 옆에 있는 조직의 키와 knife configuration 파일도 클릭하여 저장한다. 


validation key & knife config

3. 총 저장한 파일은 3개, id.pem // organizationname-validation.pem // knife.rb 이다. 

4. CentOS로 돌아와 chef가 구동될 수 있도록 설정을 해준다. 
  • # sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
  • # sudo rpm -Uvh http://download.elff.bravenet.com/5/i386/elff-release-5-3.noarch.rpm
위는 chef을 운영할 수 있게끔 Ruby을 설치해주는 것이다. 

5. git을 설치. 
  • #yum install git chef -y

6. chef을 실행하기 위한 기본패키지를 설치하였고, 이제는 기본 chef-repo를 opscode의 github로부터 가져온다. 
  • git clone git://github.com/opscode/chef-repo.git ~/chef-repo
7. 일전에 저장해둔 3개 파일을 다음의 위치에 저장한다. 
  • mkdir -p ~/chef-repo/.chef
  • cp -r ID.pem VALIDATION.pem knife.rb ~/chef-repo/.chef
8. 다음의 command을 실행시켜 지금까지의 step이 정확한지 확인한다. 
  • knife node list
  • [
  • ]
이렇게 나온다면, 사용자 인증에는 문제가 없는것. 

9. 이제 내 vm을 노드의 하나로서 등록을 위해 다음을 실행한다. 
  • cd ~/chef-repo
  • knife configure client ./client-config
  • sudo mkdir -p /etc/chef
  • sudo cp -r ./client-config/* /etc/chef
위 커맨드는 client등록을 위해 validation.pem 과 client.rb를 생성, chef-client의 기본 참조 위치인 /etc/chef 위치로 복사하여 주는 것이다. 

10. 이제 준비는 다 된 것이고, 다음의 커맨드를 쳐서 정상 노드 등록이 되는지 확인한다. 
  • sudo chef-client
정상적으로 실행이 된다면, report handlers complete라는 메시지를 확인 할 수 있다. 

11. 모든 설정이 완료되었다면 다음의 커맨드를 실행, 자신의 vm내용이 나타나는지 확인한다.
  • knife node list 
  • knife client list 
커맨드의 실행값에 자신의 이름이 속해 있다면 정상작동 된 것이다. 


이상으로 CentOS에서의 Chef 구동을 위한 환경조성을 해보았다. 이게 사실은 존나. 간단한 듯 하면서도, 뭐 하나만 틀리면 다 에러를 줄줄 뱉는다. 어쨌든 중요한 건, 키값을 제대로 지정했는가, 전에 키값이 남아있는 건 아닌가, 정확한 위치에 가 있는가, 시간대가 다르지 않은가 등의 사항들이 있을 수 있는데, 하다보면 다 한다; 

댓글 없음:

댓글 쓰기