使用ansible對思科交換機備份


先決條件

- 了解ansible基本操作

- 了解網絡設備相關操作

- 了解linux相關操作

 

安裝

安裝EPEL
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

 

安裝ansible
yum install ansible

 

確認ansible正確安裝
ansible --version

 

 

 

 測試ssh連接

在使用ansible之前,測試一下ssh連接網絡設備,保證網絡設備的ssh協議開啟,賬號密碼正確。

1是賬號,2是網絡設備的ip。

 

創建inventory

inventory文件用來存放設備的相關信息,如ip地址、用戶名、密碼等。

文件名字可以叫inventory,也可以叫任何其它的名字,不加后綴。

文件內容如下:

1. 創建一個switches組,包含兩台交換機, 第一列是交換機名(名字隨便起),第二列的ansible_host是設備ip地址;

2. vars下面配置了switches組通用的變量,ansible_connection是連接方式,之后是操作系統類型ios,最后是登錄的用戶名。

[switches]
cisco_2960_06 ansible_host=x.x.x.x
cisco_2960_07 ansible_host=x.x.x.x

[switches:vars]
ansible_connection=network_cli
ansible_network_os=ios
ansible_user=username

 

創建playbook

playbook的文件名后綴必須以.yml或.yaml結尾,我個人習慣前者。

內容如下:

name:playbook的名字,一般用於描述整個playbook的作用即可;

connection:連接方式,cisco ios必須用network_cli;

gather_facts:ansible會自動收集遠端設備的信息,這個操作會消耗很長時間,一般沒有特殊需求就設置為false關閉;

hosts:指定主機范圍,這里是all,所有主機;

tasks:真正執行的任務都在這下面;

ios_config:這是一個ansible的模塊,用來對cisco的ios設備進行配置的修改、備份。

backup:設置為yes,則會啟用該模塊的備份功能,會在運行playbook的當前目錄下自動創建一個backup目錄,配置會自動備份到該目錄下。

---

- name: Network Getting Started First Playbook
  connection: network_cli
  gather_facts: false
  hosts: all
  tasks:

    - name: backup ios devices
      ios_config:
        backup: yes

 

運行playbook

ansible-playbook -i inventory -k -e ansible_network_os=ios first_playbook.yml

ansible-playbook 是可執行程序,用於執行playbook文件;

-i 調用inventory文件,這是之前配置的存放設備信息的文件;

-k 運行時提示輸入密碼。推薦使用這個參數,不要在inventory里存放設備密碼,都是明文的,不安全;

-e 是extra的意思,額外參數。這里指定了設備操作系統版本ios(此處不是必須的,只是為了演示這個參數的用法);

最后一個參數是playbook文件的名字,此處是first_playbook.yml。

 

輸出如下:

 

 首先,由於指定了-k參數,系統會提示你輸入SSH密碼,這個密碼是網絡設備的登錄密碼。

最后顯示ok,說明執行成功,沒有報錯。

 

查看當前目錄,可以看到ansible自動創建了backup目錄,並且該目錄下有以日期時間為后綴的備份文件,說明備份成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM