【网工Ansible】第 5 节: Ansible Quick Start: Raw Playbooks and Cisco IOS Command module Playbooks

重点总结:ios_command 模块用用于用户模式(非enable特权模式)的命令,其下的命令authorize:yes将使进入特权模式(enable模式);ios_config模块用于配置模式下的命令。

1.get_arp

剧本:

---
- name: Get ARP information
  hosts: all
  gather_facts: false
  
  tasks:
    - name: show arp
      raw: "show arp"
      
      #我们将把返回的输出存储在一个名为“print_output”的变量中。
      register: print_output
       
       #打印输出“print_output”
    -  debug: var=print_output.stdout_lines

      

请注意,此剧本不包含用户名和密码,故需要再命令尾部指定用户并要求提示密码。

若在hosts文件中添加如下代码则可省略后面的-u、-k。实际上,若果添上,他会使得本能跳过的SSH密码输入又弹出提示。

此命令也可添加检索条件:

2.get_mac_address

剧本:

---
- name: Get MAC information
  hosts: all
  gather_facts: false
  
  tasks:
    - name: show mac address table
      raw: "show mac address-table"
      
      register: print_output
      
    -  debug: var=print_output.stdout_lines

输出:

3.get_version

(检索设备的显示版本信息并保存)

我们可以使用的另一个很酷的 Ansible 模块是 iOS command。官方文档查看:

cisco.ios.ios_command module – Module to run commands on remote devices. — Ansible Community Documentation

说明摘:

  • 该模块不支持在配置模式下运行命令。请使用ios_config配置 IOS 设备。

其他思科IOS模块总集:Index of all Modules — Ansible Community Documentation

【保存输出文件】

我所做的就是添加此代码以将输出保存到文件中。所以任务的名称是“save output to file”。我们将复制标准输出的内容。“inventory_hostname”是内置的ansible变量。意为:“在播放中迭代的“当前”主机的清单名称。”,“因此,我将使用库存主机名来保存基于设备名称的输出。”

相较于在实行剧本后查看实时返回结果,通过保存的输出文件进行查看是一个更好的选择。

Ansible 有所谓的魔法变量(Magic Variables)。因此,即使您没有自己定义这些变量,Ansible 也会自动为您提供一些变量。官方文档参见:Special Variables — Ansible Community Documentation

注意!!!:必须先创建指定保存的目标位置目录,此处为“./output”,必须保证该目录在命令执行时存在。

4.get_run

部分剧本:

灰色背景的部分,意思是“我们将进入特权模式。”并将在enable模式下运行后面设定的命令 show run。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值