티스토리 뷰

Ansible

[Ansible] Ansible Backup Cisco IOS Switch Config

Network && Devops 2019. 12. 27. 18:08
반응형

 

Ansible은 누구나 쉽게 인프라를 관리할 수 있는 자동화 도구로 Agent가 필요하지 않으며, 특히 네트워크 장비를 가장 완벽하게 관리할 수 있는 자동화 도구이다.

Ansible은 기타 다른 자동화 도구와는 다르게 Agent가 필요없으며, 기본적으로 SSH를 통한 암호화 통신을 통해 원격 접근 및 자동화 관리가 가능하다. 따라서 Cisco 스위치를 Ansible을 이용해서 관리하기 위해서는 SSH 통신이 되도록 우선 설정이 되어 있어야 한다.
  Cisco 장비 SSH 설정방법은 아래 블로그 내용을 확인해 보면 된다.


Cisco Switch SSH 접속 설정 하기


네트워크 엔지니어로 가장 중요한 스위치 Config 백업을 Ansible을 활용하여 구성하는 방법에 대해 설명해보도록 하겠다.  

1. Ansible host에 스위치 정보 입력.
 - vi /etc/ansible/hosts

## Host 그룹 및 host 지정
## []에 그룹명을 지정해 주고 하위에 hostname 및 host ip 정보등을 입력해 주면 그룹에 host가 등록이 된다.
[CiscoSW]
SW01 ansible_host=192.168.254.101

## 그룹에 대한 환경 변수 등록.
## [groupname:vars]형식으로 작성
[CiscoSW:vars]
ansible_network_os=ios
ansible_user=backup             ## User name 입력.
ansible_password=backupPW       ## User password 입력.
ansible_authorize=yes
ansible_connection=network_cli  
ansible_become=yes
ansible_become_method=enable
ansible_become_pass=enablePW    ## enable passwd 입력. ansible-vault를 이용하여 패스워드 등 
                                ## 중요한 정보를 암호화 하여 처리할 수 있다. 
                                ## vault에 대해서는 나중에 별도 섹션으로 포스팅하도록 하겠다.
                                

 

2. Ansible 스위치 Config Backup Playbooks 작성.
   - vi /etc/ansible/playbooks/swbackup.yaml 

---
- hosts: CiscoSW
  gather_facts: no

  tasks:
    
    - name: Backup switch (ios)
      ios_config:
        backup: yes
      register: backup_ios_location
      when: ansible_network_os == 'ios'

    - name: Create backup dir    ## 백업 Directory 경로 설정(없을 경우 자동 생성)
      file:
        path: "/tmp/backups/{{ inventory_hostname }}"
        state: directory
        recurse: yes

    - name : copy switch config backup to backup directory
      copy:
       src: "{{ backup_ios_location.backup_path }}"
       dest: "/tmp/backups/{{ inventory_hostname }}/{{ inventory_hostname }}_running-config.txt"

 

3. ansible-playbooks 실행

[root@ansible]# ansible-playbook /etc/ansible/playbooks/swbackup.yaml 


4. 실행 결과

[root@ansible]# ansible-playbook /etc/ansible/playbooks/swbackup.yaml 

PLAY [CiscoSW] ***************************************************************************************************

TASK [Backup switch (ios)] ***************************************************************************************
changed: [SW01]

TASK [Create backup dir] *****************************************************************************************
changed: [SW01]

TASK [copy switch config backup to backup directory] *************************************************************
changed: [SW01]

PLAY RECAP *******************************************************************************************************
SW01                       : ok=3    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
[root@ansible]#

 

5. 백업 파일 확인.

[root@ansible]# cd /tmp/backups/SW01/
[root@office_zabbix SW01]# ls -al
drwxr-xr-x 2 root root    37 1227 18:03 .
drwxr-xr-x 4 root root    31 1227 18:03 ..
-rw-r--r-- 1 root root 10506 1227 18:03 SW01_running-config.txt
[root@ansible]#

  /tmp/backups/SW01/ 경로에 SW01_running-config.txt 이름으로 스위치 Config가 백업 된 것을 확인할 수 있다.

위에서는 1대의 장비만 가지고 구성하였는데 수십대 및 수백대의 장비가 있다고 하더라고 Hosts 파일에 등록 해 놓으면 아주 편하게 스위치 장비를 백업 할 수 있다. 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함