用Ansible配置思科网络设备

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Ansible配置思科网络设备相关的知识,希望对你有一定的参考价值。

      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(即是需要执行的任务),配置如下:

[[email protected] 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配置文档

[[email protected] vars]# cat main.yml 

username: admin              ----->定义用户名

password: Password.123       ----->定义用户密码

router_interface:            --->定义路由器接口组名称,后面执行作任务是要调用

  - Ethernet1/0

  - Ethernet1/1

  - Ethernet1/2

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

[[email protected] 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的配置如下:

[[email protected] 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配置思科网络设备的主要内容,如果未能解决你的问题,请参考以下文章

使用带有Ansible-Vault的加密变量进行网络自动化

思科2960交换机配置命令有哪些

思科设备的远程管理

思科DHCP如何配置中继

思科交换机怎么配置登录失败处理

思科交换机STP配置