Top

Puppet 3 자동화 솔루션 [클라우드 효율성 극대화를 위한 시스템 구성과 관리]

  • 원서명Puppet 3 Cookbook (ISBN 9781782169765)
  • 지은이존 아룬델(John Arundel)
  • 옮긴이남궁영환, 장성호
  • ISBN : 9788960778047
  • 30,000원
  • 2015년 12월 18일 펴냄
  • 페이퍼백 | 344쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

책 소개

요약

최근 클라우드 컴퓨팅 환경에서의 시스템 구축이 보편화됨에 따라 서비스 배포 및 관리에 대한 중요성이 높아지고 있다. 퍼펫(Puppet)은 가상 혹은 물리 서버 환경에서 복잡한 시스템 설정을 자동화함으로써 효율적인 시스템 관리를 실현한다. 이 책은 초보자라도 퍼펫을 통한 서비스 배포 및 설정이 가능하도록 퍼펫의 핵심 기능에 대해 상세히 다루며, 실무에 바로 적용할 수 있는 풍부한 예제 코드도 제공한다.

이 책에서 다루는 내용

■ 퍼펫 설치 및 설정, 일반적인 문제 해결
■ 시선을 끄는 관리용 보고서 및 정보 생성
■ Hiera를 이용한 구성 데이터 제어 및 GnuPG를 이용한 비밀 암호화
■ puppet-lint와 rspec-puppet를 이용한 커뮤니티 표준에 맞는 신뢰성 있고 깔끔하며 유지보수 가능한 코드 생성
■ 초고속 설치를 위한 구성 파일 및 템플릿 배포
■ EC2와 같은 클라우드 플랫폼 기반의 테스트 및 준비 환경, 생산 시스템 구축을 위한 가상머신 사용
■ 프로비저닝, 배포 및 변경 관리를 포함한 시스템의 모든 측면 자동화
■ 대규모 네트워크 관리 및 신뢰성 있고 성능 좋은 확장 가능한 퍼펫 생성

이 책의 대상 독자

이 책은 독자들이 커맨드라인, 파일 시스템, 텍스트 편집 등을 자유 자재로 다룰 줄 알고, 리눅스 시스템 관리 경험이 있다고 가정한다. 프로그래밍, 개발 관련 경험은 없어도 괜찮다.

이 책의 구성

1장, ‘퍼펫 인프라스트럭처’에서는 맨 처음 어떻게 퍼펫 실행 환경을 서버에 구축하는지 알아본다. 이를 위한 퍼펫 설치 명령어, 매니페스트 생성, 퍼펫을 이용한 버전 관리 깃(Git) 기반의 분산형 퍼펫 아키텍처 구축, 퍼펫 매니페스트 적용 스크립트 작성, 퍼펫 자동 실행, 레이크(Rake)를 이용한 시스템 부트스트래핑과 변경 사항 배포, 깃 후크를 이용한 매니페스트의 자동 문법 검사 등을 학습한다.

2장, ‘퍼펫 언어와 스타일’에서는 퍼펫 코드를 잘 작성하기 위한 사항들을 살펴본다. 이와 관련된 주제로는 커뮤니티 퍼펫 스타일 활용, puppet-lint를 이용한 매니페스트 체크, 모듈을 이용한 매니페스트 구조화, 표준 명명 규칙 활용, 인라인 템플릿 사용 방법, 반복문 사용, 조건문, 정규표현식, 셀렉터와 케이스 문, 문자열 연산자 등이 있다.

3장, ‘세련된 매니페스트 작성’에서는 코드의 품질과 재사용성을 높이는 데 필요한 퍼펫의 여러 가지 기능을 학습한다. 이와 관련된 내용으로는 배열, 정의(definition), 의존성(dependency)가 있는 리소스 작업 순서 설정, 노드와 클래스 상속, 클래스에 파라미터 값 넘겨주기, 파라미터 오버라이딩, 시스템 환경 정보 수집, 재사용 가능한 매니페스트 작성, 태그 사용 및 스테이지 실행 등이 있다.

4장, ‘파일과 패키지를 이용한 작업’에서는 일반적인 시스템 관리 작업에 대한 사항을 다룬다. 환경설정 파일 관리, Augeas 활용 방법, 스니핏과 템플릿을 이용한 파일 생성, 외부 패키지 저장소 관리, GnuPG를 이용한 비밀 데이터 암호화, 소스에서 패키지 구축 등을 소개한다.

5장, ‘유저와 가상 리소스’에서는 가상 리소스의 의미와 어떻게 이 가상 리소스들이 다양한 시스템상에서 서로 다른 유저와 패키지의 조합을 관리하는 데 도움이 되는지 설명한다. 또 퍼펫의 리소스 스케쥴링 사용 방법과 감시 기능도 배워본다.

6장, ‘애플리케이션’에서는 퍼펫을 이용해 관리할 필요가 있는 특정 애플리케이션에 대해 알아본다. 이와 관련해 아파치, 엔진엑스(Nginx), MySQL, 루비를 위한 예제 코드도 상세히 살펴본다.

7장, ‘서버와 클라우드 인프라스트럭처’에서는 베이그란트(Vagrant)와 EC2 인스턴스를 위한 예제를 활용해 로컬 데스크탑과 클라우드 환경 모두에 대해 가상 머신 관리 측면에서 퍼펫의 기능을 확장시킨다. 또 HAProxy를 이용한 로드 밸런싱 방법, iptables를 이용한 방화벽, NFS를 이용한 네트워크 파일 시스템, 하트비트(Heartbeat)를 이용한 고가용성 적용 방법 등을 알아본다.

8장, ‘외부 도구와 퍼펫 에코시스템’에서는 퍼펫과 관련해 발전해온 Hiera, Facter, rspec-puppet과 같은 툴에 대해 살펴본다. 아울러 여러분이 사용 중인 리소스 타입, 제공자, 외부 노드 분류기 등을 작성하는 방법을 포함한 고급 수준의 주제도 소개한다.

9장, ‘모니터링, 보고 및 문제 해결’에서는 퍼펫이 현재 수행 중인 정보와 시스템 상태를 리포팅할 수 있는 방법을 다룬다. 이와 관련한 내용으로는 리포트, 로그, 디버그 메시지, 의존성을 그래프로 보여주기, 매니페스트를 테스팅하고 드라이런(dry-run) 모드로 실행시키기 등이 있다. 아울러 퍼펫 오류 메시지에 대한 자세한 설명도 살펴본다.

저자/역자 소개

지은이의 말

IT 운영 분야는 가히 혁명이라 할 정도로 엄청난 변화 속에 있다. 과거와는 전혀 다른 환경설정 관리 툴이 몇 초도 안 걸려 서버를 구축하고 자동으로 네트워크 전체를 셋팅한다. 클라우드 컴퓨팅의 효용성을 극대화하고 신뢰성, 확장성, 보안, 고성능 시스템의 구축에 퍼펫과 같은 툴은 반드시 필요하다.
이 책은 여러분에게 다양한 현실 세계의 문제와 응용 사례를 어떻게 다루는지 자세히 보여준다. 이를 통해 여러분은 퍼펫의 기본 기능을 넘어 최대 효과를 얻을 수 있을 것이다. 모든 단계에서 입력해야 할 명령어 설명과 모든 예제에 대한 동작 가능한 샘플 코드를 담고 있다.
퍼펫에 대해 잘 모르는 독자뿐만 아니라, 퍼펫의 최신 고급 기능, 커뮤니티의 가장 좋은 사례, 최고 수준의 매니페스트(manifest) 코드, 시스템 확장과 성능, 시스템 자원을 늘렸을 때 퍼펫을 어떻게 확대 적용시킬지까지 완벽하게 이해한 전문가에게도 좋다.
이 책은 대규모로 설치한 퍼펫을 사용 중인 개발 시스템과 기술을 기반으로 한 실제 예제들을 다루고 있다. 이를 통해 퍼펫을 활용한 작업을 하기 위해 다른 방식과 이에 따른 장단점도 배울 것이다.
처음부터 끝까지 읽을 필요 없이 어느 페이지를 보더라도 쉽게 접근해서 예제를 테스트해볼 수 있도록 구성했다. 모든 주제에 대해 더 자세한 사항을 찾아볼 수 있도록 링크(link)와 참고 문헌도 표시했다. 간단한 워크플로 팁부터 고급, 고성능 퍼펫 아키텍처에 이르기까지 다양한 수준의 독자를 위한 내용을 제시했다.
나는 디브옵스(devops) 컨설턴트로 일하면서 꼭 필요할 만한 책을 쓰기 위해 많은 노력을 기울였다. 이 책을 통해 박진감 넘치고 빠르게 변화하는 환경 속에서 많은 것을 배우고, 다양한 시도도 해보고, 새로운 아이디어도 얻을 수 있기를 바란다.

지은이 소개

존 아룬델(John Arundel)

디브옵스(devops) 관련 전문 컨설턴트다. 즉 매우 어려운 문제들을 해결하는 일을 하고 있음을 의미한다(소위 쉬운 문제에 대해서는 전화 문의도 받지 않는다). 20년간 기술 관련 회사에서 일해왔는데, 이 기간 동안 컴퓨터를 이용한 프로젝트에서 겪을 수 있는 거의 모든 잘못된 사례를 경험했다. 무엇을 하면 안 되는지를 충분히, 깊이 있게 이해했다는 점이 컨설턴트로서 가장 큰 자산이라고 여긴다. 아울러 이를 위해 지금도 꾸준히 노력하고 있다.
책 쓰는 걸 좋아하는데, 특히 퍼펫 관련 집필 작업을 무척 좋아한다(『The Puppet 3 Beginner’s Guide』(Packt Publishing, 2013)가 출판되어 있다(한국어판: 『시스템 관리자를 위한 Puppet 3』(에이콘, 2014)). 이 책을 흥미롭게 읽은 독자들도 있을 것이다. 또한 혼자 퍼펫을 열심히 쓰는 데 그치지 않고, 여러 사람들이 퍼펫을 잘 사용할 수 있도록 여러 방면으로 애쓰고 있다. 일이 없을 땐, 산이든 어디든 랜드로버(Land Rover) 차를 타고 돌아다니곤 한다. 콘월(Cornwall)의 작은 통나무 집에 살고 있으며, 키케로(Cicero)처럼 정원과 도서관만 있으면 세상 부러울 게 없다고 믿는 사람이다. 트위터로 팔로우하고 싶은 독자는 @bitfield로 하면 된다.

옮긴이의 말

최근 수년간 클라우드 컴퓨팅 기술의 발전 속도는 가히 경이로울 정도입니다. 클라우드 서비스가 점점 복잡하고 다양해질수록, 이를 뒷받침하는 인프라의 규모 역시 폭발적으로 증가하게 될 것이고, 그에 맞는 시스템 유지, 보수, 배포, 관리 기법 및 솔루션 또한 당연히 필요할 것입니다. 쉬운 예로, 수십, 수천 대의 다양한 종류의 서버들로 구성된 기업 단위 시스템을 클라우드 환경으로 마이그레이션(Migration)시키는 작업을 생각해볼 수 있습니다. 또, 고품질 솔루션의 신속한 개발과 배포를 위해 디브옵스(DevOps)에 기반해 프로젝트를 수행하는 상황도 있을 것입니다. 어떻게 하면 이러한 작업들을 좀 더 효과적으로 할 수 있을까요?
이에 대한 답으로 퍼펫, 셰프(Chef), 앤시블(Ansible)과 같은 자동화 솔루션을 생각해볼 수 있습니다. 이들 중 퍼펫과 셰프는 클라우드 환경의 확산과 함께 국내외 수많은 기업과 조직에서 폭넓게 사용되고 있는데, 특히 퍼펫은 시스템 관리자 관점에서 서버 관리, 배포 및 운영을 위한 편리한 기능을 풍부하게 포함하고 있고, 지속적으로 최신 기술을 빠르게 적용시키고 있어 매우 매력적인 제품입니다. 하지만, 한국어로 된 참고자료가 많지 않아 상대적으로 사용 경험을 얻기 어려웠던 것이 사실입니다.
이 책은 퍼펫을 처음 접하시는 분들을 대상으로 하고 있으며, 핵심 사항들을 가급적 쉽게 이해할 수 있도록 친절하고 자세하게 설명하고 있습니다. 특히, 풍부한 예제 코드를 통해 각 기능들이 어떻게 동작하는지 확인해볼 수 있어 실무 적용에도 많은 참고가 될 것입니다. 아울러, 이 책을 통해 퍼펫을 잘 익히셨다면, 빠른 속도로 발전하는 퍼펫의 최신 버전도 무리없이 활용하실 수 있을 것이라 생각합니다.
모쪼록 이 책을 통해 대규모 인프라 자원 관리, 주기적인 시스템 관련 수명 업무의 효율화 등에서 많은 혜택을 얻으시길 기대합니다.

옮긴이 소개

남궁영환

고려대학교 컴퓨터학과(학사/석사), Univ. of Southern California(석사), Univ. of Florida(컴퓨터공학 박사)를 졸업하고, 삼성SDS에서 클라우드 컴퓨팅, 빅데이터 플랫폼, 데이터 분석 등에 관련된 다양한 기술 연구/개발 프로젝트들을 수행했다. 현재 아마존 웹 서비스(AWS, Amazon Web Services)에서 Professional Services Consultant로 활동 중이다.

장성호

인하대학교에서 분산 컴퓨팅을 주제로 컴퓨터공학 박사 학위를 취득했으며, 2011년부터 삼성SDS 연구소에서 엔지니어이자 프로젝트 관리자로 근무하고 있다. 클라우드 컴퓨팅 및 가상화 관련 다양한 연구/개발 프로젝트를 수행해왔으며 현재는 제조 산업 관련 선행 기술 개발을 하고 있다.

목차

목차
  • 1장 퍼펫 인프라스트럭처
    • 소개
    • 퍼펫 설치
    • 매니페스트 생성
    • 깃을 이용한 매니페스트 관리
    • 분산형 퍼펫 아키텍처 생성
    • papply 스크립트 작성
    • 크론에서 퍼펫 실행
    • 레이크를 이용해 변경사항 배포
    • 레이크를 이용한 퍼펫 부스트랩핑
    • 깃 후크를 이용한 자동 구문 검사

  • 2장 퍼펫 언어와 스타일
    • 소개
    • 퍼펫 커뮤니티의 퍼펫 스타일 사용
    • puppet-lint를 이용한 매니페스트 체크
    • 모듈 활용
    • 인라인 템플릿 활용
    • 여러 항목에 대한 반복 작업
    • 효과적인 조건문 작성
    • if 문에서 정규표현식 사용
    • 셀렉터와 케이스 문 사용
    • in 연산자의 활용법
    • 정규 표현 치환식 활용법

  • 3장 세련된 매니페스트 작성
    • 소개
    • 리소스 배열 이용
    • 데피니션 사용
    • 디펜던시 사용
    • 태그 이용
    • 런 스테이지 이용
    • 노드 상속 이용
    • 클래스에 파라미터 넘겨주기
    • 클래스 상속과 오버라이딩 이용
    • 재사용 가능한, 플랫폼 호환성을 지닌 매니페스트 작성
    • 시스템 환경에 대한 정보 수집
    • 동적 정보 임포팅
    • 셸 명령어에 대한 인자값 전달

  • 4장 파일과 패키지를 이용한 작업
    • 소개
    • 환경설정 파일을 간단하게 편집하는 방법
    • Augeas를 이용한 환경설정 파일 자동 편집
    • 스니핏을 이용한 환경설정 파일 구축
    • ERB 템플릿 활용 방법
    • 템플릿에서 배열 반복 작업 활용
    • GnuPG를 이용한 보안 정보 암호화
    • 외부 저장소를 통한 패키지 설치
    • 소스에서 패키지 자동 구축 방법
    • 패키지 버전 비교

  • 5장 유저와 가상 리소스
    • 소개
    • 가상 리소스 활용
    • 가상 리소스를 이용한 유저 관리
    • 유저 SSH 액세스 관리
    • 유저 맞춤형 파일 관리
    • 유저 맞춤형 파일 관리
    • 리소스가 적용될 시점을 제한하도록 스케쥴 활용
    • 호스트 리소스 활용
    • 여러 개의 파일 리소스를 활용하는 방법
    • 디렉토리 트리 분산 배포
    • 오래된 파일 정리 방법
    • 리소스 검사
    • 일시적으로 리소스 비활성화

  • 6장 애플리케이션
    • 소개
    • 아파치 서버 관리
    • 아파치 가상 호스트 생성
    • 엔진엑스 가상 호스트 생성
    • MySQL 관리
    • 루비 관리

  • 7장 서버와 클라우드 인프라스트럭처
    • 소개
    • 하트비트를 이용한 고가용성 서비스 구축
    • NFS 서버 및 파일 공유
    • 멀티 웹 서버 간 부하 분산을 위한 HAProxy 사용법
    • iptables을 이용한 방화벽 관리
    • EC2 인스턴스 관리
    • Vagrant를 이용한 가상머신 관리

  • 8장 외부 도구와 퍼펫 에코시스템
    • 소개
    • 사용자 정의 팩트 생성
    • 외부 팩트 추가
    • 환경 변수로서의 팩트 설정
    • Hiera를 이용한 설정 데이터 가져오기
    • Hiera-gpg를 이용한 비밀 데이터 저장
    • 퍼펫 자원을 이용한 매니페스트 생성
    • 기타 도구를 이용한 매니페스트 생성
    • rspec-puppet을 이용한 매니페스트 테스트
    • 공개 모듈 사용
    • 외부 노드 분류자 사용
    • 자신만의 자원 유형 생성
    • 자신만의 공급자 생성
    • 자신만의 함수 생성

  • 9장 모니터링, 보고 및 문제 해결
    • 소개
    • 예행 연습
    • 명령 출력 로깅하
    • 디버그 메시지 로깅
    • 보고서 생성
    • 자동 HTML 문서 생성
    • 종속관계 그래프 그리기
    • 퍼펫 에러
    • 구성 설정 검사

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안