초보를 위한 젠킨스 2 활용 가이드 2/e [지속적인 통합과 배포]
- 원서명Learning Continuous Integration with Jenkins: A beginner's guide to implementing Continuous Integration and Continuous Delivery using Jenkins 2, 2nd Edition (ISBN 9781788479356)
- 지은이니킬 파타니아(Nikhil Pathania)
- 옮긴이이상욱
- ISBN : 9791161752143
- 30,000원
- 2018년 10월 15일 펴냄
- 페이퍼백 | 388쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 웹 프로페셔널
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
최근 소프트웨어 개발 업계에서 지속적인 통합을 위해 사용하는 도구 중 가장 널리 쓰이는 것은 젠킨스이다. 젠킨스는 최근 2.0 버전의 배포를 통해 또 한 번의 도약을 준비하고 있다. 이 책에서는 젠킨스 2.0 버전에서 새롭게 추가된 기능을 소개하고, 리눅스와 도커와 같이 다양한 환경에서 젠킨스를 설정하는 방법을 다룬다. 이 책에 있는 다양한 예시를 통해 실전에서 지속적인 통합 및 배포를 설정하는 방법을 배울 수 있을 것이다.
이 책에서 다루는 내용
█ 젠킨스를 설정하는 가장 유명한 방법
█ Pipeline as Code, 멀티브랜치 파이프라인 등 최신 젠킨스 기능 소개
█ 보안을 위한 젠킨스 사용자, 프로젝트 및 권한 관리
█ 젠킨스 플러그인을 효과적으로 활용하는 방법
█ 젠킨스 블루 오션을 활용한 CI 파이프라인 생성
█ 도커와 젠킨스를 활용한 분산 빌드 팜 생성
█ 젠킨스를 이용한 CI와 CD 구축
█ CD와 배포 자동화(Continuous Deployment)의 차이점
█ CI 개념 이해
이 책의 대상 독자
이 책은 애자일, CI, CD 경험이 거의 없는 독자를 대상으로 썼다. 관련 분야를 처음 접하거나 CI와 CD를 이용해 생산성 향상과 배포 시간 단축을 얻고 싶은 독자에게 좋은 입문서가 될 것이다.
빌드와 릴리스 담당자나 데브옵스 엔지니어, SCM(Software Configuration Management) 엔지니어, 개발자, 테스트 담당자, 프로젝트 관리자 모두 이 책에서 유용한 내용을 얻을 것이다. 젠킨스를 이용해 CI를 구성해본 독자라면 CD 구성 방법에 관한 내용을 이 책에서 배울 수 있다.
이번에 발행된 2판은 초판의 내용과 많은 부분 다르다. 특히 코드로 동작하는 파이프라인(Pipeline as Code), 멀티브랜치 파이프라인, 젠킨스 블루오션(Blue Ocean), 도커를 이용한 분산 빌드 서버 등의 유용한 내용을 많이 추가했다.
이 책의 구성
1장, ‘지속적 통합의 개념’에서는 최근 유행하는 방법론이 어떻게 CI로 이어졌는지를 설명한다. 그런 다음 CI를 구성하는 방법과 다양한 요구 조건을 다룬다.
2장, ‘젠킨스 설치’에서는 젠킨스를 도커(Docker)를 비롯한 다양한 환경에 설치하는 방법을 단계별로 설명한다.
3장, ‘새로운 젠킨스’에서는 젠킨스 2.x 버전 인터페이스의 개요와 주요 기능을 다루고, 새로 추가된 기능을 살펴본다.
4장, ‘젠킨스 설정’에서는 젠킨스 관리자가 알아야 하는 부분을 개략적으로 설명한다.
5장, ‘분산 빌드’에서는 도커를 이용한 빌드 환경의 설정 방법을 배우고 새로운 머신을 젠킨스 슬레이브(slave)로 추가하는 방법을 다룬다.
6장, ‘소나큐브와 아티팩토리 설치’에서는 소나큐브(SonarQube)와 아티팩토리(Artifactory)를 CI에 적용하기 위해 설치하고 설정하는 방법을 배운다.
7장, ‘젠킨스를 이용한 CI’에서는 CI의 개념과 젠킨스를 이용해 이를 구성하는 방법을 데브옵스 도구와 연계해 설명한다.
8장, ‘젠킨스를 이용한 CD’에서는 CD의 개념과 젠킨스를 이용해 이를 구성하는 방법을 데브옵스 도구와 연계해 설명한다.
9장, ‘젠킨스를 이용한 배포 자동화’에서는 CD와 배포 자동화(Continuous Deployment)의 차이점을 다룬다. 또한 젠킨스를 이용해 배포 자동화 하는 방법을 자세히 설명한다.
부록, ‘그 밖의 도구와 설치 방법’에서는 외부에서 젠킨스 서버에 접근하는 방법과 깃(Git) 설치 방법을 설명한다.
목차
목차
- 1장. 지속적 통합의 개념
- 소프트웨어 개발 주기
- 요구 사항 분석
- 설계
- 구현
- 테스트
- 진화
- 소프트웨어 개발에서의 폭포수 모델
- 폭포수 모델의 단점
- 폭포수 모델의 장점
- 애자일 방법론의 대두
- 열두 가지 애자일 원칙
- 애자일 방법론의 동작 방식
- 애자일 방법론의 장점
- 스크럼 프레임워크
- 스크럼 프레임워크의 주요 용어
- 스크럼의 동작 방식
- 지속적 통합
- CI를 이용한 애자일
- CI를 통해 이득을 볼 수 있는 프로젝트 종류
- CI의 구성 요소
- 버전 관리 시스템
- 브랜칭 전략
- CI 도구
- 자동으로 시작되는 빌드
- 코드 커버리지
- 코드 정적 분석
- 자동화된 테스트
- 바이너리 관리 도구
- 패키징 자동화
- CI 사용의 장점
- 복잡하고 어려운 통합부터의 해방
- 메트릭
- 이슈의 조기 발견
- 빠른 개발
- 요약
- 소프트웨어 개발 주기
- 2장. 젠킨스 설치
- 서블릿 컨테이너를 이용해 젠킨스 실행하기
- 전제 조건
- 자바 설치
- 아파치 톰캣 설치
- 방화벽과 8080 포트 활성화
- 아파치 톰캣 서버 설정하기
- 아파치 톰캣 서버 위에 젠킨스 설치
- 젠킨스를 아파치 톰캣 서버에 독립적으로 설치하기
- 젠킨스 홈 경로 설정
- 윈도우에 스탠드얼론 젠킨스 설치
- 전제 조건
- 자바 설치
- 최신 안정 버전 젠킨스 설치
- 윈도우에서 젠킨스를 시작, 중지, 재시작하기
- 우분투에 스탠드얼론 젠킨스 설치하기
- 전제 조건
- 자바 설치
- 젠킨스 최신 버전 설치
- 젠킨스 최신 안정 버전 설치
- 우분투에서 젠킨스 시작, 종료, 재시작하기
- 레드햇 리눅스에 스탠드얼론 젠킨스 설치하기
- 전제 조건
- 자바 설치
- 최신 버전 젠킨스 설치하기
- 최신 안정 버전 젠킨스 설치하기
- 레드햇 리눅스에서 젠킨스 시작, 종료, 재시작하기
- 젠킨스를 리버스 프록시 뒤에서 실행하기
- 전제 조건
- Nginx의 설치와 설정
- Nginx 서버 방화벽 설정
- Nginx 서버 시작, 종료, 재시작하기
- OpenSSL을 이용해 Nginx 보안을 유지하기
- 젠킨스 서버 설정
- Nginx 설정에 리버스 프록시 추가하기
- 젠킨스와 Nginx를 같은 머신에서 실행하기
- 도커에서 젠킨스 실행하기
- 전제 조건
- 도커 호스트 설정
- 젠킨스 컨테이너 실행하기
- 데이터 볼륨을 이용한 젠킨스 컨테이너 실행
- 젠킨스 개발 및 스테이징 인스턴스 만들기
- 전제 조건
- 빈 데이터 볼륨 생성
- 데이터 볼륨 간 파일 복사
- 개발 및 스테이징 인스턴스 생성
- 요약
- 서블릿 컨테이너를 이용해 젠킨스 실행하기
- 3장. 새로운 젠킨스
- 젠킨스 설정 마법사
- 전제 조건
- 젠킨스 잠금 해제하기
- 젠킨스 커스터마이징
- 첫 번째 관리자 만들기
- 새로운 젠킨스 파이프라인 잡
- 전제 조건
- 젠킨스 파이프라인 잡 만들기
- 전역 도구 환경 설정 페이지
- 젠킨스 파이프라인 스테이지 뷰
- 서술적 파이프라인 문법
- 서술적 파이프라인의 기본 구조
- 젠킨스 파이프라인 문법 도구
- 전제 조건
- 멀티브랜치 파이프라인
- 전제 조건
- 젠킨스에서 멀티브랜치 파이프라인 생성하기
- Webhooks 재등록
- 젠킨스 멀티브랜치 파이프라인 인 액션
- 젠킨스 블루오션
- 젠킨스 블루오션 플러그인 설치하기
- 블루오션에서 기본적인 젠킨스 파이프라인 살펴보기
- 블루오션에서 파이프라인 생성하기
- 요약
- 젠킨스 설정 마법사
- 4장. 젠킨스 설정
- 젠킨스 플러그인 매니저
- 젠킨스 플러그인 업데이트
- 새로운 젠킨스 플러그인 설치
- 젠킨스 플러그인을 삭제하거나 다운그레이드하기
- 젠킨스에 프록시 설정하기
- 수작업으로 젠킨스 플러그인 설치하기
- 젠킨스 백업과 복원
- Periodic Backup 플러그인 설치하기
- Periodic Backup 플러그인 설정하기
- 젠킨스 백업 생성하기
- 젠킨스 백업 복원하기
- 백업과 복원 로그 확인하기
- 젠킨스 업그레이드
- 톰캣 서버 위에서 돌아가는 젠킨스 업그레이드
- 윈도우에서 스탠드얼론 젠킨스 업그레이드하기
- 우분투에서 스탠드얼론 젠킨스 업그레이드
- 도커 컨테이너에서 젠킨스 업그레이드하기
- 사용자 관리
- 젠킨스에서 전역 보안의 활성화와 비활성화
- 사용자 정보를 컴퓨터에 저장하는 옵션의 활성화와 비활성화
- 인증 방식
- 젠킨스 내부에 새로운 사용자 생성하기
- People 페이지
- 권한 설정 방식
- 요약
- 젠킨스 플러그인 매니저
- 5장. 분산 빌드
- 분산 빌드와 테스트
- 젠킨스 노드 관리 페이지
- 젠킨스 슬레이브 추가하기: 스탠드얼론 리눅스 머신/VM
- 젠킨스 슬레이브에 환경 변수 전달하기
- 도구의 위치 전달하기
- SSH를 통해 젠킨스 슬레이브 실행
- 활성화된 젠킨스 슬레이브에 대한 추가 정보
- 젠킨스 슬레이브 추가하기: 스탠드얼론 윈도우 머신/VM
- Java Web Start를 통해 젠킨스 슬레이브 시작시키기
- 젠킨스 슬레이브 추가하기: 도커 컨테이너
- 전제 조건
- 도커 원격 API 활성화
- 도커 플러그인 설치
- 도커 플러그인 설정
- 도커 이미지 생성하기 - 젠킨스 슬레이브
- 젠킨스에 도커 컨테이너 인증 정보 추가
- 젠킨스에 도커 설정 업데이트
- 요약
- 6장. 소나큐브와 아티팩토리 설치
- 소나큐브 설치와 설정
- 자바 설치
- 소나큐브 패키지 다운로드
- 소나큐브 애플리케이션 실행
- 기본 인증 정보 초기화와 토큰 생성
- 소나큐브에서 프로젝트 생성하기
- 소나큐브에 빌드 브레이커 플러그인 설치
- 퀄리티 게이트 생성
- 기본 퀄리티 게이트 프로파일 업데이트
- 젠킨스에 소나큐브 플러그인 설치
- 젠킨스의 소나큐브 플러그인 설정
- 아티팩토리 설치와 설정
- 자바 설치
- 아티팩토리 패키지 다운로드
- 아티팩토리 애플리케이션 실행
- 기본 인증 정보 초기화 및 API 키 생성
- 아티팩토리에 저장소 추가
- 젠킨스에 아티팩토리 인증 정보 추가
- 젠킨스에 아티팩토리 플러그인 설치
- 아티팩토리 플러그인 설정
- 요약
- 소나큐브 설치와 설정
- 7장. 젠킨스를 이용한 CI
- 젠킨스 CI 구조
- 브랜치 전략
- CI 파이프라인
- CI를 위한 도구 모음
- CI 파이프라인 생성
- 깃허브에 새로운 저장소 생성
- 메이븐을 위한 소나큐브 스캐너 활용
- CI를 위한 Jenkinsfile 작성
- Jenkinsfile 활용
- 젠킨스에 멀티브랜치 파이프라인 생성
- Webhooks 재등록
- 준비 완료된 CI
- 소나큐브에서 정적 코드 분석 결과 보기
- 젠킨스에서 소나큐브 분석 결과에 접근하기
- 아티팩토리에서 아티팩트 확인
- 퀄리티 게이트의 조건을 통과하지 못했을 때 빌드 실패시키기
- 요약
- 젠킨스 CI 구조
- 8장. 젠킨스를 이용한 배포 자동화
- 젠킨스 CD 구조
- 브랜치 전략
- CD 파이프라인
- CD를 위한 도구 모음
- 도커 이미지 생성: 성능 테스트
- 젠킨스에 도커 컨테이너 인증 정보 추가
- 젠킨스에 도커 설정 업데이트
- 제이미터를 이용해 성능 테스트 생성
- 자바 설치
- 아파치 제이미터 설치
- 제이미터 시작하기
- 성능 테스트 케이스 만들기
- CD 파이프라인
- CD를 위한 Jenkinsfile 작성
- 최종 준비된 CD
- 요약
- 젠킨스 CD 구조
- 9장. 젠킨스를 이용한 Continuous Deployment
- Continuous Deployment 정의
- 프로덕션 서버 생성
- 베이그런트 설치
- 버추얼박스 설치
- 베이그런트를 이용해 VM 생성
- 젠킨스에 프로덕션 서버 인증 정보 추가
- 프로덕션 서버에 젠킨스 슬레이브 설치
- 젠킨스 Continuous Deployment 파이프라인 생성
- CD 파이프라인 검토
- 프로덕션 젠킨스 슬레이브를 위한 파이프라인 코드
- 아티팩토리에서 바이너리를 다운로드하기 위한 파이프라인 코드
- Continuous Deployment 파이프라인 코드 조합
- Jenkinsfile 수정
- 준비 완료된 Continuous Deployment
- 요약
- 부록. 추가 도구와 설치 가이드
- 로컬 서버를 외부 인터넷에 노출하기
- 윈도우와 리눅스에 깃 설치
- 윈도우에 깃 설치
- 리눅스에 깃 설치
도서 오류 신고
정오표
정오표
[p.41 : 2행]
존 백로그의
->
기존 백로그의
[p.214 : 7행]
관리가자 된다.
->
관리자가 된다.