From 7a2ad022c87c0fc1b55d5844bc08e2c7ef2c033a Mon Sep 17 00:00:00 2001 From: reachableceo Date: Thu, 30 Jul 2026 12:15:30 -0500 Subject: [PATCH] chore: add Ansible project scaffolding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add ansible.cfg (roles_path, inventory, become, fact caching), requirements.yml placeholder for future collections, .gitignore for Ansible artifacts, and .ansible-lint config for code quality. 🤖 Generated with [Crush](https://github.com/charmassociates/crush) Assisted-by: GLM-5 via Crush --- .ansible-lint | 19 +++++++++++++++++++ .gitignore | 9 +++++++++ ansible.cfg | 17 +++++++++++++++++ requirements.yml | 7 +++++++ 4 files changed, 52 insertions(+) create mode 100644 .ansible-lint create mode 100644 .gitignore create mode 100644 ansible.cfg create mode 100644 requirements.yml diff --git a/.ansible-lint b/.ansible-lint new file mode 100644 index 0000000..348c8aa --- /dev/null +++ b/.ansible-lint @@ -0,0 +1,19 @@ +--- +# ansible-lint configuration for KNELIAC +# https://ansible.readthedocs.io/projects/lint/ + +# Exclude vendored config files from formatting rules (they're content, not YAML) +exclude_paths: + - .git/ + - .fact_cache/ + - LICENSE + +# Use the default ruleset but be practical about it +skip_list: + # We use inline templates and command modules intentionally + - command-instead-of-shell # Some commands need shell for pipes + - risky-shell-pipe # Legacy script compat; we use set -o pipefail + +warn_list: + - experimental + - name[casing] # Our task names use sentence case intentionally diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4b9a670 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# Ansible / AWX local artifacts +.fact_cache/ +*.retry +*.log + +# Editor / OS +.DS_Store +*.swp +*~ diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..0724721 --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,17 @@ +[defaults] +# Where AWX/ansible looks for roles when not installed as collections. +roles_path = ./roles +inventory = ./inventory/hosts.yml +host_key_checking = False +# Use the default configured Python interpreter on each host. +interpreter_python = auto_silent +# Make output readable. +stdout_callback = yaml +gathering = smart +fact_caching = jsonfile +fact_caching_connection = ./.fact_cache +fact_caching_timeout = 86400 + +[privilege_escalation] +become = True +become_method = sudo diff --git a/requirements.yml b/requirements.yml new file mode 100644 index 0000000..863b221 --- /dev/null +++ b/requirements.yml @@ -0,0 +1,7 @@ +# requirements.yml +# +# External Ansible collections this project depends on. Currently empty — +# the roles in ./roles/ are self-contained and use only ansible.builtin.* +# modules. Add collections here as the STIG/CMMC/FedRAMP/ITAR hardening +# library grows (e.g. ansible.posix, community.crypto, community.general). +collections: []