1. 程式人生 > >使用ansible對思科交換機備份

使用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