목차
- 엔서블?
- 구성요소
- 동작방식
- 실습 - 리눅스 서버 pip 설치
- 실습 - Ansible 설치
- 실습 - Host 통신 확인
더보기
최근 데이터센터 규모가 커지고, 인프라 장비 수가 증가하면서 CLI 기반 수동 작업만으로는 운영 효율을 유지하기 어려워지고 있다.
최근 데이터센터 규모가 커지고, 인프라 장비 수가 증가하면서 CLI 기반 수동 작업만으로는 운영 효율을 유지하기 어려워지고 있다.
예를 들어 스위치 100대에 NTP 서버를 변경하거나, 수백 대의 서버에 동일한 패키지를 설치해야 한다면 어떻게 할까?
예전에는 엔지니어가 직접 접속하여 설정을 변경했지만, 현재는 Infrastructure as Code(IaC) 와 자동화 도구를 활용하여 코드로 인프라를 관리하는 것이 일반적인 운영 방식이 되었다.
그 중심에 있는 대표적인 자동화 도구가 바로 Ansible 이다.
엔서블?
Ansible은 Red Hat에서 개발 및 관리하는 IT 자동화 플랫폼으로 서버, 네트워크 장비, 클라우드, 보안 장비 등을 대상으로 다음과 같은 작업을 자동화할 수 있습니다.
- Management
- Provisioning
- Application Deployment
- Orchestration
- 운영 자동화
# Ansible의 특징
Agentless : 대상장비에 별도의 Agent를 설치하지 않고 Ansible이 직접 Push하는 방식으로 Puppet, Chef와 같은 기존 자동화 도구들은 대상 장비에 Agent를 설치해야 했지만 Ansible은 SSH를 통해 직접 제어하기 때문에 복잡성이 줄어듭니다.
멱등성(Idempotency) : 동일한 설정을 여러 번 실행해도 현재 상태가 목적한 상태라면 아무 일도 일어나지 않아. 즉, 몇번을 실행해도 동일한 결과가 출력되어 안정적입니다.
접근성 : 사람이 읽기 쉬운 YAML형식을 사용하여 Python 코드를 직접 작성하는 것보다 훨씬 직관적입니다.
표준화 및 일관성: 모든 장비에 동일한 설정을 적용하여 표준화되고 안정적인 인프라 환경을 제공합니다.
휴먼 에러 최소화: 수동 CLI 입력 시 발생하는 오타나 실수로 인한 장애를 차단합니다.
효율성 극대화: 다수의 스위치에 대한 VLAN 설정이나 펌웨어 업데이트를 단 몇 분 만에 실행합니다.
구성요소

# 구성요소와 역할
| Control Node | Ansible을 실행시키는 서버 |
| Managed Node | Ansible로 관리될 대상 장비 |
| Inventory | 프로비저닝,배포등의 제어될 대상을 정의한 파일 (hosts.ini 파일) |
| Playbook | 자동화할 작업 내용을 YAML 형식으로 정의한 파일 |
| Module | 각 벤더별(Cisco, Juniper, Arista 등) 장비를 제어하기 위한 실행 단위 |
동작방식
Ansible은 제어 노드(Control Node)에서 관리 대상(Managed Node)으로 명령을 푸시(Push)하는 구조입니다.

정리
오늘날 데이터센터와 AI 인프라 환경에서 Ansible은 네트워크 장비, 서버, 보안 장비, 클라우드 자원을 코드로
관리하여 운영업무에 혁신을 가져온다.
네트워크 엔지니어 관점에서 Ansible의 가장 큰 가치는 다음과 같다.
반복 작업 제거
설정 표준화
작업 시간 단축
운영 실수 감소
대규모 장비 관리 가능
CLI를 잘 다루는 엔지니어가 자동화를 구현할 수 있는 능력을 갖춘다면 생산성 차이는 앞으로 더욱 커질 것이다.
실습 - 리눅스 서버 pip 설치
실습은 리눅스 환경에서 진행하겠습니다.
Rocky linux 10.2 사용
1. pip 모듈 설치
2. Ansible 설치
3. Control node <-> Manage node간 통신 확인
# PIP 모듈 설치
참고링크 https://pip.pypa.io/en/stable/installation/#supported-methods
Installation - pip documentation v26.1.2
$ chmod +x ./pip.pyz $ ./pip.pyz then the currently active Python interpreter will be used. $ chmod +x ./pip.pyz $ ./pip.pyz then the currently active Python interpreter will be used. then the currently active Python interpreter will be used. You may need
pip.pypa.io
"python get-pip.py" 명령어를 사용하여 설치합니다. get-pip.py는 https://bootstrap.pypa.io/get-pip.py 링크를 통해 다운받을 수 있습니다. pip을 설치하면 Ansible 설치 준비 끝입니다.
* 저의 실습환경에서는 인터넷 연결이 어려워 vi로 get-pip.py파일을 직접 생성했습니다.

위 방법이 안되면 yum -y install python3-pip 명령어로 설치 가능합니다.

실습 - Ansible 설치
#Ansible 설치
pip install ansible 명령어를 사용하여 엔서블을 설치합니다
- 앞에 sudo를 사용하여 명령어를 실행하거나 su - 명령어를 통하여 root권한을 획득한 후 명령어 실행

ansible --version 명령어를 통해 버전 확인

실습 - Host 통신 확인
# Control node <-> Manage node간 통신 확인
Control node가 Manage node에 설정을 Push하는 방식으로 동작하기 때문에 정상적인 통신이 가능해야합니다.
- SSH를 사용하기 때문에 TCP 22 통신이 가능해야합니다.
- 문서에 SSH를 사용한다 되어있는데 테스트해보니까 HTTPS를 사용해서 뭐가 기본동작인지 모르겠음
- 실습환경엔 방화벽이 없어 ping으로 통신 확인

이상으로 Ansible에 대한 학습과 실습환경 구성에 대한 포스팅을 마무리합니다.
다음 포스팅은 Ansible을 통해 Cisco nexus 스위치의 자동화를 해보고 VXLAN/EVPN 설정을 넣어보겠습니다.
감사합니다.
'네트워크 > 자동화' 카테고리의 다른 글
| Ansible을 통한 Cisco nexus 자동화 실습 (0) | 2026.06.11 |
|---|---|
| Nexus POAP (PowerOn Auto Provisioning) (0) | 2026.05.02 |
| Python으로 Cisco Nexus 자동화하기 - 장비 정보 수집하기 (0) | 2026.05.01 |