ASIMP :: Security Platform
ANSIBLE SYSTEM INTEGRITY MANAGEMENT PLATFORM // baselines & hardening
MODE:

Documentation

Home Gitbook & dsom summary index Asimp for ai agents: deep state of mind (dsom) protocol integration Ansible execution environments (ee) & sovereign gitea integration guide Ansible best practices & fqcn standards Ansible playbook and document architecture map Architecture & design Configuration & variables Debian gnu/linux hardening & audit guide Review & adoption of dsom ansible configuration guide (v3.6.2) Diátaxis documentation framework Deep state of mind (dsom) governance framework System architecture & security posture Operational recipes index Execute tool workflows Legal notice & disclaimer Asimp local testing matrix & telemetry spec Lynis auditing & playbook analysis Openscap integration & playbook analysis The enterprise linux openscap operational guide: automated vulnerability auditing, baseline compliance, and safeguarded air gapped remediation Opensuse / suse linux enterprise hardening & audit guide Rootless podman 5+ & quadlet orchestration Asimp standard footer patcher reference Google okf frontmatter patcher reference Ansible config parameters reference Component & tool index Sovereign feedback collector reference Llm xml context compiler reference Role lynis ansible reference Mock scanning utility reference Openwiki emulator specification Sovereign os role patcher reference System core playbooks reference Jekyll pre processor reference Role reporting asimp reference Suse/sled sysctl hardening role reference Role update ubuntu asimp reference Sitemap & link integrity validator reference Enterprise linux cis level 2 audit & hardening guide Local knowledge first & metadata discovery Troubleshooting & fallback behaviors Quickstart onboarding guide Ubuntu 24.04/26.04 lts hardening & audit guide


About ASIMP

ASIMP is an automated framework built with Ansible to assess host compliance, configure OS parameters, secure SSH, and verify integrity.

Ansible Best Practices & FQCN Standards

Ansible >= 9.0.0 OpenSCAP: CIS L2 Lynis: Enabled debsums: Enabled

Ansible Best Practices & FQCN Standards

Modern Ansible requires highly scalable, predictable, and idempotent playbooks. To prevent collisions, version drift, and deprecation warnings, ASIMP enforces strict development standards, mandating Fully Qualified Collection Names (FQCN) and Explicit Task Idempotency.


🧭 Fully Qualified Collection Names (FQCN)

All playbooks, roles, and tasks in ASIMP must utilize fully qualified collection paths when invoking Ansible modules. Short, unqualified names (e.g., apt, copy, shell) are strictly prohibited.

Legacy Module Name Mandatory FQCN Replacement
apt ansible.builtin.apt
copy ansible.builtin.copy
shell ansible.builtin.shell
command ansible.builtin.command
replace ansible.builtin.replace

Using FQCN ensures playbooks remain robust across varying Ansible versions and executing environments.


🛡️ Symmetric Privilege Strategy

ASIMP implements a hybrid, symmetric privilege model that separates global system tuning from unprivileged deployment or auditing steps:

  1. Rootful OS Hardening: Applied only when asimp_privilege_level == 'full'. This installs system utilities, modifies kernel sysctls, and enforces security configurations.
  2. Rootless Auditing: Executed dynamically under become_user or within simulated fallback loops inside Google Jules sandboxes (is_sandbox_jules: true).

📄 FQCN Ansible Task Blueprint

Below is an example of production-grade task construction demonstrating proper FQCN syntax and explicit environment variables for rootless systemd execution:

- name: Create Quadlet configuration directory
  ansible.builtin.file:
    path: "/home/songket/.config/containers/systemd"
    state: directory
    owner: songket
    group: songket
    mode: '0755'
  become: yes
  become_user: songket

- name: Deploy Quadlet templates
  ansible.builtin.template:
    src: "templates/.j2"
    dest: "/home/songket/.config/containers/systemd/"
    owner: songket
    group: songket
    mode: '0644'
  loop:
    - skm_network.network
    - skm_pod.pod
  become: yes
  become_user: songket
  register: quadlets_deployed

- name: Reload user-level systemd daemon and restart services
  ansible.builtin.systemd_service:
    daemon_reload: yes
    scope: user
    name: skm_pod-pod.service
    state: restarted
    enabled: yes
  become: yes
  become_user: songket
  environment:
    XDG_RUNTIME_DIR: "/run/user/"
    DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user//bus"
  when: quadlets_deployed.changed

🔍 Task Idempotency and Change Verification

By default, executing shell or command modules always registers a “changed” state. Every shell or command task inside ASIMP must explicitly define changed_when or failed_when conditions to maintain high-fidelity change tracking.

# INCORRECT (Will always report changed)
- name: Check file existence
  ansible.builtin.command: ls /var/log/asimp-baseline-scores.json

# CORRECT (Strictly idempotent check)
- name: Check file existence
  ansible.builtin.command: ls /var/log/asimp-baseline-scores.json
  register: file_check
  changed_when: false
  failed_when: false