이미 소장하고 있다면 판매해 보세요.
|
1장 Chef란 무엇인가 개요
Infrastructure as Code ‘서버의 상태’ 관리 Chef는 어렵다 CFEngine, Puppet, Chef Chef 사용법 Chef Server와 Chef Solo 표준 Resource의 사용 방법만 안다면 OK! 2장 Chef Solo 설치 Hello Chef! Chef 설치 리포지터리(키친), 쿡북, 레시피 리포지터리 생성 knife 명령어로 쿡북 생성 레시피 편집 Chef Solo 실행 패키지 설치 Ruby의 힘을 발휘하자 멱등성이란 Resource란 3장 nginx를 Chef Solo로 설치 레시피 템플릿 파일 JSON 파일(Node Object) 쿡북 내의 디렉터리 Chef Solo 실행 Vagrant + CentOS에서의 문제점 4장 3분 만에 Chef Solo 테스트 환경 준비하기 Vagrant Vagrant의 도입 가상 서버의 가동 ssh 접속 설정 방법 1 ssh 접속 설정 방법 2 정지와 삭제 응용: OS 롤백이 가능하게 설정 - sahara 정리 5장 원격에서 chef-solo를 실행 knife-solo knife-solo의 도입 knife-solo knife-solo에서의 solo.rb 및 JSON 파일 처리 knife solo prepare로 Chef Ready! knife-solo에서 Chef Solo 환경 생성 knife solo init로 생성한 리포지터리의 디렉터리 구성 여러 호스트로의 knife solo 실행 정리 6장 레시피를 만들어 실행 순서 연습 vagrant up Chef 리포지터리 생성 knife solo prepare 쿡북 생성과 레시피 수정 Chef Solo 실행 레시피의 업그레이드 7장 서드파티 Chef 쿡북 사용 사전 설정 yum의 EPEL을 yum 쿡북으로 활성화 직접 만들 것인가 서드파티를 사용할 것인가 8장 대표적인 레시피 예제 확인 td-agent 레시피 td-agent 레시피 그룹 생성 사용자 생성 디렉터리 생성 패키지 배포 사이트 등록 Attribute와 Ohai 템플릿에서 설정 파일 생성 td-agent 패키지 설치 서비스 가동 공식 문서 참조 왜 “Resource” 9장 패키지 설치 Package Package gem_package 10장 서비스 가동 Service와 Notification Service Notification과 Service의 조합 Notification 시점 Subscribe - Notification 역방향 통지 11장 템플릿에서 설정 파일 배포 Template Template 템플릿 내에서는 Attribute를 사용할 수 있다 템플릿은 기존의 모든 것을 가지고 오는 곳에서 시작 12장 파일 및 디렉터리 조작 Cookbook File, Directory Cookbook File Directory 패키지를 파일로 설치 13장 사용자 생성 User, Group User Group 14장 git 리포지터리에서 파일 불러오기 Git Git git으로 불러온 파일 설치 15장 임의의 쉘 스크립트 실행 Execute, Script Script(bash) creates not_if, only_if EC2 마이크로 인스턴스에 스왑 영역 생성 예 16장 그 외의 Resource Cron Deploy File http_request Ifconfig Link Mount Route ruby_block 정리 17장 몇 가지 레시피 run_list, 파일 분할, include_recipe run_list의 작성 방법 레시피의 파일 분할 include_recipe 18장 Resource를 사용자가 정의 Definition Definition으로 cpanm의 Resourece를 정의 보다 범용적인 레시피를 작성할 때 - LWRP 19장 Attribute와 Data Bag Attribute Attribute를 사용하는 곳 Data Bag 20장 노드를 역할별로 그루핑하여 관리 Role Role Role에 Attribute 정의 21장 서드파티 쿡북을 Bundler처럼 관리 Berkshelf Berkshelf의 사용법 Berkshelf와 Vagrant의 연계 정리 22장 Chef Server란 개요부터 설정까지 Chef Server의 아키텍처 Chef Server 환경에서의 각종 조작 예제 Vagrant의 멀티 VM을 이용한 환경 구축 Chef Server 설치 knife 설정 Work Station 설정 Chef Client 설치 레시피 실행 knife bootstrap을 이용한 노드 설정 정리 23장 어디까지를 Chef로 할 것인가 서버 관리는 가능한 한 Chef로 한다 서버별로 리포지터리를 만들어야 하는가 아니다 복수 노드에 대한 Chef Solo 실행 Chef Solo와 Chef Server 배포 툴과의 차별성 필자가 Chef를 사용하기 시작한 이유 에필로그 찾아보기 |
|
국내에서도 클라우드 사업자 및 대규모 포털 업체에서 대규모 시스템 운용을 위해 Chef를 적용하여 사용하는 것으로 알고 있으며, 이 책에서도 소개되었지만 페이스북과 같은 상상 이상의 대규모 시스템에서도 사용하고 있다. 그리고 앞으로도 계속 이런 자동화 툴은 진화할 것이고, 자동화에 대한 요구 또한 늘어날 것으로 예상한다.
_XIII Emacs나 vim을 사용해 Ruby로 코드를 만든 후 그 파일을 Git에 올려 둔다. 이후 과정은 Chef에게 맡겨둔다. 어떤 방법이든 사람의 손으로 설정해야만 했던 서버나 인프라를 Chef를 이용하면, 애플리케이션 코드를 쓰는 것과 같이 코드를 통해 설정을 자동화할 수 있다. _3 knife solo init로 리포지터리를 만들고, 로컬 환경에서 원하는 에디터로 레시피를 편집하고, knife solo prepare로 원격지의 Chef Solo 환경을 구축하고, knife solo cook으로 실행하는 것이 일련의 작업 순서다. _41 td-agent 레시피는 여러 플랫폼에 설치할 것을 고려하여 사용자, 그룹, 디렉터리 등을 레시피 내에 작성해 놓고 있다. 그러나 이 부분은 일반적인 RPM 또는 deb 패키지가 사용자 생성 및 그 외의 작업을 실행해 준다. 따라서 단순히 nginx를 설치할 거라면 package Resource로 설치하면 된다. 여기서는 어디까지나 ‘문법 참고’용으로만 td-agent의 레시피를 소개하고 있다는 점에 주의하길 바란다. _56 Cookbook File을 사용하면 쿡북에 들어 있는 파일을 임의의 경로로 전송하고 배치할 수 있다. #11에서 소개한 Template도 같은 동작을 하지만 Template은 변수를 사용할 때, Cookbook File은 정적 파일을 조작할 때로 용도를 구분하길 바란다. _82 필자는 과거에 1,000대 이상 규모의 서버 관리 경험이 있다. 그 작업은 재미도 있었지만, 동시에 정말 귀찮고 힘든 일이었다. 처음 Chef를 접하면서 ‘당시에 Chef가 있었다면 그렇게 고생하지 않았을 텐데’라고 느꼈고, 많은 엔지니어에게 이 툴을 알리고 싶어졌다. _155 ---본문 중에서 |