책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
본문에 쓰인 컬러 이미지는 여기에서 내려받을 수 있습니다.
요약
앤서블(Ansible)은 최근 화두에 오른 IT 자동화 도구이다. IT 자동화는 사람이 일일이 서버에 접속해서 동일한 작업을 수행해야 하는 일을 한 번에 원격에서 처리하도록 하는 것이기 때문에 서버 관리자의 일을 엄청나게 줄여주며, 이때 발생할 수 있는 실수와 에러를 줄여준다. 앤서블은 쉽게 배워서 바로 쓸 수 있는 자동화 도구이기 때문에 많이 알면 알수록 업무 효율성은 더욱 높아지게 된다. 이 책은 앤서블을 다루는데 필요한 모든 사항을 다루고 있기 때문에 단순한 애플리케이션 설치부터 효율적인 템플릿 작성 방법 그리고 트러블슈팅 방법 등에 적용할 수 있다. 이 책을 마스터하면 야근에 지친 관리자는 밤잠뿐만 아니라 낮잠도 잘 수 있다.
이 책에서 다루는 내용
■ 숨겨진 앤서블 작동 방식의 깊이 있는 이해
■ 데이터 암호화를 통한 앤서블 플레이북 실행의 완전 자동화
■ 플레이북에서 변수 데이터 접근과 조작
■ 실패 복구와 정리를 구성하기 위한 블록 사용법
■ 플레이북 디버거와 앤서블 콘솔
■ 예상치 못한 앤서블 작동을 효율적으로 트러블슈팅하는 방법
■ 앤서블로 클라우드 인프라와 컨테이너 시스템 관리하기
■ 사용자 모듈, 플러그인 그리고 동적 인벤토리 소스 개발 방법
이 책의 대상 독자
앤서블의 핵심 구성요소와 기본 작동 방법은 알고 있지만, 앤서블을 사용해 자동화 적용에 필요한 기술을 향상시키고자 하는 앤서블 개발자와 운영자를 대상으로 한다.
이 책의 구성
1장, '앤서블 디자인과 시스템 구조'에서는 앤서블이 어떻게 엔지니어를 대신해서 작업을 수행하는지 자세히 알아보고, 어떻게 디자인되었으며, 인벤토리, 변수와 어떻게 상호 동작하는지 알아본다.
2장, '앤서블을 통한 데이터 보호'에서는 패스워드와 같은 보안이 유지되는 데이터를 암호화하고 실행단계에서 복호화하는 방법을 알아본다.
3장, '진자2(Jinja2) 템플릿 고급 활용 방안'에서는 앤서블에서 사용되는 진자2 템플릿을 다양하게 사용하는 방법에 대해 알아보고, 해당 능력을 최대한 발휘하는 방법을 찾아본다.
4장, '작업 조건 제어'에서는 앤서블의 기본 작동방식을 변경해 작업 조건과 에러를 사용자 환경에 맞게 변경한다.
5장, '롤Role을 이용해 재사용 가능한 플레이북 작성 방법'에서는 앤서블 코드를 단순히 실행시키는 것을 넘어, 재사용이 가능하도록 추상화하고 캡슐화해서 목표 호스트에서 호스트당 각각 목적에 맞는 특별한 기능을 수행하는 방법을 제시한다.
6장, '순차적 배포(Rolling Deployment)를 활용한 서비스 중단 최소화 방안'에서는 관련된 앤서블 기능을 활용해 일반적으로 사용되는 애플리케이션 배포와 업그레이드 전략을 설명한다.
7장, '앤서블 장애 처리'에서는 앤서블 작업을 검사하고, 작동 방식을 파악하고, 수정하고, 디버그하는 여러 가지 도구를 알아본다.
8장, '앤서블 기능 확장'에서는 앤서블의 모듈, 플러그인, 인벤토리 소스를 추가해 새로운 기능을 추가하는 다양한 방법을 알아본다.
9장, '인프라 스트럭처 배포 관리'에서는 클라우드 인프라 스트럭처 환경과 컨테이너 시스템 환경에서 인프라 스트럭처를 생성하고 관리하는 방법을 알아본다.
목차
목차
- 1장. 앤서블 디자인과 시스템 구조
- 앤서블 버전과 환경 설정
- 인벤토리 파싱과 데이터 소스
- 정적 인벤토리
- 인벤토리 변수 데이터
- 동적 인벤토리
- 런타임 인벤토리 추가
- 인벤토리 제한
- 플레이북 파싱
- 작동 순서
- 상대 경로 가정
- 플레이 행위 지시자
- 실행 전략
- 플레이와 작업을 위한 호스트 선택
- 플레이와 작업 이름
- 모듈 전송과 실행
- 모듈 참고
- 모듈 아규먼트
- 모듈 전송과 실행
- 변수 타입과 위치
- 변수 타입
- 외부 변수값 접근 방법
- 변수 우선순위
- 우선순위 순서
- 해시 병합
- 요약
- 2장. 앤서블을 통한 데이터 보호
- 안전한 데이터 암호화
- 볼트의 암호화 대상
- 새로운 암호 파일 생성
- 기존 파일 암호화
- 암호화된 파일 수정
- 암호화된 파일에 대한 비밀번호 변경
- 암호화된 파일의 복호화
- 암호화된 파일을 이용한 앤서블 플레이북 실행
- 플레이북 실행 중의 보안 데이터 보호
- 원격 호스트로 전송되는 보안 데이터
- 원격 또는 로컬 로그 파일에 기록된 보안 데이터
- 요약
- 안전한 데이터 암호화
- 3장. 진자2 템플릿 고급 활용 방안
- 제어 구조
- 조건문
- 반복문
- 매크로
- 데이터 처리
- 문법
- 유용한 내장 필터
- 앤서블이 제공하는 유용한 커스텀 필터
- 정의되지 않은 아규먼트의 생략
- 파이썬 오브젝트 메소드
- 값 비교
- 비교
- 로직
- 테스트
- 요약
- 제어 구조
- 4장. 작업 조건 제어
- 실패 결정
- 에러 무시
- 에러 조건 선언
- 변경 선언
- 명령어 계열을 다루는 특별한 방법
- 변경 억제
- 에러 복구
- Rescue
- Always
- 요약
- 실패 결정
- 5장. 롤을 이용해 재사용 가능한 플레이북 작성 방법
- 작업, 핸들러, 변수 및 플레이북의 포함 개념
- 포함 작업
- 포함된 작업에 변수값 전달
- 핸들러를 포함하는 방법
- 변수를 포함하는 방법
- 플레이북을 포함하는 방법
- 롤
- 롤 구조
- 롤 의존성
- 롤 애플리케이션
- 롤 공유
- 요약
- 작업, 핸들러, 변수 및 플레이북의 포함 개념
- 6장. 순차적 배포를 활용한 서비스 중단 최소화 방안
- 기존 시스템에서 업그레이드
- 호스트 확장과 추가
- 빠른 실패
- anyerrorsfatal 옵션
- maxfailpercentage 옵션
- 핸들러를 강제로 작동시키는 방법
- 서비스 중단 최소화
- 서비스 중단 지연
- 서비스 중단 작업을 한 번만 실행시키는 방법
- 순차적 작업 실행 방법
- 요약
- 7장. 앤서블 장애 처리
- 플레이북 로그와 로깅 레벨
- 로깅 레벨
- 로깅
- 변수 조사
- 변수의 하위 요소
- 코드 실행 디버깅
- 플레이북 디버깅
- 로컬 코드 디버깅
- 요약
- 플레이북 로그와 로깅 레벨
- 8장. 앤서블 기능 확장
- 모듈 개발 방법
- 모듈의 기본 구성
- 사용자 수정 모듈
- 예제 모듈
- 플러그인 개발 방법
- 연결 플러그인
- 셸 플러그인
- 룩업 플러그인
- 변수 플러그인
- 팩트 캐싱 플러그인
- 필터 플러그인
- 콜백 플러그인
- 액션 플러그인
- 플러그인 배포
- 동적 인벤토리 개발 방법
- 호스트 목록
- 호스트 변수 목록
- 간단한 인벤토리 플러그인
- 앤서블 프로젝트에 기여하는 방법
- 코드 제출 방법
- 요약
- 모듈 개발 방법
- 9장. 인프라 환경 배포 관리
- 클라우드 인프라 환경 관리 방법
- 서버 생성
- 오픈스택 인벤토리 소스 사용법
- 도커 컨테이너 연동 방법
- 컨테이너 이미지 생성하기
- Dockerfile 없이 컨테이너 생성하기
- 도커 인벤토리
- 앤서블 컨테이너 미리 보기
- Init
- Build
- Run
- 요약
- 클라우드 인프라 환경 관리 방법