一、模块简介

ios_command此模块将任意命令发送到ios节点并返回设备读取的结果
此模块不支持在配置模式下使用,即只支持在用户模式>和特权模式#下使用

官方文档地址:https://docs.ansible.com/ansible/latest/modules/ios_command_module.html#ios-command-module

二、模块参数

auth_pass   #进入特权模式使用的密码,如果authorize=no,则不检索此特权密码;
#如果authorize=yes,而auth_pass不填,则使用环境变量ANSIBLE_NET_AUTH_PASS的值作为特权密码进行验证
authorize #no or yes,是否进去特权模式,默认使用环境变量ANSIBLE_NET_AUTHORIZE的值,默认在用户模式下
command #【必填项】需要发送到远端执行的命令列表,如果遇到需要回答提示,则在命令后使用参数prompt:提示关键字,使用参数answer:'y'回答或者answer:'\r',或者answer:'n'
interval #重试之间的等待间隔时间,默认是1s
wait_for #在继续前进之前,任务会等待条件成立,如果不成立,则任务失败。
match #与wait_for配合使用,默认是all,可选参数all或any,match=all表示必须满足wait_for里的所有条件;match=any表示只要满足wait_for里的任一条件即可
retries #重试次数,默认10次
provider #包含如下dict对象
auth_pass #进入特权模式的密码,与上面auth_pass效果一样
authorize #no or yes,默认no,与上面authorize效果一样
host #【必填项】填写域名或者ip地址,需要连接的设备地址,{{ansible_host}}代表遍历/etc/ansible/hosts文件里每行中带有ansible_host的主机
username #远程登录用户名,默认使用环境变量ANSIBLE_NET_USERNAME
password #远程登录密码,默认使用环境变量ANSIBLE_NET_PASSWORD
port #默认22端口
ssh_keyfile #ssh密钥文件位置,默认使用环境变量ANSIBLE_NET_SSH_KEYFILE
timeout #超时时间,默认10s

三、模块使用注意事项

   暂无

  
四、模块使用实例

  4.1 查看ios组里的主机的版本号

    a.编辑/etc/ansible/hosts文件,新增如下内容

[ios]
r5 ansible_host=192.168.xx.45
r6 ansible_host=192.168.xx.46
r7 ansible_host=192.168.xx.47
r8 ansible_host=192.168.xx.48

    b.编写ansible playbook剧本nano ios_example01.yaml,严格按照如下格式

---
- name: ios command module example
hosts: ios
connection: local
gather_facts: no tasks:
- name: check ios version
ios_command:
commands: show version
provider:
username: cisco
authorize: yes
auth_pass: cisco
host: "{{ansible_host}}"
password: cisco
register: show_version_output - name: print the show version
debug:
msg: "{{show_version_output.stdout_lines}}"

    c.如果第一次登录设备,需要修改nano /etc/ansible/ansible.cfg文件里的host_key_checking = False,即关闭主机密钥检测

    d.执行剧本:ansible-playbook iso_example01.yaml,如下部分截图

  4.2 清除ios组里的所有主机的ether 0/0接口信息计数,并自动根据提示,回复y执行

    步骤与3.1的例子一模一样,差别在于b点的playbook剧本内容,剧本内容如下:

---
- name: ios command module example
hosts: ios
connection: local
gather_facts: no tasks:
- name: run show version and check to see if output contains IOS
ios_command:
commands:
- command: 'clear counters Ethernet0/0 '
prompt: 'Clear "show interface" counters on this interface \[confirm\]'
answer: 'y'
- command: 'clear counters Ethernet0/1'
prompt: '[confirm]'
answer: "\r" provider:
host: "{{ansible_host}}"
username: cisco
password: cisco
authorize: yes
auth_pass: cisco
register: show_version_output - name: print the show version
debug:
msg: "{{show_version_output.stdout_lines}}"

五、模块返回内容字段介绍

failed_conditions   #失败的条件列表,返回列表形式
stdout #远程执行命令的返回结果,返回列表形式
stdout_lines #多条远程执行命令,将每个命令的返回结果列表1在一一存入列表2中

ansible模块介绍之ios_command的更多相关文章

  1. ansible模块介绍之ios_facts

    一.模块简介 收集运行IOS系统的(此处指思科的ios)的远端设备信息 二.模块参数 auth_pass #特权密码,如果参数authorize=no,则不会检索此密码,如果任务task不指定,则默认 ...

  2. Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...

  3. ansible的介绍和一些基本模块介绍

    必须保证ansible工作站与各个node实现无密码ssh登入 ①:192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible.   ②:文件服务器1到代理服务器3 - 使用 19 ...

  4. Ansible 常见模块介绍

    目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...

  5. Ansible常用模块介绍及使用(2)

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)–技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几个 ...

  6. 第二十六章 ansible主要模块介绍

    一.Ansible模块回顾 1.command模块 [root@m01 ~]# ansible web01 -m command -a 'free -m' 2.shell模块 #支持管道符这种特殊符号 ...

  7. Ansible简单介绍(一)

    一 :ansible简单介绍 此名取自 Ansible 作者最喜爱的<安德的游戏> 小说,而这部小说更被后人改编成电影 -<战争游戏>. 官网地址:https://www.an ...

  8. 第二十七章 ansible变量介绍

    一.ansible变量介绍 1.概念 变量提供了便捷的方式来管理Ansible playbook的每一个项目中的动态值,比如nginx-1.6.3这个软件包的版本,在其它地方或许会反复使用,那么如果讲 ...

  9. webkit模块介绍

    一.Webkit模块   用到的第三方库如下:   cairo 一个2D绘图库 casqt Unicode处理用的库,从QT中抽取部分代码形成的 expat 一个XML SAX解析器的库 freety ...

随机推荐

  1. 嵌入式Linux开发环境搭建,问题ping、nfs的解决

    一. 嵌入式软件层次 1) Bootloader->引导加载程序 整个嵌入式系统的加载启动任务完全交给Bootloader完成,它的主要任务是将内核映象从硬盘读到RAM中,然后跳转到内核入口启动 ...

  2. Git更改提交

    提交记录我们的工作历史记录,提交自身是一成不变的.Git提供了几个工具和命令,抓门用来帮助修改完善版本库中的提交. 实际工作中存在很多情况需要我们去修改或返工某个提交或者整个提交序列: 1,可以在某个 ...

  3. C#7.0 新增功能

    连载目录    [已更新最新开发文章,点击查看详细] C# 7.0 向 C# 语言添加了许多新功能 01 out 变量 支持 out 参数的现有语法已在此版本中得到改进. 现在可以在方法调用的参数列表 ...

  4. JVM执行原理

    ,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写 ...

  5. web-inf与meta-inf

    /WEB-INF/web.xml Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则. /WEB-INF/classes/包含了站点所有用的 class 文件,包括 ser ...

  6. 【Android Studio】类名字右下角红色的 J 【待解决】

    问题如下图所示: 正在寻找结解决方法--

  7. Eclipse "R cannot be resolved"问题

    前两天 Eclipse 又遇到了这个问题.网上找了不少,不过最终还是没能解决我的问题,无奈重装了 Eclipse…… 搜索中找到了下面这几篇文章,常见的解决方法都在这里,还是不错的,分享一下: htt ...

  8. go 学习笔记之工作空间

    搭建好 Go 的基本环境后,现在可以正式开始 Go 语言的学习之旅,初学时建议在默认的 GOPATH 工作空间规范编写代码,基本目录结构大概是这个样子. . |-- bin | `-- hello.e ...

  9. vue在窗口大小改变时强制刷新组件的方法

    mounted () { window.onresize = () => { return (() => { this.$forceUpdate(); })() } }

  10. LR有的JMeter也有之一“参数化”

    酝酿了几天,一直想写点JMeter的东西,算是对学习东西的一个整理.:) 恩,一直觉得自己领悟能力不强,别人写的东西总要看老半天也不懂.好吧!一惯的傻瓜的方式(大量的截图+参数说明)嘻嘻. 参数化:简 ...