称为临时命令,简单说,就是在命令行界面,直接经过一条ansible命令,去指定主机执行指定指令,功能有限 例如:ansible localhost -m command -a "df -h"
Usage: ansible <host-pattern> [options]python
<host-pattern> #主机或主机组,被执行的客户端设备,必填项 [option]: -m module #【经常使用】模块,指定要执行使用的模块 -a #【经常使用】代模块参数,使用-m指定某个模块,该模块可能须要跟某些参数,此时参数就放在-a 后面的双引号内" "。不加-m 模块,直接使用-a 指默认指定了-m command 模块 -u USERNAME #--user=USERNAME:指定远程主机以USERNAME运行命令 -k #--ask-pass SSH:认证密码,回车手动输入密码 -c CONNECTION #--connection=CONNECTION:指定链接方式,可用选项paramiko,ssh,local -f NUM #--forks=NUM:并发线程数,默认是5个线程 --list-hosts #列出符合条件的主机列表,不执行任何命令 -v #--verbose:输出更详细的执行过程信息 -vvv #可获得执行过程全部信息 -i PATH #--inventory(清单,即主机列表文件路径)=PATH:指定inventory(清单)信息,默认路径是/etc/ansible/hosts --private-key=PRIVATE_KEY_FILE #指定密钥文件 -M DIRECTORY #--module-path=DIRECTORY:指定模块存放路径,默认/usr/share/ansible/,也可经过ANSIBEL_LIBRARY设定默认路径 -K #--ask-sudo-pass sudo:用户的密码(--sudo时使用) -o #--one-line:标准输出至一行 -s #--sudo:至关于linux系统下的sudo命令 -t DIRECTORY #--tree=DIRECTORY:输出信息至DIRECTORY目录下,结果文件以远程主机命名 -T SECONDS #--timeout=SECONDS:指定链接远程主机的最大超时,单位是秒 -B NUM #--background=NUM:后台执行命令,超过NUM秒后停止正在执行的任务 -P NUM #--poll=NUM:按期返回后台任务进度 -l SUBSET #--limit=SUBSET:指定运行主机 -l ~REGEX #--limit=~REGEX:指定运行主机(正则)
3.1 命令用法linux
ansible-doc [options] [module...]
3.2 options选项ios
--version #显示工具版本号 -h #显示该help说明 -M MODULE_PATH #--module-path=MODULE_PATH指定ansible模块的默认加载目录 -l #--list:列出全部可用模块 -s #--sinppet:只显示playbook说明的代码段 -v #等同于--version,显示工具版本号
例如:ansible-doc -l #列出全部可用模块
3.3 module选项网络
例如:ansible-doc yum #查看yum模块的使用说明
实例1:测试远端网络设备的ssh服务是否能正常访问并发
命令:ansible 192.168.62.41 -m ping -U cisco -c local -kssh
#此命令,各参数解析 #192.168.62.41 #此ip已存在/etc/ansible/hosts文件,并开启了inventory功能(/etc/ansible/ansible.cfg) -m ping #使用ping模块,用于测试远端服务ssh的可登录性 -U cisco #以用户名cisco登陆远端主机 -c local #local指定从本地执行python脚本,默认是在远端执行python脚本,所以采用默认链接方式,远端必须是有python环境的 #所以远端如果网络设备,由于不可能还有python环境,所以都须要指定采用本地链接方式-c local -k #回车,输入ssh密码
实例2:获取远端网络设备的设备配置信息工具
命令:ansible 192.168.62.41 -c local -m ios_facts -a 'auth_pass=cisco gather_subset=all authorize=yes' -u cisco -k测试
-c local #使用本地链接,默认是远端连接 -m ios_facts #ios_facts是思科ios的设备信息模块 -a #模块里的参数 -a 'auth_pass=cisco gather_subset=all authorize=yes' auth_pass #enable密码 gather_subset #收集给定子集的范围,如收集全部all;只收集配置信息config;不仅收集硬件信息!hardware -u username #登陆设备用户名 -k #回车输入设备登陆密码