You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Ansible定位XML STIG指定VULN并修改STATUS与FINDING_DETAILS?

解决Ansible定位并修改DISA STIG XML检查表的问题

你的核心问题是XPath定位逻辑不对,无法关联到目标<VULN>块。要实现需求,需先通过<ATTRIBUTE_DATA>的文本值筛选出对应的<VULN>节点,再修改其下的<STATUS>和<FINDING_DETAILS>字段。

正确的Ansible任务实现

1. 修改目标VULN的STATUS字段

- name: Update STATUS for target STIG rule
  local_action:
    module: community.general.xml
    path: files/DKFX-VMH-502P_ESX7.0_STIG.ckl
    xpath: "/CHECKLIST/STIGS/iSTIG/VULN[STIG_DATA/ATTRIBUTE_DATA='SRG-OS-000355-VMM-001330']/STATUS"
    value: "Finding"  # 替换成你需要的状态,比如NotAFinding/Open
    state: present

2. 修改目标VULN的FINDING_DETAILS字段

- name: Update FINDING_DETAILS for target STIG rule
  local_action:
    module: community.general.xml
    path: files/DKFX-VMH-502P_ESX7.0_STIG.ckl
    xpath: "/CHECKLIST/STIGS/iSTIG/VULN[STIG_DATA/ATTRIBUTE_DATA='SRG-OS-000355-VMM-001330']/FINDING_DETAILS"
    value: "扫描发现该规则不符合要求,需调整XXX配置项"  # 替换成实际检查详情
    state: present

关键逻辑说明

  • XPath筛选规则:VULN[STIG_DATA/ATTRIBUTE_DATA='目标值'] 用来精准匹配包含指定<ATTRIBUTE_DATA>的<VULN>块,确保只修改目标条目。
  • 模块参数:value 是要设置的新内容,state: present 确保节点存在并更新其值。

如果需要批量处理多个规则,可以把目标ID和字段信息放到循环变量中:

- name: Batch update STIG checklist
  local_action:
    module: community.general.xml
    path: files/DKFX-VMH-502P_ESX7.0_STIG.ckl
    xpath: "/CHECKLIST/STIGS/iSTIG/VULN[STIG_DATA/ATTRIBUTE_DATA='{{ item.id }}']/{{ item.field }}"
    value: "{{ item.value }}"
    state: present
  loop:
    - { id: 'SRG-OS-000355-VMM-001330', field: 'STATUS', value: 'Finding' }
    - { id: 'SRG-OS-000355-VMM-001330', field: 'FINDING_DETAILS', value: '具体检查详情内容' }
    - { id: 'SV-ESXI-70-000020', field: 'STATUS', value: 'NotAFinding' }

内容的提问来源于stack exchange,提问作者Kio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 14:27:24