Ansible이란
<aside>
<img src="/icons/chevrons-vertical_yellow.svg" alt="/icons/chevrons-vertical_yellow.svg" width="40px" />
기반
</aside>
<aside>
<img src="/icons/log-out_blue.svg" alt="/icons/log-out_blue.svg" width="40px" />
실행 Mode
무선 랜에서의 2가지 mode
-
Ad-hoc Mode
- 독립된 device가 다른 deivce 도움 없이 네트워크 망을 구성
- device의 LAN Card가 다른 device LAN Card로 직접 데이터 전송 가능
- ex) 노트북을 무선 공유기로 만든 뒤 노트북과 휴대폰을 연결하여 노트북의 네트워크를 휴대폰에서 사용 가능
-
Infrastructure mode
- Access Point(AP) 중계기를 통하여 무선 LAN Card와 데이터 통신
- device의 모든 데이터를 AP에게 전달, AP가 전달하고자 하는 device나 다른 AP로 데이터를 보냄
- 서비스 방식
- Basic Service Set(BSS) : AP 1대를 이용하여 네트워크 구성 → 소규모 지역
- Extend Service Set(ESS) : 최소 2개의 BSS가 만나 네트워크 구성 → BSS보다 넓은 지역
</aside>
<aside>
<img src="/icons/aquarius_pink.svg" alt="/icons/aquarius_pink.svg" width="40px" />
특징
-
Agentless
- Chef/Puppet처럼 기존의 IaC 솔루션들은 target host들에 agent를 반드시 설치해줘야 했음, Ansible은 SSH 기반으로 원격 서버에 명령을 전달하는 구조로 Agent 설치가 필요 없음 → 인프라 구축이 더 자동화에 가까워짐
-
접근 용이성
- 자동화를 위해서는 쉘 스크립트 파일을 실행만 시키면 쉘 스크립트 파일에 있는 모든 명령들이 실행되듯이, 명령어들을 모아서 한 번에 처리 가능하도록 명령 모음집(Playbook)을 yaml형식의 파일로 관리
-
다양한 모듈 지원
-
멱등성
- 연산을 여러 번 수행하더라도 결과가 달라지지 않는 성질을 갖고 있음
</aside>
<aside>
<img src="/icons/redirect_blue.svg" alt="/icons/redirect_blue.svg" width="40px" />
구성 요소

-
Ansible Control Node
- Ansible이 실행되고 있는 “Server”
- Control Node를 통해 원격으로 다수의 Managed Node 관리 가능
-
Managed Node
- Ansible을 통해 관리하고자 하는 Server
- Agentless 특징으로 인하여 Ansible이 설치되어 있지 않음, Inventory에 작성되어 있는 대상
</aside>
<aside>
<img src="/icons/jar_gray.svg" alt="/icons/jar_gray.svg" width="40px" />
Control Node
-
Inventory
- 자동화 관리 대상인 Managed Node 즉, Server목록이 작성되어 있음
- /etc/ansible/hosts 파일에 해당 원격 서버들 목록이 저장, 이것을 inventory라 칭함
- Managed Nodes는 그룹화하여 관리 가능, 그룹은 하위 그룹을 포함 가능
-
Module
- Ansible이 실행하는 코드 단위
- 멱등성 보장
- 모듈을 직접 실행하거나, Playbook을 통해서 체계적으로 실행 가능
-
API
- Ansible Python API를 사용하여 Managed Node를 제외하고 Ansible을 확장하여 다양한 Python 이벤트에 응답하고, 다양한 플러그인 작성 가능
-
Plugin
- 사용자가 직접 작성한 Module로 Ansible의 핵심 기능을 보강하는 역할
- plugin 아키텍처를 사용하여 풍부하고 우연하며 확장 가능한 기능 세트를 활성화
</aside>
<aside>
<img src="/icons/barcode_orange.svg" alt="/icons/barcode_orange.svg" width="40px" />
추가 부분
-
Ansible tower

- Ansible GUI로 시릿간 노드 모니터링을 그래픽 기반으로 보여주는 tool
</aside>