如何使用ansible剧本运行合规性检查

如何使用ansible剧本运行合规性检查,ansible,Ansible,我有一个剧本,设计用于在防火墙上运行法规遵从性。然而,我对ansible的了解并没有扩展到配置变量和条件语句 这是我目前的剧本: --- - name: Juniper SRX configuration compliance checks hosts: juniper gather_facts: false tasks: - name: Syslog server check junos_config: src: files/syslog_config

我有一个剧本,设计用于在防火墙上运行法规遵从性。然而,我对ansible的了解并没有扩展到配置变量和条件语句

这是我目前的剧本:

---
- name: Juniper SRX configuration compliance checks 
  hosts: juniper
  gather_facts: false
  tasks:
  - name: Syslog server check
    junos_config:
      src: files/syslog_config
      comment: Appropriate Syslog server configured 
  - debug:
      var: task

  - name: print success
    debug:
      msg: Syslog server check - OK
    when: not {{ task.changed }}

  - name: print failed
    debug:
      msg: Syslog server check - failed
    when: "{{ task.changed }}"

  - name: Admin credentials 
    junos_config:
      src: files/admin_user
      comment: admin user created and confirmed 


  - name: NTP check 
    junos_config:
      src: files/NTP server
      comment: correct NTP server 

  - name: idle timeout check 
    junos_config:
      src: files/idle timeout
      comment: idle timeout confirmed 
这就是我想要实现的目标:

•如果任务(Syslog服务器检查)在防火墙上运行,且输出与文件/Syslog_config的内容类似,则应打印通过消息(即此控制Syslog服务器检查已标记为通过合规性检查),并因此由Splunk或Elasticsearch捕获

•但是,如果任务(Syslog server check)是针对防火墙运行的,并且输出与文件/Syslog\u config的内容不同。故障消息(即,此控制系统日志服务器检查已标记为故障,并且缺少以下配置行(设置系统系统系统日志主机192.168.100.70源地址“{inventory_hostname}”))应打印出来,并由Splunk/ELK捕获

•在某些情况下(目前不是yaml文件的一部分),任务(即控制检查)可能是需要从防火墙中删除的配置行。在这种情况下,如果找不到,将打印pass消息

我需要向yaml文件中添加哪些额外的代码行(即条件语句)才能使其正常工作


上面的剧本是我的尝试,但它没有按预期工作。

1)将
register:config\u result
添加到第一个任务中。2) 在下一个任务中调试注册的var 3)运行您的剧本4)编辑您的问题,并向我们展示您的输出中的var是什么样子的我已经设法解决了它,它看起来是这样的。。。。剩下的唯一一件事是我需要添加什么模块来显示成功和失败的内容?现在看起来是这样的,我需要做什么来显示通过和失败的内容?1)将
register:config_result
添加到第一个任务中。2) 在下一个任务中调试注册的var 3)运行您的剧本4)编辑您的问题,并向我们展示您的输出中的var是什么样子的我已经设法解决了它,它看起来是这样的。。。。剩下的唯一一件事是我需要添加什么模块来显示成功和失败的内容?现在看起来是这样的,我需要做什么来显示通过和失败的内容?