ansible - 如何使用 ansible playbook 运行合规性检查
问题描述
我有一本旨在在防火墙上运行合规性的剧本。然而,我对 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 服务器检查已标记为 PASS 合规性检查)因此被 Splunk 或 Elasticsearch 捕获。
• 但是,如果任务(系统日志服务器检查)针对防火墙运行并且输出与 files/syslog_config 的内容不同。应打印失败消息(即此控制系统日志服务器检查已标记为失败,并且缺少以下配置行(设置系统系统日志主机 192.168.100.70 源地址“{{inventory_hostname}}”。),因此由 Splunk / ELK 捕获。
• 在某些情况下,(目前它不是yaml 文件的一部分),任务(即控制检查)可能是防火墙中需要不存在的配置行。在这种情况下,如果找不到,将打印出通过消息。
我需要在 yaml 文件中添加哪些额外的代码行(即条件语句)才能使其工作?
上面的剧本是我的尝试,但它没有按预期工作。
解决方案
推荐阅读
- c# - C# - 展平嵌套的 Json
- terraform - 刷新状态时出错:状态快照由 Terraform v0.15.0 创建,比当前 v0.12.18 更新
- sql - 从 GDELT 查询中提取主题或文本的 URL
- r - 在 R 中,如何仅使用加法公式在分类变量之间添加手动交互?
- c# - C# 和 C++ 数据封送处理之间的内存泄漏
- javascript - React Native WebView 渲染空白页
- cordova - 离子 OneSignal 通知中断
- webpack - (如何)你可以在 Webpack 编译钩子中操作 AST 吗?
- spring - 尝试使用 id strategy = GenerationType.SEQUENCE 且现有列标记为 @CreationTimestamp 的实体时出现意外行为
- linkedin - Linkedin API 发布预览问题