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 구동을 위한 환경조성을 해보았다. 이게 사실은 존나. 간단한 듯 하면서도, 뭐 하나만 틀리면 다 에러를 줄줄 뱉는다. 어쨌든 중요한 건, 키값을 제대로 지정했는가, 전에 키값이 남아있는 건 아닌가, 정확한 위치에 가 있는가, 시간대가 다르지 않은가 등의 사항들이 있을 수 있는데, 하다보면 다 한다;
댓글 없음:
댓글 쓰기