1. 程式人生 > >用Ansible配置思科網絡設備

用Ansible配置思科網絡設備

ansible cisco

ansible:Ansible is Simple IT Automation”——簡單的自動化IT工具。這個工具的目標有這麽幾項:讓我們自動化部署APP;自動化管理配置項;自動化的持續交付。Ansible一般通過ssh協議實現linux服務器的管理,但從2.1版本開始,ansible core modules加入了對cisco ios設備的支持,對應的模塊為ios_command, ios_config, ios_template。以下拓撲圖是用於ansible測試的的

技術分享

其中右上角的LinuxCacti裏面是通過橋接至EVE-NG,此服務器裏集成了cacti、ansible等工具。

技術分享

一、 思科設備要設定ssh登錄

aaa new-model

username admin privilege 15 password 7 142713181F1325392066626771

ip domain name vmise.com

crypto key generate rsa modulus 1024

line vty 0 4

transport input telnet ssh


二、ansible book

1.建立switchhost文件,switchhost文件內容格式如下:

技術分享

備註:router表示設備分組,此可以自行定義,這個名字要跟後面的配置文檔的名稱一至。如下圖就表示兩個分組

技術分享

2.建立三種類型的配置方案,文件結構如下:

技術分享 技術分享 技術分享

3. 配置設定以router_acl這個為案例說明,router_acl目錄結構如下:

技術分享

4. router_acl中的tasks(即是需要執行的任務),配置如下:

[root@host05 tasks]# cat main.yml

---

- name: description cli

set_fact:

cli:

host: "{{ansible_host}}"

username: "{{username}}" --->從vars中配置的傳過來參數

password: "{{password}}" --->從vars中配置的傳過來參數

transport: cli

- name: configure acl

ios_template:

src: config.j2 ---->templates裏的配置文件,即是路由器的配置腳本

provider: "{{cli}}"

- name: save running-config

ios_command:

commands: write memory ----> 配置保存命令

provider: "{{cli}}"

register: write_output


5. router_acl的vars配置文檔

[root@host05 vars]# cat main.yml

username: admin ----->定義用戶名

password: Password.123 ----->定義用戶密碼

router_interface: --->定義路由器接口組名稱,後面執行作任務是要調用

- Ethernet1/0

- Ethernet1/1

- Ethernet1/2

6.router_acl中的templates 部分配置config.j2,即是路由器配置腳本

[root@host05 templates]# cat config.j2

ip access-list extended ingress-filter

remark Unassigned IANA address

1 deny ip 1.0.0.0 0.255.255.255 any

2 deny ip 2.0.0.0 0.255.255.255 any

3 deny ip 5.0.0.0 0.255.255.255 any

4 deny ip 7.0.0.0 0.255.255.255 any

5 deny ip 23.0.0.0 0.255.255.255 any

6 deny ip 27.0.0.0 0.255.255.255 any

7 deny ip 31.0.0.0 0.255

{% for interface in router_interface %} --->router_interface調用vars裏的參數

interface {{interface}}

ip access-group ingress-filter in

{% endfor %}

7.router_acl.yml的配置如下:

[root@host05 ansible]# cat router_acl.yml

---

- hosts: router --->設備組,就是switchhost配置組

gather_facts: no

connection: local

roles:

- router_acl

8. 執行腳本命令 ansible-playbook -i switchhost router_acl.yml ,如成功如下圖所示

技術分享

本文出自 “無心傷害” 博客,請務必保留此出處http://arckyli.blog.51cto.com/13756/1979039

用Ansible配置思科網絡設備