# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_almalinux,multi_platform_rhv,multi_platform_sle,multi_platform_slmicro,multi_platform_ubuntu,multi_platform_debian
# reboot = true
# strategy = restrict
# complexity = low
# disruption = low

#
# What architecture are we on?
#
- name: Set architecture for audit {{{ ATTR | join(", ") }}} tasks
  ansible.builtin.set_fact:
    audit_arch: "b64"
  when:
  - ansible_architecture == "aarch64" or
    ansible_architecture == "ppc64" or
    ansible_architecture == "ppc64le" or
    ansible_architecture == "s390x" or
    ansible_architecture == "x86_64"

- name: Perform remediation of Audit rules for {{{ ATTR | join(", ") }}} for 32bit platform
  block:
    {{{ ansible_audit_augenrules_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b32",
      other_filters="",
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=ATTR,
      key=KEY,
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
    {{{ ansible_audit_auditctl_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b32",
      other_filters="",
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=ATTR,
      key=KEY,
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
{{%- if CHECK_ROOT_USER %}}
    {{{ ansible_audit_augenrules_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b32",
      other_filters="",
      auid_filters="-F auid=0",
      syscalls=ATTR,
      key=KEY,
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
    {{{ ansible_audit_auditctl_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b32",
      other_filters="",
      auid_filters="-F auid=0",
      syscalls=ATTR,
      key=KEY,
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
{{%- endif %}}

- name: Perform remediation of Audit rules for {{{ ATTR | join(", ") }}} for 64bit platform
  block:
    {{{ ansible_audit_augenrules_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b64",
      other_filters="",
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=ATTR,
      key=KEY,
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
    {{{ ansible_audit_auditctl_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b64",
      other_filters="",
      auid_filters="-F auid>="~auid~" -F auid!=unset",
      syscalls=ATTR,
      key=KEY,
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
{{%- if CHECK_ROOT_USER %}}
    {{{ ansible_audit_augenrules_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b64",
      other_filters="",
      auid_filters="-F auid=0",
      syscalls=ATTR,
      key=KEY,
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
    {{{ ansible_audit_auditctl_add_syscall_rule(
      action_arch_filters="-a always,exit -F arch=b64",
      other_filters="",
      auid_filters="-F auid=0",
      syscalls=ATTR,
      key=KEY,
      syscall_grouping=SYSCALL_GROUPING,
      )|indent(4) }}}
{{%- endif %}}
  when: audit_arch == "b64"
