리눅스를 활용한 회사 인프라 구축의 모든 것

리눅스 설치와 운영부터 버전 관리, 이슈관리, 아티팩트 관리, 지속적인 통합까지

리눅스를 쉽고, 빠르게 활용하기 위한 실용적인 안내서

이 책에서는 리눅스를 많이 접하지 않은 독자도 본문의 내용과 예제를 따라 하기만 하면 손쉽게 리눅스로 업무 인프라를 구축할 수 있게 설명한다. 또한 그 과정에서 상세한 설명을 통해 시스템의 동작 원리를 이해하고 기반 지식을 습득하는 데 초점을 맞췄다. 그뿐만 아니라 시스템에 대한 기본적인 사용법 및 활용법을 비롯해 각 시스템을 유기적으로 연계하는 방법을 설명함으로써 설치와 구성, 활용 과정에서의 시행착오를 최소화하고 업무 자체에 집중할 수 있게 돕는다.

★ 이 책에서 다루는 내용 ★

  • 레드햇 리눅스 배포판의 특장점
  • bash, curl, lsof, rsync 등 리눅스의 핵심 유틸리티
  • SELinux를 이용해 리눅스를 견고하게 만들기
  • 아파치 웹 서버와 모듈 사용법, 톰캣 사용법 및 웹 서버와의 연계 방법
  • 서브버전과 Git을 이용한 버전 관리, GitLab을 활용한 기업용 Git 관리 시스템 구축과 활용
  • 레드마인을 활용한 이슈 및 프로젝트 관리, 버전 관리 시스템과의 연계, 플러그인을 활용한 레드마인 확장
  • 소나타입 넥서스를 활용한 아티팩트 저장소 관리 시스템 구축 및 메이븐과의 연계를 통한 빌드 구성
  • 젠킨스를 활용한 지속적인 통합 시스템 구축, 버전 관리 및 이슈 관리 시스템과의 연계

업무가 나날이 복잡해지고 짧은 시간 내에 많은 업무를 수행해야 하는 요즘의 IT 환경에서 버전 관리, 이슈 관리, 아티팩트 관리, 지속적인 통합 같은 인프라 시스템의 구축과 활용은 프로젝트의 성패를 좌우하는 중요한 요소다. 그러나 경험 많은 리눅스 사용자가 아니라면 리눅스 설치부터 난관에 부딪히고 우여곡절 끝에 설치했어도 사용하는 데 시행착오를 겪고 업무가 더 복잡해졌다는 원성 속에서 다시 기존과 같은 업무 환경으로 돌아가는 경우가 많았다. 이 책은 이런 문제를 해결하기 위해 레드햇 리눅스와 CentOS를 인프라 시스템으로 활용하기 위한 핵심 지식과 동작 원리를 설명하고 모범 활용 사례를 제시하는 데 중점을 둔다.

이 책은 크게 두 부분으로 나뉜다. 1부에서는 리눅스를 서버로 잘 사용하기 위해 필요한 핵심 지식과 유틸리티 사용법을 설명하고, 2부에서는 개발 인프라 시스템을 잘 활용하기 위한 근간인 아파치 웹 서버, 톰캣과 MySQL, Postfix 메일 서버 등의 필수 서버에 대해 설명한다. 특히 웹 서버와 톰캣은 2부에서 사용할 인프라를 구동하고 위한 핵심 인프라이므로 많은 분량을 할애해 설명한다. 또 네트워크 서비스를 구성하면서 리눅스의 보안성을 떨어뜨리지 않도록 국내 최초로 SELinux에 대한 자세한 설명과 활용 사례를 실어서 리눅스 기반 시스템을 견고하게 만들 수 있게 돕는다.

2부에서는 1부의 내용을 바탕으로 업무 인프라 시스템을 구축하고 이 과정에서 발생할 수 있는 시행착오나 오류 상황을 통해 독자들이 최소의 노력으로 따라 할 수 있게 했다. 그리고 이를 활용한 모범 사례와 시스템 간의 연계 방식을 설명함으로써 독자들이 성공적으로 인프라 시스템을 활용할 수 있게 돕는다. 특히 인프라 시스템을 사용하면서 만들어지는 각종 데이터를 백업하고 복구하는 실용적인 방법을 설명함으로써 소중한 업무 이력 데이터를 보존할 수 있게 했다.

정광섭

산업공학을 전공하고 유닉스에서 C/C++ 개발자로 사회 생활을 시작했다. 이후 모바일 플랫폼에서 브루(BREW) 플랫폼을 개선하고 다양한 휴대폰에 이식하는 업무를 수행했으며, 윈도우와 유닉스용 보안 소프트웨어와 PKI 솔루션 개발을 주도하고, 현재는 자바와 스프링을 활용해 개발 및 관리 업무를 담당하고 있다.

도구와 스크립트를 활용해 업무를 자동화하고 생산성을 높이는 데 관심이 많으며, 좋은 도구와 방법론이 있다면 기존에 익힌 지식이라도 과감히 버릴 수 있도록 노력하고 있다. 또한 정보의 공유와 협업이 중요하다는 점을 깨닫고 협업 시스템을 구축하고 구성원의 참여를 이끌어내어 공유와 협업의 업무 문화를 만들고 이로 인해 업무가 개선되는 것에 보람을 느끼고 있다.

개인 블로그인 http://lesstif.com에 지식과 정보를 공유하고 있다.

  • [1부] 리눅스 설치와 운영을 위한 핵심 지식과 동작 원리
    • ▣ 들어가며
      • 이 책의 목표와 대상 독자
      • 이 책의 구성
      • 이 책에서 사용하는 소프트웨어
      • 표기 규정
      • 목표 환경
      •  
    • ▣ 1장: 레드햇 리눅스와 CentOS
      • 리눅스 배포판
      • 레드햇 리눅스와 CentOS
        • 레드햇 엔터프라이즈 리눅스
        • 페도라 리눅스
        • CentOS
        • 기업에서 RHEL을 선호하는 이유
      • 레드햇 시스템 관리 플랫폼
        • 레드햇 네트워크(RHN)
        • 레드햇 새틀라이트
        • 레드햇 자격증
      •  
    • ▣ 2장: 리눅스 설치
      • 패키지 구성
      • 설치 매체 준비
      • 설치
        • DVD로 부팅
        • 인스톨러 구동
        • 언어와 키보드 선택
        • 저장 장치 선택
        • 네트워크 설정
        • 시간대 설정
        • 관리자 암호 설정
        • 논리 볼륨 관리자
        • 파티션 및 설치 종류 선택
        • 사용할 디스크 선택
        • 파티션 레이아웃 설정
        • 부트 로더 설치
        • 패키지 그룹 설치
      • 최초 부팅
        • 네트워크 확인
        • SSH 클라이언트 설정
        • 패키지 업데이트
      •  
    • ▣ 3장: 중요 명령어와 유틸리티
      • 배시 셸
        • 특징
        • 환경변수와 설정
      • getopt
      • service와 chkconfig
        • CentOS의 부팅 절차 10.1.
        • service
      • iptables와 lokkit
        • iptables
        • lokkit
      • cron
        • crontab
      • setfacl과 getfacl
        • ACL 설정
        • ACL 확인
        • ACL의 활용
      • kill
      • lsof
      • rsync
        • 원격지 데이터를 로컬에 복제
        • 암호 입력 없이 원격지에 연결하기
      • curl
      •  
    • ▣ 4장: 리눅스 패키지 관리
      • rpm 패키지 관리자
        • 기존 패키지 관리 13.7
      • yum
        • 개요
        • yum 설정
        • 주요 명령어와 옵션
        • 패키지 관리하기
        • 트랜잭션 관리
      •  
    • ▣ 5장: SELinux로 리눅스를견고하게
      • SELinux란?
        • 접근 통제 모델
      • SELinux 사용하기
        • SELinux 아키텍처
        • 동작 모드
        • SELinux Boolean
        • SELinux 유틸리티
      • SELinux 문제 해결
        • 로그 분석
        • 해결 단계
      •  
    • ▣ 6장: 데이터베이스 및 이메일 서버
      • MySQL 설치
        • 설치
        • 설정
        • MySQL 문제 해결
      • Postfix 이메일 서버
        • Postfix 소개
        • 설정
      •  
    • ▣ 7장: 아파치 웹 서버
      • 설치 및 설정
        • 설치 및 구동
        • httpdconf 설정
        • 가상 호스트
      • 모듈을 이용한 기능 확장
        • 사용 환경과 정규 표현식
        • mod_setenvif를 이용한 조건부 환경변수 설정
        • mod_headers로 HTTP 헤더 다루기
        • mod_rewrite로 URL 다루기
        • mod_ssl을 이용한 보안 강화
      •  
    • ▣ 8장: 아파치 톰캣
      • 톰캣 설치
        • JDK 설치
        • 톰캣 설치
        • 디렉터리 구성
      • 설정과 배포
        • 아키텍처
        • 설정
        • 톰캣 매니저
      • 아파치 웹 서버와의 연동
        • mod_jk를 이용한 연계
        • mod_proxy 연계
      •  
  • [2부] 리눅스를 활용한 개발 인프라 구축과 활용
    • ▣ 9장: 버전 관리 서버
      • 버전 관리 시스템 소개
        • CVS
        • 서브버전
      • 서브버전 서버 구축
        • 아키텍처 및 주요 용어
        • 서브버전 설치
        • 인증 및 접근 제어 설정
        • 훅 스크립트를 이용한 SVN 동작 제어
        • 저장소 백업
        • 서브버전의 성능 최적화 및 로깅
      • 깃 서버 구축
        • 깃 소개와 설치
        • 깃을 이용한 설정 파일 관리
        • 기업용 깃 환경의 필요성
        • 깃랩 설치
        • 깃랩 활용
      •  
    • ▣ 10장: 이슈 및 프로젝트 관리 서버
      • 이슈 관리란?
        • 전통적인 버그 관리
        • 이슈 관리 시스템의 특징
        • 도입 시 고려 사항
        • 주요 제품
        • 도입 후 주의 사항
      • 레드마인 설치
        • 데이터베이스와 개발 도구 설치
        • 레드마인 설치
        • 환경 설정
        • 아파치 웹 서버와의 연동
        • 유니콘으로 디플로이
      • 초기 설정
        • 내 계정
        • 설정
        • 사용자와 그룹
        • 일감 유형
        • 일감 상태(Issue statuses)
      • 텍스타일 마크업 언어
        • 텍스타일 포매팅
      • 프로젝트 관리하기
        • 프로젝트 설정
        • 구성원
        • 버전
        • 일감 범주(Issue categories)
        • 위키
        • 저장소
        • 작업 분류 - 시간 추적(Activities - time tracking)
        • 프로젝트 종료 및 복사
      • 이슈 추적 및 관리
        • 이슈 등록하기
        • 이슈 보기 및 갱신
        • 이슈 검색
      • 버전 관리 시스템과의 연계
        • 테스트 프로젝트 생성
        • 서브버전과의 연계
        • 깃과의 연계
      • 역할 및 권한
        • 프로젝트 항목
        • 일감 관리
        • 저장소
      • 업무 흐름 설정
        1. 레드마인 플러그인
        • 설치와 삭제
        • 레드마인 CKEditor
        • 레드마인 스크린샷 붙여넣기 플러그인
        • 레드마인 라이트박스 플러그인
        • 레드마인 대시보드
        1. 사용자 정의 항목(Custom fields)
        1. 업그레이드와 백업
        • 업그레이드
        • 백업
      •  
    • ▣ 11장: 아티팩트 저장소
      • 저장소 소개
        • 저장소의 필요성
        • 저장소 구조
        • 저장소 관리자
      • 설치 및 설정
        • 제품 선정
        • 설치
        • 저장소 관리
      • 메이븐과의 연계
        • 메이븐 저장소의 종류
        • 넥서스 정보 설정
      • 저장소와 권한 관리
        • 저장소 관리
        • 사용자와 권한 관리
      • 업그레이드와 백업
        • 업그레이드
        • 백업
      •  
    • ▣ 12장: 지속적인통합
      • 지속적인 통합
        • 지속적인 통합이란?
        • 지속적인 통합을 위한 제품
      • 설치
        • 환경
        • 젠킨스 홈 디렉터리
        • WAS 설치
        • 젠킨스 설치
        • 아파치 연동
      • 환경설정
        • 젠킨스 관리 메뉴
        • 시스템 설정
        • 플러그인 관리
        • 전역 보안 설정
      • 작업 설정
        • 예제 프로젝트 생성
        • 작업 생성
      • 빌드 실행
        • 작업 대시보드
        • 빌드 대시보드
      • 플러그인을 이용한 기능 확장
        • 단위 테스트 결과 확인
        • 의존성 그래프 보기
        • 빌드 경고 확인
        • 작업 설정 이력 관리
        • 디스크 용량 모니터링
        • 이메일로 통합 결과 공유
      • 외부 시스템과의 연계
        • 서브버전에서 원격 빌드하기
        • 깃랩에서 원격 빌드하기
        • 레드마인과의 연계
      • 업그레이드와 백업
        • 업그레이드
        • 백업

예제코드 관련 깃허브 페이지

  • 25쪽, 밑에서 6번째 줄

    충족할 수 있는 최고의 서버용 운영제체라고 ==> 충족할 수 있는 최고의 서버용 운영체제라고

 

  • 505쪽, 가운데 줄

    업무 흐름은 그림 10.71과 같다 ---> 업무 흐름은 그림 10.73과 같다