先決條件
- 了解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目錄,並且該目錄下有以日期時間為后綴的備份文件,說明備份成功。