如何使用ansible剧本运行合规性检查
我有一个剧本,设计用于在防火墙上运行法规遵从性。然而,我对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
---
- 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是什么样子的我已经设法解决了它,它看起来是这样的。。。。剩下的唯一一件事是我需要添加什么模块来显示成功和失败的内容?现在看起来是这样的,我需要做什么来显示通过和失败的内容?