Top

앤서블 마스터하기 2/e [앤서블의 고수가 되는 방법]

  • 원서명Mastering Ansible - Second Edition (ISBN 9781787125681)
  • 지은이제시 키팅(Jesse Keating)
  • 옮긴이김용기
  • ISBN : 9791161750774
  • 30,000원
  • 2017년 11월 23일 펴냄
  • 페이퍼백 | 360쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려받을 수 있습니다.
요약

앤서블(Ansible)은 최근 화두에 오른 IT 자동화 도구이다. IT 자동화는 사람이 일일이 서버에 접속해서 동일한 작업을 수행해야 하는 일을 한 번에 원격에서 처리하도록 하는 것이기 때문에 서버 관리자의 일을 엄청나게 줄여주며, 이때 발생할 수 있는 실수와 에러를 줄여준다. 앤서블은 쉽게 배워서 바로 쓸 수 있는 자동화 도구이기 때문에 많이 알면 알수록 업무 효율성은 더욱 높아지게 된다. 이 책은 앤서블을 다루는데 필요한 모든 사항을 다루고 있기 때문에 단순한 애플리케이션 설치부터 효율적인 템플릿 작성 방법 그리고 트러블슈팅 방법 등에 적용할 수 있다. 이 책을 마스터하면 야근에 지친 관리자는 밤잠뿐만 아니라 낮잠도 잘 수 있다.

이 책에서 다루는 내용

■ 숨겨진 앤서블 작동 방식의 깊이 있는 이해
■ 데이터 암호화를 통한 앤서블 플레이북 실행의 완전 자동화
■ 플레이북에서 변수 데이터 접근과 조작
■ 실패 복구와 정리를 구성하기 위한 블록 사용법
■ 플레이북 디버거와 앤서블 콘솔
■ 예상치 못한 앤서블 작동을 효율적으로 트러블슈팅하는 방법
■ 앤서블로 클라우드 인프라와 컨테이너 시스템 관리하기
■ 사용자 모듈, 플러그인 그리고 동적 인벤토리 소스 개발 방법

이 책의 대상 독자

앤서블의 핵심 구성요소와 기본 작동 방법은 알고 있지만, 앤서블을 사용해 자동화 적용에 필요한 기술을 향상시키고자 하는 앤서블 개발자와 운영자를 대상으로 한다.

이 책의 구성

1장, '앤서블 디자인과 시스템 구조'에서는 앤서블이 어떻게 엔지니어를 대신해서 작업을 수행하는지 자세히 알아보고, 어떻게 디자인되었으며, 인벤토리, 변수와 어떻게 상호 동작하는지 알아본다.
2장, '앤서블을 통한 데이터 보호'에서는 패스워드와 같은 보안이 유지되는 데이터를 암호화하고 실행단계에서 복호화하는 방법을 알아본다.
3장, '진자2(Jinja2) 템플릿 고급 활용 방안'에서는 앤서블에서 사용되는 진자2 템플릿을 다양하게 사용하는 방법에 대해 알아보고, 해당 능력을 최대한 발휘하는 방법을 찾아본다.
4장, '작업 조건 제어'에서는 앤서블의 기본 작동방식을 변경해 작업 조건과 에러를 사용자 환경에 맞게 변경한다.
5장, '롤Role을 이용해 재사용 가능한 플레이북 작성 방법'에서는 앤서블 코드를 단순히 실행시키는 것을 넘어, 재사용이 가능하도록 추상화하고 캡슐화해서 목표 호스트에서 호스트당 각각 목적에 맞는 특별한 기능을 수행하는 방법을 제시한다.
6장, '순차적 배포(Rolling Deployment)를 활용한 서비스 중단 최소화 방안'에서는 관련된 앤서블 기능을 활용해 일반적으로 사용되는 애플리케이션 배포와 업그레이드 전략을 설명한다.
7장, '앤서블 장애 처리'에서는 앤서블 작업을 검사하고, 작동 방식을 파악하고, 수정하고, 디버그하는 여러 가지 도구를 알아본다.
8장, '앤서블 기능 확장'에서는 앤서블의 모듈, 플러그인, 인벤토리 소스를 추가해 새로운 기능을 추가하는 다양한 방법을 알아본다.
9장, '인프라 스트럭처 배포 관리'에서는 클라우드 인프라 스트럭처 환경과 컨테이너 시스템 환경에서 인프라 스트럭처를 생성하고 관리하는 방법을 알아본다.

저자/역자 소개

지은이의 말

앤서블을 마스터하기 위해 온 것을 환영한다. 이 책은 앤서블이 제공하는 자동화, 그리고 오케스트레이션과 같은, 다양한 고급 기능을 습득할 수 있는 가이드가 돼줄 것이다. 또한 독자는 이 책을 통해 앤서블이 작동하는 가장 기본적인 원리부터 알아가게 될 것이고 그 원리를 알게 되면 오늘날은 물론 향후에 마주치게 될 복잡하고 어려운 문제도 손쉽게 해결할 수 있는 고급 능력도 익힐 수 있다. 독자는 또한 앤서블 작동방식을 잘 이해할 수 있고, 고급 기능을 사용하는 방법, 예상치 못한 일이 발생했을 때 이를 해결하는 방법, 그리고 앤서블을 자신의 환경에 맞게 변형하는 방법을 익힐 수 있다.

지은이 소개

제시 키팅(Jesse Keating)

숙련된 앤서블 사용자이자 코드 기여자며, 강연자다. 15년 이상 리눅스와 오픈소스를 이용해 일해왔으며, 소프트웨어 개발, 대용량 시스템 관리 등 다양한 IT 분야를 초기부터 관여해오고 있다. 현재 수많은 강연과 커뮤니티 모임에서 발표를 하고, 다양한 주제에 관한 글을 쓰고 있다.

옮긴이의 말

앤서블은 배우기 쉽고 적용할 범위가 넓다. 그리고 기존에 서버마다 접속해서 반복해 스크립트를 실행해야 하는 일도 앤서블의 플레이북 몇 줄로 해결이 가능해졌다. 앤서블은 프로그래머를 위한 언어가 아닌, 시스템 관리자를 위한 언어이며, OS 관리 명령을 알고 있으면 쉽게 관련 모듈을 찾아서 적용할 수 있다. 하지만 꼭 시스템 관리자만 사용해야 한다는 의미는 아니다. 왜냐면 앤서블은 현재 900여 개 이상의 모듈을 통해서 900여 개 이상의 기능을 제공하기 때문에 IT 엔지니어라면 가상화 또는 클라우드 관리자든, 네트워크 담당자든, 자신에게 필요한 모듈을 활용해서 자동화를 할 수 있게 도와준다. 그리고 이렇게 자동화해 놓으면 업무 효율성이 높아져 기존 2~3시간 걸리는 일을 10분 안으로 줄일 수 있고, 에러 발생률도 현격히 낮출 수 있다.
그럼 이렇게 모든 작업을 자동화해 버리면 관리자들은 무엇을 해야 할까? 그 대답은 표준화 정립이다. 지루하고 반복되는 작업은 자동화해 버리고, 애플리케이션에 필요한 시스템 파라미터 표준화, 애플리케이션 설정 파라미터 표준화 등 더 안정적 운영과 빠른 배포를 위한 표준화를 수립하기 위해서 시간을 할애해야 한다. 자동화의 기본 전제는 잘 만들어진 표준화 수립임을 명심해야 한다. 또 다른 중요한 업무로는 애플리케이션의 테스트 시나리오를 최신으로 완벽하게 준비하는 것이다. 애플리케이션의 기능이 정상적으로 작동하는지 판단하는 기능테스트와 다른 서버와의 연계테스트 시나리오가 완벽하게 준비돼 있어야 실제 업무환경으로 전환했을 때도 큰 문제 없이, 또는 사소한 일에 시간을 빼앗기지 않고 애플리케이션 또는 시스템 변경 작업을 진행할 수 있다.
지금껏 IT 관리자들은 “서비스가 늘 살아있어야 한다.”라는 강박감에 밤샘 작업을 밥 먹듯이 하고, 오분 대기조 상태로 신경을 곤두세워왔다. 이제는 설정 표준화와 테스트 시나리오를 완벽히 준비하고, 이를 기반으로 IT 자동화를 구현해 밤에는 두 다리 뻗고 잠을 잘 수 있는 인프라 환경을 만들었으면 좋겠다.

옮긴이 소개

김용기

약 15년간 시스템 엔지니어 및 솔루션 아키텍트로 일해오고 있다. 현재는 레드햇에서 클라우드 솔루션과 자동화 솔루션을 맡고 있으며, 커뮤니티로는 페이스북 앤서블 유저그룹에서 활동하고 있다. 특정한 하나의 제품을 깊게 튜닝하기 보다는 전체 솔루션을 잘 디자인하고 효율적으로 연계하는 것이 성능과 기능 향상에 도움이 된다는 생각을 항상 하고 있다. 최근에는 신속한 서비스 제공을 위한 인프라 구조 개선에 관심을 갖고 관련된 공부를 계속하는 중이다

목차

목차
  • 1장. 앤서블 디자인과 시스템 구조
    • 앤서블 버전과 환경 설정
    • 인벤토리 파싱과 데이터 소스
      • 정적 인벤토리
      • 인벤토리 변수 데이터
      • 동적 인벤토리
      • 런타임 인벤토리 추가
      • 인벤토리 제한
    • 플레이북 파싱
      • 작동 순서
      • 상대 경로 가정
      • 플레이 행위 지시자
      • 실행 전략
      • 플레이와 작업을 위한 호스트 선택
      • 플레이와 작업 이름
    • 모듈 전송과 실행
      • 모듈 참고
      • 모듈 아규먼트
      • 모듈 전송과 실행
    • 변수 타입과 위치
      • 변수 타입
    • 외부 변수값 접근 방법
    • 변수 우선순위
      • 우선순위 순서
      • 해시 병합
    • 요약

  • 2장. 앤서블을 통한 데이터 보호
    • 안전한 데이터 암호화
      • 볼트의 암호화 대상
      • 새로운 암호 파일 생성
      • 기존 파일 암호화
      • 암호화된 파일 수정
      • 암호화된 파일에 대한 비밀번호 변경
      • 암호화된 파일의 복호화
      • 암호화된 파일을 이용한 앤서블 플레이북 실행
    • 플레이북 실행 중의 보안 데이터 보호
      • 원격 호스트로 전송되는 보안 데이터
      • 원격 또는 로컬 로그 파일에 기록된 보안 데이터
    • 요약

  • 3장. 진자2 템플릿 고급 활용 방안
    • 제어 구조
      • 조건문
      • 반복문
      • 매크로
    • 데이터 처리
      • 문법
      • 유용한 내장 필터
      • 앤서블이 제공하는 유용한 커스텀 필터
      • 정의되지 않은 아규먼트의 생략
      • 파이썬 오브젝트 메소드
    • 값 비교
      • 비교
      • 로직
      • 테스트
    • 요약

  • 4장. 작업 조건 제어
    • 실패 결정
      • 에러 무시
      • 에러 조건 선언
      • 변경 선언
      • 명령어 계열을 다루는 특별한 방법
      • 변경 억제
    • 에러 복구
      • Rescue
      • Always
    • 요약

  • 5장. 롤을 이용해 재사용 가능한 플레이북 작성 방법
    • 작업, 핸들러, 변수 및 플레이북의 포함 개념
      • 포함 작업
      • 포함된 작업에 변수값 전달
      • 핸들러를 포함하는 방법
      • 변수를 포함하는 방법
      • 플레이북을 포함하는 방법
      • 롤 구조
      • 롤 의존성
      • 롤 애플리케이션
      • 롤 공유
    • 요약

  • 6장. 순차적 배포를 활용한 서비스 중단 최소화 방안
    • 기존 시스템에서 업그레이드
    • 호스트 확장과 추가
    • 빠른 실패
      • anyerrorsfatal 옵션
      • maxfailpercentage 옵션
      • 핸들러를 강제로 작동시키는 방법
    • 서비스 중단 최소화
      • 서비스 중단 지연
      • 서비스 중단 작업을 한 번만 실행시키는 방법
    • 순차적 작업 실행 방법
    • 요약

  • 7장. 앤서블 장애 처리
    • 플레이북 로그와 로깅 레벨
      • 로깅 레벨
      • 로깅
    • 변수 조사
      • 변수의 하위 요소
    • 코드 실행 디버깅
      • 플레이북 디버깅
      • 로컬 코드 디버깅
    • 요약

  • 8장. 앤서블 기능 확장
    • 모듈 개발 방법
      • 모듈의 기본 구성
      • 사용자 수정 모듈
      • 예제 모듈
    • 플러그인 개발 방법
      • 연결 플러그인
      • 셸 플러그인
      • 룩업 플러그인
      • 변수 플러그인
      • 팩트 캐싱 플러그인
      • 필터 플러그인
      • 콜백 플러그인
      • 액션 플러그인
      • 플러그인 배포
    • 동적 인벤토리 개발 방법
      • 호스트 목록
      • 호스트 변수 목록
      • 간단한 인벤토리 플러그인
    • 앤서블 프로젝트에 기여하는 방법
      • 코드 제출 방법
    • 요약

  • 9장. 인프라 환경 배포 관리
    • 클라우드 인프라 환경 관리 방법
      • 서버 생성
      • 오픈스택 인벤토리 소스 사용법
    • 도커 컨테이너 연동 방법
      • 컨테이너 이미지 생성하기
      • Dockerfile 없이 컨테이너 생성하기
      • 도커 인벤토리
    • 앤서블 컨테이너 미리 보기
      • Init
      • Build
      • Run
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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