앤서블 시작과 실행 3/e

구성 관리와 배포를 쉽게 자동화하는 방법
$45.36
SKU
9791161759265
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Tue 01/7 - Mon 01/13 (주문일로부 10-14 영업일)

Express Shipping estimated by Thu 01/2 - Mon 01/6 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2024/11/13
Pages/Weight/Size 188*235*28mm
ISBN 9791161759265
Categories IT 모바일 > OS/데이터베이스
Description
IT 자동화 도구인 앤서블(Ansible)을 쉽게 이해하고 활용할 수 있도록 돕는 책이다. 초보자부터 전문가까지, 인프라 관리와 애플리케이션 배포를 자동화하는 방법을 단계별로 설명하며, 다양한 예제와 실습을 통해 실무에 적용할 수 있는 실질적인 지식을 제공한다. 또한 앤서블의 기본 개념부터 고급 기능까지 폭넓게 다루며, 최신 트렌드와 기술적 인사이트도 제공한다. 이 책은 IT 자동화의 필수 도구로서 앤서블을 배우고자 하는 모든 이에게 최적의 안내서가 될 것이다.
Contents
1장. 소개

__버전 정보
__앤서블을 어디에 사용하면 좋은가?
__앤서블의 동작 방식
__앤서블의 장점은 무엇인가?
____단순함
____강력함
____안전함
__앤서블은 너무 단순한가?
__선수지식
__다루지 않는 내용
__요약

2장. 설치와 설정

__앤서블 설치
____느슨한 의존성
____컨테이너에서 앤서블 실행
____앤서블 개발
__테스트용 서버 설정
____베이그런트 테스트 서버 설정
____앤서블에 서버 정보 제공하기
____ansible.cfg 파일을 통한 단순화
____익숙함과 결별하라
__편리한 베이그런트 설정 옵션
____포트 포워딩과 사설 IP 주소
____에이전트 포워딩 활성화
__도커 프로비저너
__앤서블 로컬 프로비저너
__프로비저너 실행 시점
__베이그런트 플러그인
____hostmanager
____vbguest
__버추얼박스 사용자화
__Vagrantfile은 루비다
__상용 환경 설정
__요약

3장. 플레이북 시작하기

__준비 단계
__아주 간단한 플레이북
____엔진엑스 설정 파일 지정
____웹 페이지 생성
____그룹 생성
__플레이북 실행
__플레이북은 YAML
____문서의 시작
____파일의 끝
____주석
____들여쓰기와 공백
____문자열
____불리언
____리스트
____딕셔너리
____여러 줄 문자열
____문자열 대신 순수 YAML
__플레이북의 구조
__플레이
____태스크
____모듈
____앤서블 모듈 문서 살펴보기
____하나로 모으기
__변경되면 호스트 상태 추적
__고급 기능: TLS 지원
____TLS 인증서 생성
____변수
____앤서블 문자열에 인용부호 사용
____엔진엑스 설정 템플릿 생성하기
____루프
____핸들러
____핸들러에서 알아둘 내용
____테스트
____검증
____플레이북
____플레이북 실행
__요약

4장. 서버를 기술하는 인벤토리

__inventory/hosts 파일
____사전 작업: 여러 베이그런트 머신 준비
__동작 인벤토리 파라미터
____동작 파라미터의 기본값 변경
__그룹, 그룹, 그룹
____예제: 장고 앱 배포
____에일리어스와 포트
____그룹의 그룹
____번호가 있는 호스트(반려동물과 가축)
__인벤토리에서 호스트와 그룹 변수
__파일에서 호스트와 그룹 변수
__동적 인벤토리
____인벤토리 플러그인
____아마존 EC2
____애저 리소스 매니저
____동적 인벤토리 스크립트 인터페이스
____동적 인벤토리 스크립트 작성
__인벤토리를 여러 파일로 분할
__런타임에 add_host와 group_by를 사용해 항목 추가
____add_host
____group_by
__요약

5장. 변수와 팩트

__플레이북에서 변수 정의
____별도 파일에 변수 정의
____디렉터리 배치
__변수의 값 확인
____변수 보간
__변수 등록
__팩트
____서버와 관련된 모든 팩트 보기
____팩트의 하위 집합 보기
____모든 모듈은 팩트나 인포를 반환한다
____로컬 팩트
____set_fact로 새로운 변수 정의
__내장 변수
____hostvars
____inventory_hostname
____groups
__명령줄에서 변수 설정
__우선순위
__요약

6장. 메자닌 소개: 테스트 애플리케이션

__상용 환경 배포가 복잡한 이유
__Postgres 데이터베이스
__거니콘 애플리케이션 서버
__엔진엑스 웹 서버
__Supervisor 프로세스 관리자
__요약

7장. 앤서블로 메자닌 배포

__플레이북 태스크 리스트
__배포된 파일
__변수와 비밀 변수
__여러 패키지 설치
__태스크에 Become 절 추가
__apt 캐시 갱신
__깃으로 프로젝트 체크아웃
__가상 환경에 메자닌과 나머지 패키지 설치
__태스크에서 복잡한 인수에 관한 짧은 이야기
__데이터베이스 구성
__템플릿에서 local_settings.py 파일 생성
__django-manage 명령 실행
__애플리케이션 컨텍스트에서 사용자 정의 파이썬 스크립트 실행
____서비스 구성 파일 설정
__엔진엑스 구성 활성화
__TLS 인증서 설치
__트위터 크론 잡 설치
__전체 플레이북
__베이그런트 머신에 플레이북 실행
__트러블슈팅
____깃 저장소를 체크아웃할 수 없는 문제
____192.168.33.10.nip.io에 접속할 수 없는 오류
____잘못된 요청(400) 발생
__요약

8장. 앤서블 플레이북 디버깅

__친화적인 오류 메시지
__SSH 문제 디버깅
__SSH에서 알아야 할 일반적인 사항
____PasswordAuthentication no
____다른 사용자로 SSH 접속
____호스트 키 확인 실패
____내부 네트워크
__debug 모듈
__플레이북 디버거
__assert 모듈
__플레이북 실행 전 점검
____문법 검사
____호스트 리스트
____태스크 리스트
____점검 모드
____Diff(파일 변경사항 표시)
____태그
____limit
__요약

9장. 롤: 플레이북 확장

__롤의 기본 구조
__롤을 사용한 메자닌 배포 예
____플레이북에서 롤 사용
____pre-tasks와 post-tasks
____데이터베이스를 배포하기 위한 database 롤
____메자닌 배포용 mezzanine 롤
__ansible-galaxy를 사용해 롤 파일과 디렉터리 생성
__의존 롤
__앤서블 갤럭시
____웹 인터페이스
____명령줄 인터페이스
____실무에서 롤 요구사항
____직접 작성한 롤 제공
__요약

10장. 복잡한 플레이북

__오동작한 명령 처리
__필터
____default 필터
____등록된 변수용 필터
____파일 경로에 적용하는 필터
____사용자 정의 필터 작성
__룩업
____file
____pipe
____env
____password
____template
____csvfile
____dig
____redis
____룩업 플러그인 작성
__더 복잡한 루프
____룩업 플러그인 사용
____with_lines
____with_fileglob
____with_dict
____룩업 플러그인으로 구조 반복
__루프 제어문
____변수 이름 설정
____출력에 레이블 지정
__임포트와 인클루드
____동적 인클루드
____롤 인클루드
____롤 흐름 제어
__블록
__블록으로 오류 처리
__ansible-vault를 활용한 중요 정보 암호화
____다중 비밀번호용 vault
__요약

11장. 호스트, 실행, 핸들러 사용자 정의

__호스트 지정 패턴
__호스트 실행 제한
__제어 머신에서 태스크 실행
__수동 팩트 수집
__호스트 IP 주소 조회
__특정 호스트가 아닌 다른 호스트에서 태스크 실행
__한 번에 하나의 호스트에서 실행
__한 번에 여러 호스트에 대해 배치 실행
__한 번만 실행
__태스크 실행 제한
____step
____start-at-task
____태그 실행
____태그 건너뛰기
__실행 전략
____linear
____free
__고급 핸들러
____태스크 전/후 핸들러
____핸들러 강제 실행
____메타 명령
____핸들러 간 알림
____listen 핸들러
____SSL에서 listen 핸들러 사용 예
__요약

12장. 윈도우 호스트 관리

__윈도우에 연결
__파워셸
__윈도우 모듈
__자바 개발 머신
__로컬 사용자 추가
__윈도우 기능
__Chocolatey를 사용해 소프트웨어 설치
__자바 설정
__윈도우 업데이트
__요약

13장. 앤서블과 컨테이너

__쿠버네티스
__도커 애플리케이션 생명주기
__레지스트리
__앤서블과 도커
__도커 데몬 연결
__Ghost 애플리케이션
__로컬 머신에서 도커 컨테이너 실행
__Dockerfile로 이미지 생성
__도커 레지스트리에 이미지 푸시
__로컬 머신에서 여러 컨테이너 관리하기
__로컬 이미지 조회
__도커화된 애플리케이션 배포
____MySQL 구성
____고스트 데이터베이스 배포
____프론트엔드
____고스트 프론트엔드
____엔진엑스 프론트엔드
____컨테이너 초기화
__요약

14장. Molecule을 사용한 품질 보증

__설치와 설정
__Molecule 드라이버 설정
__앤서블 롤 생성
__시나리오
____원하는 상태
____Molecule 시나리오 구성
____가상 머신 관리
____컨테이너 관리
__Molecule 명령
__린트
____YAMLlint
____ansible-lint
____ansible-later
__검증 도구
____앤서블
____고스
____테스트인프라
__요약

15장. 컬렉션

__컬렉션 설치
__컬렉션 리스트
__플레이북에서 컬렉션 활용
__컬렉션 개발
__요약

__16장. 이미지 생성

__패커로 이미지 생성
____베이그런트 버추얼박스 VM
____패커와 베이그런트 조합
____클라우드 이미지
____GCP
____애저
____아마존 EC2
____플레이북
__도커 이미지 GCC 11
__요약

17장. 클라우드 인프라

__용어
____인스턴스
____아마존 머신 이미지
____태그
__자격증명 지정
____환경 변수
____구성 파일
__전제 조건: Boto3 파이썬 라이브러리
__동적 인벤토리
____인벤토리 캐시
____그 밖의 구성 옵션
__태그를 사용해 동적 그룹 정의
____기존 리소스에 태그 적용
____더 나은 그룹 이름
__가상 사설 클라우드
__ec2와 함께 사용할 ansible.cfg 구성
__새 인스턴스 시작
__EC2 키 쌍
____새 키 생성
____공개 키 업로드
__보안 그룹
____허용 IP 주소
____보안 그룹 포트
__최신 AMI
__새 인스턴스 생성과 그룹 추가
__서버 생성 대기
__하나로 통합
__VPC 지정
____동적 인벤토리와 VPC
__요약

18장. 콜백 플러그인

__stdout 플러그인
____ARA
____debug
____default
____dense
____json
____minimal
____null
____oneline
__notification과 aggregate 플러그인
____파이썬 요구사항
____foreman
____jabber
____junit
____log_plays
____logentries
____logstash
____mail
____profile_roles
____profile_tasks
____say
____slack
____splunk
____timer
__요약

19장. 사용자 정의 모듈

__원격 서버에 접속 가능 여부를 점검하는 예제
____script 모듈 사용
____can_reach 모듈
__모듈을 개발해야 하는가?
__사용자 정의 모듈의 위치
__앤서블에서 모듈 호출 방법
____인수가 있는 독립 실행 파이썬 스크립트 생성(파이썬 모듈에 해당)
____모듈을 호스트로 복사
____호스트에서 인수 파일 생성(비 파이썬 모듈에 해당)
____모듈 호출
__예상 출력
____앤서블의 예상 변수 출력
__파이썬 모듈 구현
____인수 파싱
____파라미터 접근
____AnsibleModule 헬퍼 클래스 불러오기
____인수 옵션
____AnsibleModule 초기화 파라미터
____성공/실패 반환
____외부 명령 호출
____체크 모드
__모듈 문서화
__모듈 디버깅
__배시에서 모듈 작성
__배시용 대체 경로 지정
__요약

20장. 앤서블 성능 개선

__SSH 다중화와 ControlPersist
____SSH 다중화 수동 설정
____앤서블의 SSH 다중화 옵션
__SSH 최적화
____알고리듬 권장사항
__파이프라인
____파이프라인 설정
____파이프라인용 호스트 구성
__앤서블용 Mitogen
__팩트 캐시
____JSON 파일 팩트 캐시
____레디스 팩트 캐시
____멤캐시드 팩트 캐시
__병렬 처리
__비동기 동시 태스크
__요약

21장. 네트워크와 보안

__네트워크 관리
____지원되는 공급사
____네트워크 자동화를 위한 앤서블 연결
____특권 모드
____네트워크 인벤토리
____네트워크 자동화 사용 예시
__보안
____규정 준수
____안전하지만 안전하지 않은
____섀도 IT
____선샤인 IT
____제로 트러스트
__요약

22장. CI/CD와 앤서블

__CI
____CI 시스템의 구성 요소
____젠킨스와 앤서블
____앤서블 롤용 CI 실행
__스테이징
__앤서블 플러그인
__앤서블 타워 플러그인
__요약

23장. 앤서블 오토메이션 플랫폼

__구독 모델
____앤서블 오토메이션 플랫폼 시험판
__앤서블 오토메이션 플랫폼의 기능
____접근 통제
____프로젝트
____인벤토리 관리
____잡 템플릿을 통한 잡 실행
__RESTful API
__AWX.AWX
____설치
____조직 생성
____인벤토리 생성
____잡 탬플릿을 통해 플레이북 실행
__컨테이너를 통해 앤서블 실행
____실행 환경 생성
__요약

24장. 모범 사례

__단순성, 모듈화, 결합성
__콘텐츠 구조화
__프로젝트와 인벤토리 분리
__롤과 컬렉션 분리
__플레이북
__코드 스타일
__모두 태그 및 테스트
__원하는 상태
__지속적인 제공
__보안
__배포
__성과 지표
__성과 측정 근거
__맺는말
Author
바스 마이어,로린 혹스테,르네 모저,양정열
프리랜서 소프트웨어 엔지니어이자 데브옵스 코치다. 암스테르담대학교에서 주전공을 졸업했으며, 1990년대 초부터 웹 개발을 선도해 왔다. 고주파 거래, 은행, 클라우드 보안, 항공, 하이테크와 정부 분야에서 일했다. 2014년부터 앤서블 대사로 활동하고 있으며 2020년부터 2021년까지 하시코프(HashiCorp) 대사로 활동했다.
프리랜서 소프트웨어 엔지니어이자 데브옵스 코치다. 암스테르담대학교에서 주전공을 졸업했으며, 1990년대 초부터 웹 개발을 선도해 왔다. 고주파 거래, 은행, 클라우드 보안, 항공, 하이테크와 정부 분야에서 일했다. 2014년부터 앤서블 대사로 활동하고 있으며 2020년부터 2021년까지 하시코프(HashiCorp) 대사로 활동했다.