서브메뉴

본문

시스템 관리자를 위한 Puppet 3 (클라우드 환경을 위한 최적의 관리 도구)
시스템 관리자를 위한 Puppet 3 (클라우드 환경을 위한 최적의 관리 도구)
저자 : 존 아룬델
출판사 : 에이콘출판
출판년 : 2014
ISBN : 9788960776265

책소개

『시스템 관리자를 위한 Puppet 3』는 시스템 관리자는 자신이 맡고 있는 시스템과 업무 자체의 신뢰성을 높이기 위해 여러 가지 도구를 이용한다. 퍼펫(Puppet)은 이미 검증된 가장 대중화된 도구이며, 이 책은 단계별로 간단한 예제와 충분한 설명을 제공하여 당장 업무에 활용할 수 있도록 도와주고. 퍼펫에 생소한 초보자라도 어떤 용도로 퍼펫을 사용하고, 자신의 업무에 도움이 될 수 있는지 느끼도록 구성되어 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

★ 요약 ★
시스템 관리자는 자신이 맡고 있는 시스템과 업무 자체의 신뢰성을 높이기 위해 여러 가지 도구를 이용한다. 퍼펫(Puppet)은 이미 검증된 가장 대중화된 도구이며, 이 책은 단계별로 간단한 예제와 충분한 설명을 제공하여 당장 업무에 활용할 수 있도록 도와주고. 퍼펫에 생소한 초보자라도 어떤 용도로 퍼펫을 사용하고, 자신의 업무에 도움이 될 수 있는지 느끼도록 구성되어 있다.

★ 이 책에서 다루는 내용 ★
■ 퍼펫 설치와 구성 방법
■ 여러 서버를 퍼펫으로 관리하는 방법
■ 번개처럼 빠른 설치를 위한 설정 파일과 템플릿 배포 방법
■ 보고서 생성과 모니터링 방법
■ 사용자 계정, 보안, 접근 제어와 작업 예약 관리 방법
■ 깃(Git)을 이용한 퍼펫 코드 관리 실무

★ 이 책의 대상 독자 ★
이 책은 시스템 관리자나 개발자, 그리고 커맨드 라인에서 직접 파일을 수정하는 기본 작업이 포함된 시스템 관리 업무가 필요한 사람을 대상으로 하며, 퍼펫을 이용하여 더 많은 작업을 하면서도 삶은 좀 더 쉽게 만드는 것을 목표로 한다.

★ 이 책의 구성 ★
1장. ‘퍼펫 소개’에서는 설정 관리의 문제점과 왜 전통적인 수작업 방식이 확장성이 없는지를 설명한다. 이런 문제를 퍼펫이 어떻게 효과적으로 처리하는지 보여주고, 퍼펫의 기본 구조에 대해 소개한다.

2장. ‘퍼펫 시작’에서는 처음 퍼펫을 설치하고, 간단한 매니페스트를 생성하여 장치에 적용하는 과정을 안내한다. 퍼펫 언어를 이용하여 텍스트 파일 같은 자원을 어떻게 묘사하고 수정하는지 볼 수 있다.

3장. ‘패키지와 파일, 서비스’에서는 중요한 자원 타입에 대한 사용 방법을 설명하고, 어떻게 그들이 함께 동작하는지 보여준다. 엔진엑스 웹 서버를 기반으로 완벽하고 유용한 예제를 살펴본다.

4장. ‘깃을 이용한 퍼펫 관리’에서는 퍼펫을 이용하여 장치들을 연결하고, 깃(Git) 버전 관리 시스템을 이용하여 매니페스트를 배포하고 협력하는 간단하고 강력한 방법을 설명한다.

5장. ‘사용자 관리’에서는 사용자 관리에 대한 몇 가지 좋은 사례를 설명하고, 이를 구현하기 위해 퍼펫을 사용하는 방법을 보여준다. 또한, SSH를 이용하여 액세스를 제어하고, sudo를 이용하여 사용자 권한을 관리하는 방법을 설명한다.

6장. ‘작업과 템플릿’에서는 자동화에 대한 주요 요소를 다룬다. 작업 스케줄을 설정하고 퍼펫의 템플릿 메커니즘을 이용하여 동적 데이터로부터 설정 파일을 생성하는 방법을 설명한다.

7장. ‘정의와 클래스’에서는 이전 장들을 기반으로, 재사용 가능한 모듈과 객체를 만들기 위해 퍼펫 코드를 어떻게 구성하는지 보여준다. 정의와 클래스를 생성하는 방법과 파라미터들을 전달하는 방법에 대해서도 설명한다.

8장. ‘표현식과 로직’에서는 퍼펫 언어에 대해서 탐구하고, 조건문과 논리 표현식을 이용하여 어떻게 플로우 제어를 하는지, 그리고 산술 및 문자열 표현식을 어떻게 만드는지 보여준다. 또한 연산자와 배열, 해시를 다룬다.

9장. ‘리포팅 및 문제 해결’에서는 퍼펫을 이용한 작업의 실질적인 부분에 대해 살펴본다. 일반적인 문제들에 대해 어떻게 진단하고, 해결하며, 퍼펫 동작을 디버깅하는 방법과 에러 메시지를 해석하는 방법을 설명한다.

10장. ‘퍼펫 나아가기’에서는 퍼펫 코드를 더 우아하고, 읽기 쉽고, 유지보수를 용이하게 만드는 방법을 보여준다. 더 상세한 내용을 얻기 위한 링크와 제안들을 제공하고, 퍼펫을 이용하여 비즈니스 가치를 전달하는 데 도움이 되는 실질적인 일련의 프로젝트들을 소개한다.

★ 저자 서문 ★
컴퓨터 시스템 관련 일을 하고 있다면, 소프트웨어 설치와 구성, 백업이나 사용자 관리 등의 관리 업무, 그리고 보안 패치나 소프트웨어를 최신 버전으로 관리하는 일에 얼마나 많은 시간이 소요되는지 알 것이다. 아마도 이미 이런 일을 좀 더 자동화하고 신뢰성 있게 만들기 위해 셸 스크립트나 다른 방법을 시도해 본 사람도 있을 것이다.

아마 퍼펫이 이런 일들을 어떻게 도와줄 수 있는지에 대해 읽어보았지만, 어떻게 시작해야 할지 확신이 서지 않을 것이다. 온라인의 문서는 참고용으로는 훌륭하지만, 처음부터 모든 것을 설명해주지는 않는다. 많은 책과 교본들은 퍼펫 서버와 인프라를 구성하는 데 많은 부분을 할애하기 때문에 실제 퍼펫을 이용하여 뭔가를 하게 되는 시점까지는 시간이 너무 많이 걸린다.

인프라구조 컨설턴트로 일하면서 나는 완전 초보자들을 위한 퍼펫 강좌를 할 수 있게 되었고, 가장 효과적이고 재미있게 접근하는 방법은, 바로 실전 작업부터 시작하는 것임을 알게 되었다. 처음 5분 동안 나는 사람들에게 퍼펫을 이용하여 그들의 시스템을 바꾸게 했다. 불이 나서 5분만에 수업이 끝나더라도, 그들은 각자의 작업에 도움될 만한 어떤 것을 알고 떠나게 될 것이다.

이 책도 동일한 방식을 적용했다. 상세한 배경 설명이나 이론 없이 어떻게 퍼펫을 이용하는지를, 패키지를 설치하고, 파일을 설정하고, 사용자를 생성하고, 예약 작업을 만드는 등의 예시를 통해 바로 보여 줄 것이다. 모든 예제는 업무에 사용될 가능성이 있는, 현실적이고 실제적인 내용들이며, 완벽하게 동작하는 퍼펫 코드를 입력해야 하는 내용에 대한 단계별 지침과 그 실행 결과를 함께 보게 될 것이다.

각 실행 예제 뒤에는 목적에 맞게 수정해서 쓸 수 있도록, 그리고 동작에 대해 충분히 이해했다고 자신할 수 있도록, 각 코드 라인이 무엇을 하고 어떻게 동작하는지에 대해 상세하게 설명하였다. 책의 마지막 부분에 이르면 여러분은 퍼펫을 이용하여 실제적인 일상 업무를 하기 위한 모든 기술을 갖추게 될 것이다.

★ 옮긴이의 말 ★
불과 몇 년 사이에 IT 분야에서 클라우드(Cloud)는 일반적인 용어가 되었습니다. 기존의 물리적인 하드웨어에서 이루어지던 작업들이 이제는 클라우드라는 가상 공간에서 이루어집니다. 우리가 느끼지 못할지라도 이미 많은 서비스가 클라우드 환경에서 구동되고 있고, 최근에는 네트워크 장치마저도 가상화하여 클라우드 환경에서 제공하는 NFV(Network Function Virtualization)가 활발히 연구되고 있습니다.

하지만, 시스템 관리자 입장에서 클라우드의 도입은 반가운 일이 아닐 수 있습니다. 단일 서버에서 단일 운영체제를 기반으로 운영되던 형태에서 여러 개의 서로 다른 운영체제를 가진 가상 머신들 간의 연동까지 관리해야 되기 때문입니다. 이것은 시스템 관리자의 업무를 가중시키고 관련 기술을 계속 습득해야 하는 부담을 안겨줍니다. 이제는 시스템과 DB, 네트워크를 제어하는 수준을 넘어서, 클라우드에 구성된 소프트웨어 솔루션 동작과 설정까지도 시스템 관리자의 책임이 되고 있고, 데브옵스(Devops) 개념이 생기면서 시스템 운용자(Operator)가 개발자의 역할(Developer)까지 담당해야 하는 상황입니다.

시스템 관리자가 슈퍼맨도 아닌데 대규모의 복잡한 시스템을 혼자서 모두 운용하고 개발까지 하는 것은 얼핏 불가능한 일로 생각됩니다. 하지만, 퍼펫과 같은 형상 관리 도구들은 시스템 관리에 필요한 많은 부분을 자동화해주어 이를 가능하게 합니다. 원하는 시스템 형상을 간단한 명세서로 작성하면 그에 맞추어 복잡한 시스템을 구성해주기 때문에 빈번한 자원 할당과 회수, 프로비저닝(Provisioning), 설정(Configuration)이 발생하는 시스템의 경우, 이러한 형상 관리 도구가 ‘있고 없고’는 업무 효율성에 있어서 엄청난 차이를 만듭니다. 이미 대규모 클라우드 환경 구축에 있어 이러한 형상관리 도구의 활용은 필수 요소가 되었고, 오픈소스 클라우드의 대표 플랫폼인 오픈스택(OpenStack) 커뮤니티에서도 퍼펫을 주축으로 다양한 형상 관리 도구가 이용되고 있습니다.

퍼펫 이외에도 형상 관리 기능을 제공하는 도구들은 여럿 존재하고, 꼭 퍼펫만을 고집할 필요는 없습니다. 퍼펫이 제공하는 명세서 작성 방법과 그 기능이 너무 복잡하게 느껴진다면, 차라리 간단한 셸 스크립트로 원하는 기능을 만들어서 사용하는 편이 더 나을 수도 있습니다. 하지만, 이 책을 통해 관리 시스템이 커지고 복잡할수록 검증된 도구를 사용하는 장점을 느껴보시기 바랍니다.

마지막으로 이 책은 퍼펫의 최신 버전인 버전 3를 다루고 있고, 단계별로 상세한 예제를 통해 퍼펫의 기능과 그 지향점을 느낄 수 있도록 구성되었습니다. 먼저 가벼운 마음으로 전체 내용을 한번 속독하시기를 권장합니다. 작은 부분이라도 독자 여러분께 도움이 되기를 기원합니다.
[교보문고에서 제공한 정보입니다.]

목차정보

1장 퍼펫 소개
문제점
__형상 관리
__시스템 관리자의 하루 일과
__설정을 동기화해 유지
__여러 서버를 반복해서 수정
__문서 자동 업데이트
__기종 플랫폼에 대한 대처
__버전 관리와 히스토리
문제 해결
__사용할 도구 제작
__노력의 낭비
__이전 가능한 기술
__형상 관리 도구
코드로서의 인프라
__데브옵의 시작
__직업 만족도
__퍼펫의 장점
__퍼펫의 의미
__퍼펫 언어
__자원과 속성
정리
__형상 관리
__퍼펫이 하는 일
__퍼펫의 장점
__확장성
__퍼펫의 언어


2장 퍼펫 시작
준비 사항
__실습 예제 | 퍼펫을 위한 사전 준비
__실습 예제 | 퍼펫 설치
처음 작성하는 매니페스트
__작동 원리
__매니페스트 적용
__파일 수정
__연습
매니페스트 구조화
__실습 예제 | 디렉토리 구조 생성
__Nodes.pp 파일 생성
__실습 예제 | 노드 선언
정리
__퍼펫 설치
__매니페스트
__노드


3장 패키지와 파일, 서비스
__패키지
__실습 예제 | 엔진엑스 설치
__패키지에 대한 추가 내용
모듈
__실습 예제 | 엔진엑스 모듈 생성
__실습 예제 | puppet apply 명령어 생성
서비스
__실습 예제 | 엔진엑스 서비스 등록
__자원 요청
__서비스에 대한 추가 사항
파일
__실습 예제 | 가상호스트 생성
__다른 자원 호출
__패키지-파일-서비스 패턴
__연습
정리
__패키지
__모듈
__서비스
__자원 의존성
__파일


4장 Git을 이용한 퍼펫 관리
버전 관리
__실습 예제 | 깃에 매니페스트 등록
__실습 예제 | 변경 사항을 커밋하고 검사
__적절한 커밋 횟수
__브랜치 생성
퍼펫 매니페스트 배포
__신뢰성
__확장성
__단순함
__실습 예제 | 깃 저장소 생성
__실습 예제 | 새로운 장치에 저장소 복제
__실습 예제 | 새로운 노드 추가
__실습 예제 | 마스터 저장소로 변경 사항 푸시
__연습
__자동으로 변경 사항 가져오기
__실습 예제 | 자동으로 가져와서 적용하는 스크립트
깃에 대한 추가 내용
정리
__버전 관리를 하는 이유
__깃 시작
__퍼펫 네트워킹


5장 사용자 관리
사용자
__보안과 접속 제어
__퍼펫으로 할 수 있는 일
__실습 예제 | 사용자 생성
__사용자 계정 삭제
접속 제어
__SSH
__SSH 키 관리
__실습 예제 | SSH 인증키 등록
__새로운 SSH 키 생성
__특별한 목적의 키
__사용자 계정 잠금
__SSH 설정 관리
__실습 예제 | SSH 설정 파일 배포
사용자 권한
__sudo
__실습 예제 | sudoers 파일 배포
정리
__보안 방법
__User 자원
__SSH 설정
__sudo을 이용한 권한 관리


6장 사용자 관리
Exec 자원을 이용해 명령어 실행
__실습 예제 | 임의의 명령어 실행
__명령어를 선택적으로 실행
__명령어 트리거링
__명령어 연결
__명령어 검색 경로
작업 예약
__실습 예제 | 백업 예약
__다른 예약 옵션
__주기마다 실행
__특정한 사용자만 작업 수행
__연습
파일 배포
__실습 예제 | 순환(recursive) 파일 자원 이용
템플릿 사용
__실습 예제 | 템플릿으로 Nginx 가상호스트 생성
__인라인템플릿
__시스템 값
__산술 표현
__종합
정리
__Exec 자원
__작업 예약
__순환 파일 자원
__템플릿


7장 정의와 클래스
자원을 배열로 그룹화하기
정의
__Definition에 매개변수 전달
__옵션 매개변수
__실습 예제 | 엔진엑스 웹사이트를 위한 Definition 생성
__여러 개의 Definition 인스턴스
__연습
클래스
__클래스 정의
__모듈 내부에 클래스 두기
__클래스 선언
__클래스와 Definition의 차이점
__실습 예제 | NTP 클래스 생성
정리
__배열
__정의
__클래스

8장 표현식과 로직
조건문
__if 문
__else와 elsif
__Unless 문
__case 문
__셀렉터
표현식
__비교문
__Boolean 연산자
__산술 연산자
정규 표현식
__연산자
__문법
__조건문
__대체
__노드 정의
배열과 해시
__배열로 자원 그룹화
__배열에서 값 가져오기
__해시
__다단계 해시
__해시 키 테스트
정리
__조건문
__연산자
__정규표현식
__텍스트 대체
__배열
__해시

9장 리포팅 및 문제 해결
리포팅
__요약 리포트
__리포트 활성화
__리포트에는 담긴 내용
__실습 예제 | 리포트 생성
__리포트 이용
__디버그 실행
__Noop 실행
__구문 오류 검사
디버그 출력
__자원 알림
__Exec 출력
모니터링
__퍼펫을 이용한 모니터링 관리
__모니터링 대상
__퍼펫의 상태 모니터링
__퍼펫 사용의 문제점
__동기화 유지
에러
__컴파일 에러
__명령어 옵션 오타
정리
__리포팅
__디버그와 시험 모드
__메시지 출력
__퍼펫 모니터링
__일반적인 퍼펫 에러

10장 퍼펫 나아가기
퍼펫 스타일
__코드를 모듈로 분리
__공통 코드를 Definition으로 리팩토링
__노드 선언은 간단하게 한다
__퍼펫 린트 사용
__주석이 필요 없는 코드 제작
퍼펫 관련 학습 자료
__참조 문서
__모듈과 코드
프로젝트
__모든 장치에서 퍼펫 사용
__사용자 계정
__시스템 도구 상자
__시간 동기화
__서버 모니터링
__중요 서비스를 퍼펫으로 관리
__자동으로 백업
__시험 서버 구축
__모든 것을 자동화
맺음말
[교보문고에서 제공한 정보입니다.]