一、模块简介

  收集运行IOS系统的(此处指思科的ios)的远端设备信息

 

二、模块参数



auth_pass   #特权密码,如果参数authorize=no,则不会检索此密码,如果任务task不指定,则默认使用环境变量ANSIBLE_NET_AUTH_PASS代替
authorize   #是否进入特权模式,yes是;no不是。如果任务task不指定,则默认使用环境变量ANSIBLE_NET_AUTHORIZE 代替
gather_subset   #限定取的子集范围,可跟范围:all(所有设备信息),config(配置信息),hardware(硬件信息),interfaces(接口信息),默认是!config不收集配置信息
provider    #包含连接详情的对象,此处称它位母参数,可接如下子参数
    auth_pass   #与上面效果一致
    authorize   #与上面效果一致
    host        #【必填】指定远程设备的ip地址或名字,用于传输的目的地址
    username    #远程设备登录用户名
    password    #远程设备登录密码
    port        #ssh的端口,默认22
    ssh_keyfile #指定用于与远程设备认证用的ssh密钥,填写的是密钥存放在本地路径,如果任务task不指定,则默认使用环境变量ANSIBLE_NET_SSH_KEYFILE代替
    timeout     #超时时间,默认10s



三、模块使用注意事项

   暂无

 

四、模块使用实例

  需求1:收集远端设备硬件信息(使用ad-hoc方式)

  命令:ansible 192.168.62.41 -c local -m ios_facts -a "auth_pass=cisco authorize=yes gather_subset=hardware" -u cisco -k

  结果:

 

ansible 高级 ansible gather_facts_python

 

  需求2:收集远端设备硬件信息(使用playbook方式)

  步骤1:创建ios_facts_info.yaml文件

  步骤2:编辑vim ios_facts_info.yaml文件(此处使用vim是因为他可以对yaml的关键字高亮显示,对于排除格式错误有很大帮助),并保存



---
  - hosts: 192.168.62.41
    connection: local

    tasks:
      - name: use ios_facts to gather info
        ios_facts:
            gather_subset: hardware
            authorize: yes
            auth_pass: cisco
            provider:
              username: cisco
              password: cisco
              host: 192.168.62.41
        register: facts_output
        
      - name: debug the result
        debug:
            msg: "{{facts_output}}"



 

  步骤3:执行剧本  ansible-playbook ios_facts_info.yaml

ansible 高级 ansible gather_facts_ios_02

ansible 高级 ansible gather_facts_python_03

 

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



ansible_net_all_ipv4_addresses  # 设备上所有ipv4的地址,返回值list列表形式
ansible_net_all_ipv6_addresses  # 设备上所有ipv6的地址,返回值list列表形式
ansible_net_config  # 设备上的配置信息,返回值是string字符串
ansible_net_filesystems # 设备上的文件系统,返回值是list列表形式,如,unix系统
ansible_net_filesystems_info  #设备上的文件信息的哈希值,返回值是dict字典形式,如空闲和总空间
ansible_net_gather_subset   #收集设备上的子集范围,返回值list列表形式,eg:["hardware", "default", "interfaces", "config"]
ansible_net_hostname      #显示设备主机名,返回值string字符串
ansible_net_image         #设备正在运行的镜像文件全路径,返回值是string字符串
ansible_net_interfaces    #设备上的接口配置信息,返回值是dict字典
ansible_net_memfree_mb    #设备的可用存储空间,单位Mb,返回值integer数值形式
ansible_net_memtotal_mb   #设备的总共存储空间,单位Mb,返回值integer数值形式
ansible_net_model         #设备型号,返回值string字符串
ansible_net_serialnum     #设备序列号,返回值string字符串
ansible_net_stacked_models  #每台设备的堆叠产品型号,返回值list列表
ansible_net_stacked_serialnums  #堆叠设备的每一台序列号,返回值list列表
ansible_net_version     #设备系统版本,返回值string字符串