Windows software arrives through different installers and drifts over time. ANS-CHOCO prepares approved packages, aligns host state, and records the result.
Static educational model. No fleet connection, credentials, or execution controls.
Follow the movement
00 / Full system
Separate intent, execution, and evidence.
The catalog defines approved software. Ansible roles prepare packages and align Windows hosts. Per-host and fleet reports make changes, retries, and reboot advisories reviewable.
Explore without connecting to a host. The published page is static and carries no vault, inventory exports, or real deployment reports.
The system, in one frame
Delivered pipeline / configuration, execution, and evidence
The diagram stays at a readable size. Scroll sideways or choose a movement above to focus its part of the system.
Community-package internalization and checksum-verified wrappers prepare Chocolatey artifacts for configured sources. On-target extract/repack/install iteration keeps the test cycle local. Its install step reuses chocoDeploy, keeping reconciliation and reporting in one operational engine.
Policy-driven operations and evidence
Separate target scope, host work, and review.
CSV and AD evidence apply protected-OU policy during inventory creation. Deployment modes reconcile registry and Chocolatey state against application and runtime floors. Explicit removal/reboot controls and per-host JSON, daily HTML, and fleet summaries support deliberate execution and review.
Portability and future enhancements
Evolution with scale and security requirements
The current execution path is Ansible and WinRM. Catalogs, inventories, adjacent connection variables, package sources, and configuration separate environment choices from reusable roles.
As deployment scale, business scope, and security requirements evolve, enhancement options include Azure Arc execution through official modules and client-based authentication, with the aim of reducing reliance on WinRM.
Textual equivalent + source evidence
Read the architecture as contracts.
01 / Reviewed intent
The shared package catalog describes identity, approved versions, acquisition, and intended mirror versions. Role defaults supply floors and selection/removal policy. The validator checks consistency, not live package availability.
chocoBuild.yml runs community or wrapper tasks on a Windows build target. PowerShell bundles vendor installers and checks wrapper integrity. Iteration's install action includes chocoDeploy with a single package/local source, reusing install logic rather than duplicating it.
csv_to_inventory.py combines CSV and AD evidence, removes protected-OU targets, and optionally probes reachable hosts. Generated inventories carry adjacent WinRM group variables. Unknown hosts are warned, not excluded. Manual/UI inventories bypass the OU process check.
Fleet plays load file-based credentials from ignored vault/. Ansible reaches Windows via WinRM. chocoDeploy reconciles registry/Chocolatey state, routes sources, applies application/runtime policy, records errors and finalizes evidence. Reboots default to never. Conversion can remove a vendor install before replacement succeeds.
Deployment writes per-run JSON and daily host HTML. Controller roll-ups combine the final result per software, resolve successful retries, and distinguish reboot advisories. report_only rebuilds existing target evidence, not a new scan. The watcher follows terminal logs; recovery tools collect missing evidence.