Ansible 未能创建网络(EOS/IOS)剧本以验证STIG要求

Ansible 未能创建网络(EOS/IOS)剧本以验证STIG要求,ansible,yaml,stig,Ansible,Yaml,Stig,网络男孩假装“编码”…(此处插入笑声/羞耻)。 我试图创建一个充满STIG需求的剧本。我希望能够在网络设备上运行这个剧本,然后轻松地将结果复制到我们的.ckl文件中 如果不完全清楚的话,我使用Ansible还不到一个星期 *首先,我让ansible注册一个命令的输出。 *然后我希望ansible验证寄存器输出中的某些单词或短语。 *然后当然会有一个调试消息状态“不是查找{insert register here}”,或者“Open{insert register here}” 我似乎无法让“wh

网络男孩假装“编码”…(此处插入笑声/羞耻)。 我试图创建一个充满STIG需求的剧本。我希望能够在网络设备上运行这个剧本,然后轻松地将结果复制到我们的.ckl文件中

如果不完全清楚的话,我使用Ansible还不到一个星期

*首先,我让ansible注册一个命令的输出。 *然后我希望ansible验证寄存器输出中的某些单词或短语。 *然后当然会有一个调试消息状态“不是查找{insert register here}”,或者“Open{insert register here}”

我似乎无法让“when{this pharse}(is(or not)in)register.stdout”工作

使用Ansible 2.9

    - hosts: ios
  connection: network_cli
  gather_facts: no
  tasks:
    - name: Gather Username Configuration Lines
      ios_command:
        commands: show run | i username localadmin
      register: output
    - debug:
        msg:  "{{ output.stdout }}"
    - name: Username has correct privilege level
      block:
        - debug:
            msg: "{{ output.stdout }}"
      when: "'privilege 15' in output.stdout"
输出:

$ ansible-playbook ciscouserprivcheck.yml -u localadmin -k
SSH password: 

PLAY [ios] *************************************************************************************************************************************

TASK [Gather Username Configuration Lines] *****************************************************************************************************
ok: [Cisco1]

TASK [debug] ***********************************************************************************************************************************
ok: [Cisco1] => 
  msg:
  - username localadmin privilege 15 secret 5 $1$o1t2$VoZhNwm3bMfsTJ6e8RIdl1

TASK [debug] ***********************************************************************************************************************************
skipping: [Cisco1]

PLAY RECAP *************************************************************************************************************************************
Cisco1                     : ok=2    changed=0    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0 

学习新东西没有什么丢脸的。我们都这么做!代码对我来说似乎是正确的。您使用的是什么版本的Ansible?在CentOS 7(64位)Ansible 2.9.6配置文件=/home/localadmin/NetworkAutomation/Project20/Ansible.cfg上运行此配置文件=[u'/home/localadmin/.Ansible/plugins/modules',u'/usr/share/Ansible/plugins/modules']ansible python模块位置=/usr/lib/python2.7/site-packages/ansible可执行文件位置=/usr/bin/ansible python版本=2.7.5(默认值,2019年8月7日,00:51:29)[GCC 4.8.5 20150623(Red Hat 4.8.5-39)]尝试将调试器添加到剧本文件中。在
主机
连接
之间插入
调试器:已跳过
。当您下次运行playbook和Ansible时,应在最后一个
debug
任务停止,并请求您输入。您可以通过执行
(debug)>p task_vars['vars']['hostvars']['localhost']['output']['stdout']
检查
输出变量的值。不过,你应该用你的主机名替换localhost。学习新东西并没有什么丢脸的。我们都这么做!代码对我来说似乎是正确的。您使用的是什么版本的Ansible?在CentOS 7(64位)Ansible 2.9.6配置文件=/home/localadmin/NetworkAutomation/Project20/Ansible.cfg上运行此配置文件=[u'/home/localadmin/.Ansible/plugins/modules',u'/usr/share/Ansible/plugins/modules']ansible python模块位置=/usr/lib/python2.7/site-packages/ansible可执行文件位置=/usr/bin/ansible python版本=2.7.5(默认值,2019年8月7日,00:51:29)[GCC 4.8.5 20150623(Red Hat 4.8.5-39)]尝试将调试器添加到剧本文件中。在
主机
连接
之间插入
调试器:已跳过
。当您下次运行playbook和Ansible时,应在最后一个
debug
任务停止,并请求您输入。您可以通过执行
(debug)>p task_vars['vars']['hostvars']['localhost']['output']['stdout']
检查
输出变量的值。不过,您应该用主机名替换localhost。