Ansible이란?
Ansible이란 오픈소스 IT 자동화 툴이다. Provisioning, 환경설정, Application 배포 등을 모듈과 명령어를 통해 여러서버에 동시에 적용할 수 있는 자동화 엔진이다.
Ansible의 특징
1. Agentless
관리 대상 서버에 별도의 Agent 없이, SSH로 접속하여 관리가 가능하다.
2. 멱등성
동일한 운영작업을 여러번 실행해도, 그 결과가 변하지 않는다.
3. 편리성
앤서블은 비교적 간단한 구조로 구성되어 있어서 자동화 절차 및 과정을 이해하기 쉽다. 또 다양한 모듈을 제공하고 있어서 필요한 기능을 찾아 효율적으로 운영할 수 있다.
모듈 리스트: https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html#modules-by-category
Ansible Architecture
제어 노드 (Control node) |
앤서블이 설치되는 노드로, 운영체제가 리눅스여야하며, python이 함께 설치되어 있어야 함. |
관리 노드 (Managed node) |
앤서블이 원격으로 제어하게 될 대상 노드. SSH 통신이 가능해야하며, python이 설치되어 있어야 함. |
Inventory | 제어노드가 관리할 관리노드의 목록이 나열된 파일 |
Module | 작은 기능을 가진 소형 프로그램 |
Plugin | 앤서블의 핵심기능에 대한 옵션 및 기능 확장을 제공함 |
Ansible Playbook | 관리 노드에 수행할 작업들을 정의한 yaml 형식의 파일 |
Ansible Installation
1. epel repository 설치
$ yum install -y epel-release
Ansible을 설치하기 위해선 rhel 확장 repository인 epel repository 정보가 있어야 한다.
2. Ansible PKG 설치
$ yum install -y ansible
#설치 완료 후 버전 확인
$ ansible --version
ansible [core 2.16.3]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.12/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.12.3 (main, Jul 2 2024, 20:57:30) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22)] (/usr/bin/python3.12)
jinja version = 3.1.2
libyaml = True
Ansible Controller 환경
- ansible: 2.16.3
- python: 3.12.3
- jinja: 3.1.2
여기까지 완료되었으면 Ansible을 시작할 기본 설정이 완료되었다.
'Engineering > Ansible' 카테고리의 다른 글
[Ansible] 6. Ansible Vault (0) | 2024.08.29 |
---|---|
[Ansible] 5. 변수 (1) | 2024.08.28 |
[Ansible] 4. Playbook 살펴보기 (0) | 2024.08.28 |
[Ansible] 3. Ansible.cfg, Generating SSH key (0) | 2024.08.26 |
[Ansible] 2. Ansible Inventory File (0) | 2024.08.21 |