设为首页 收藏本站
查看: 4506|回复: 0

[经验分享] 用Ansible配置思科网络设备

[复制链接]

尚未签到

发表于 2018-7-29 09:05:20 | 显示全部楼层 |阅读模式
  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测试的的
DSC0000.png

  其中右上角的LinuxCacti里面是通过桥接至EVE-NG,此服务器里集成了cacti、ansible等工具。
DSC0001.png

  一、 思科设备要设定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文件内容格式如下:
DSC0002.png

  备注:router表示设备分组,此可以自行定义,这个名字要跟后面的配置文档的名称一至。如下图就表示两个分组
DSC0003.png

  2.建立三种类型的配置方案,文件结构如下:
DSC0004.png    DSC0005.png    DSC0006.png

  3. 配置设定以router_acl这个为案例说明,router_acl目录结构如下:
DSC0007.png

  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 ,如成功如下图所示
DSC0008.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-542827-1-1.html 上篇帖子: 利用Ansible部署运行Apache(http)的Docker容器 下篇帖子: 自动化运维工具Ansible的用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表