Ansible - 강력한 IT 자동화 플랫폼

29 조회 2025-11-17 오픈소스 도구
GitHub 문서

Ansible 네트워크 자동화

개요

Ansible은 Red Hat이 개발한 오픈소스 IT 자동화 도구로, 네트워크 자동화 분야에서 가장 널리 사용되는 솔루션 중 하나입니다.

주요 특징

1. 에이전트리스 아키텍처

  • 원격 장비에 에이전트 설치 불필요
  • SSH 또는 API를 통한 직접 통신
  • 관리 오버헤드 최소화

2. 플레이북 기반 자동화

---
- name: Configure Cisco IOS Devices
  hosts: cisco_routers
  gather_facts: no
  tasks:
    - name: Configure interface
      cisco.ios.ios_interface:
        name: GigabitEthernet0/1
        description: "To Core Switch"
        enabled: true

3. 멀티 벤더 지원

  • Cisco IOS/IOS-XE/NX-OS
  • Juniper Junos
  • Arista EOS
  • F5, Palo Alto Networks
  • 100+ 네트워크 모듈 제공

네트워크 모듈 컬렉션

Cisco 모듈

  • cisco.ios - Cisco IOS 플랫폼
  • cisco.nxos - Cisco Nexus
  • cisco.iosxr - Cisco IOS-XR

Juniper 모듈

  • juniper.junos - Junos OS

Arista 모듈

  • arista.eos - Arista EOS

실전 사용 사례

1. 대량 설정 변경

- name: Update NTP servers across fleet
  hosts: all_routers
  tasks:
    - name: Configure NTP
      ios_config:
        lines:
          - ntp server 10.1.1.1
          - ntp server 10.1.1.2

2. 컴플라이언스 체크

- name: Verify security baseline
  hosts: production_switches
  tasks:
    - name: Check if SSH is enabled
      ios_command:
        commands:
          - show ip ssh
      register: ssh_output

    - name: Fail if SSH disabled
      fail:
        msg: "SSH is not enabled"
      when: "'SSH Enabled' not in ssh_output.stdout[0]"

3. 자동 백업

- name: Daily configuration backup
  hosts: network_devices
  tasks:
    - name: Backup config
      ios_config:
        backup: yes
        backup_options:
          filename: "{{ inventory_hostname }}_{{ ansible_date_time.date }}.cfg"

설치 방법

pip를 통한 설치

pip install ansible
ansible-galaxy collection install cisco.ios
ansible-galaxy collection install juniper.junos

인벤토리 설정

[cisco_routers]
router1 ansible_host=192.168.1.1
router2 ansible_host=192.168.1.2

[cisco_routers:vars]
ansible_network_os=ios
ansible_user=admin
ansible_password=password
ansible_connection=network_cli

장점

✓ 대규모 인프라 관리에 최적 ✓ 풍부한 커뮤니티와 문서 ✓ YAML 기반의 읽기 쉬운 문법 ✓ 멀티 벤더 지원 ✓ 멱등성(Idempotency) 보장

단점

✗ SSH 연결 오버헤드로 인한 속도 제한 ✗ 복잡한 로직 구현 시 Python 코드 필요 ✗ 실시간 모니터링에는 부적합

라이센스

GPL v3

링크

  • 공식 사이트: https://www.ansible.com
  • GitHub: https://github.com/ansible/ansible
  • 문서: https://docs.ansible.com/ansible/latest/network/