使用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目錄,並且該目錄下有以日期時間為字尾的備份檔案,說明備份成功。
&n