🔖 요약
👏 프로젝트 소개
- 프로젝트 개요
- 프로젝트 이름: Ansible 도입 및 운영
- 프로젝트 기간: 2024년 7월 1일 ~ 현재
- 역할: 시스템 엔지니어
- 오픈 소스 솔루션 리서치
- 서버 선정 및 구축
- 유지 관리 및 운영
✍️ 프로젝트 배경
- 도입 이전 상황
- 설치 매뉴얼을 보고 리눅스에 명령어를 하나씩 입력하며 수동 설치를 진행하는 번거로움
- 여러 서버를 동시에 설치할 수 없어서 시간 소모가 큼
- 도입 이유 및 목표
- 도입 이유:
- 효율적인 서버 설치 및 구성 자동화 필요
- 여러 서버를 동시에 설치하고 관리할 수 있는 자동화 도구 필요
- 목표:
- Ansible을 이용한 서버 설치 및 구성 자동화
- 로컬 레포지터리를 통해 필요한 패키지로만 구성하여 설치 효율성 증대
🔦 기술 스택 및 주요 기능 구현
- 기술 스택
- 주요 기술:
- Ansible (자동화 도구)
- Shell Script
- 로컬 레포지터리
- 주요 기능 및 구현 내용
- 서버 설치 및 구성 자동화:
- Ansible 플레이북을 사용하여 서버 설치 및 구성 자동화
- 로컬 레포지터리를 통해 필요한 패키지 구성
- Shell Script에서 번호 입력 시 해당 Ansible 플레이북 실행
🔦 도입 과정
- 초기 요구사항 분석
기능 | 설명 |
자동 서버 설치 | Ansible을 사용하여 서버 설치를 자동화하는 기능. |
로컬 레포지터리 | 필요한 패키지만을 포함한 로컬 레포지터리 구성. |
다중 설치 | 여러 서버를 동시에 설치할 수 있는 기능. |
에이전트 리스 | 설치 대상 서버에 에이전트 설치 없이 진행 가능. |
- 오픈 소스 자동화 도구 리서치
SSH로 설정 원격지 설정이 가능한 Ansible 선택
제품 | Ansible | Puppet | Chef |
개발사 | AnsibleWorks | Puppet Labs | Opscode |
출시 | 2012년 3월 | 2005년 8월 | 2009년 1월 |
코드베이스 | Ansible Galaxy | Puppet Forge | Chef Supermarket |
WebUI | O (Ansible Tower) | O | O |
정의파일 | YAML | 독자 DSL / 내장 Ruby | 독자 DSL(Ruby Base) |
에이전트 설치 | X | O | O |
확장성 | O | O | O |
간편도 | 상 | 중 | 중 |
- 서버 설치 및 Ansible 환경 구성
- 설치 정보
- 설치
- Ansible 설치 및 설정
- Ansible 서버 설치 및 플레이북 작성
- anymonfm_package_install.yml: 솔루션 OS 패키지 설치 플레이북
- anymonfm_source_install.yml: 솔루션 소스 및 라이브러리 설치 플레이북
- anymonfm_collector_install.yml: 솔루션 수집 서버용 설치 플레이북
- 로컬 레포지터리 구성
- 필요한 패키지를 포함한 로컬 레포지터리 구성
- 배포 스크립트 작성
- Shell Script에서 번호를 입력하면 해당 Ansible 플레이북을 실행하는 스크립트 작성
- 설치 진행 시 앤서블 플레이북 실행 대상 서버 입력 hosts 파일 생성
- Git 자동 최신풀(expect) 이후 앤서블 플레이북 시작
CPU | 4Core |
MEM | 8GB |
DISK | 100GB |
OS | Ubuntu 20.04 |
Ansible | 2.9.13 |
🔦 결과 및 성과
- 성과 및 결과
- 도입 후 성과
- 서버 설치 및 구성의 자동화
- 수동으로 명령어를 입력하는 번거로움 없이 자동으로 서버를 설치하고 구성할 수 있게 되었습니다.
- 여러 서버 동시 설치 가능
- Ansible을 통해 여러 서버를 동시에 설치하고 관리할 수 있어 시간과 노력을 절약할 수 있었습니다.
- 설치 효율성 증대
- 로컬 레포지터리를 통해 필요한 패키지만을 설치하여 설치 효율성이 크게 향상되었습니다.
- 향후 계획
- 정기적인 시스템 업데이트 및 유지보수
댓글