← All reportsPublic report

ansible/ansible

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.

70k stars Python View on GitHubprofiled 15d ago
Try GitZoid
27PRs this week
12Contributors
0Deps scanned
0Issues found
01 · Repo overview

How ansible is put together

ansible/ansible (devel) is the ansible-core project: a radically simple, agentless IT automation engine written in Python 3 that manages machines over SSH/WinRM without agents. The architecture is CLI-driven: console entry points (ansible, ansible-playbook, ansible-galaxy, ansible-vault, etc.) defined in pyproject.toml dispatch into lib/ansible/cli/* classes, which load configuration via lib/ansible/config/manager.py, resolve plugins through the plugin loader, and execute tasks against remote hosts. Content is distributed as collections fetched from Galaxy-compatible servers by lib/ansible/galaxy/api.py, which speaks HTTP(S) to external APIs with token/password auth and local JSON disk caching. There is no datastore; state is files on disk (config INI/YAML, galaxy cache, vault-encrypted data), and CI runs on Azure Pipelines across many OS targets.

Languages

PythonPowerShellC#Shell

Frameworks

setuptools (build backend)Jinja2 templatingPyYAMLargparse-based CLI framework (ansible.cli.CLI)

Infrastructure

Azure Pipelines CI (.azure-pipelines/)POSIX-focused runtime (Operating System :: POSIX classifier)SSH-based agentless remote executionGalaxy/Automation Hub HTTP APIs for collection distributionDocker/container-based test targets (ansible-test container options)

Major components

CLI layer (lib/ansible/cli)

Implements the user-facing commands (ansible, ansible-config, ansible-console, ansible-doc, ansible-galaxy, ansible-inventory, ansible-playbook, ansible-pull, ansible-vault) on top of a shared CLI base class.

Configuration management (lib/ansible/config)

Resolves settings from env vars, INI/YAML config files, and plugin-defined options with typed conversion (bool/int/path/list/dict) and precedence handling.

Galaxy client (lib/ansible/galaxy)

Talks to Galaxy/Automation Hub APIs to search, download, install, and publish collections and roles, including authentication, retries, rate-limit handling, and signature verification metadata.

Plugin loader & plugins (lib/ansible/plugins)

Discovers and loads connection, module, callback, lookup, and other plugin types from core and installed collections.

Executor (lib/ansible/executor)

Runs playbooks/tasks against hosts, managing worker processes, strategy queues, and result events.

module_utils (lib/ansible/module_utils)

Shared helper code embedded into target-side modules: text converters, URL/open_url client, API retry/rate-limit decorators, boolean parsing, YAML loading.

_internal package (lib/ansible/_internal)

Internal runtime machinery not part of the public API: task/event formatting, locking, RPC host, display utilities, JSON handling, data tagging.

ansible-test (test/lib/ansible_test)

The self-contained test harness driving sanity, unit, integration, and Windows tests across containerized and cloud-provisioned targets.

Over the past five weeks, the Ansible team focused heavily on improving its testing infrastructure (ansible-test), including container updates, coverage upgrades, and CI stability fixes. Alongside that, several user-facing bug fixes landed—such as masking passwords in URLs, rejecting empty delegate_to hostnames, and fixing crashes in apt_repository—plus a few small features like new device links in the setup module and better logging internals. Activity was steady at around 1–9 changes per week, with the busiest weeks in late July.

Week by week

2026-08-17A quiet week with just one minor file-related fix.latest1 change

Fix

Minor file module fix

A small correction was made to the file module to clean up its behavior.

2026-08-10A light week bringing a test cleanup and a new setup-module capability for finding devices by path.2 changes

Chore

Fixed test helper usage

Corrected how tests pass collections of cases to pytest so they run reliably.

Feature

Device links by path in setup module

The setup module now reports system devices using their path-based links, making hardware info easier to work with.

2026-08-03A busy week of testing-infrastructure updates plus fixes for URL password masking and empty hostnames.6 changes

Chore

Updated ansible-test containers

Refreshed the prebuilt environments used to run Ansible's own tests.

Fix

URL passwords now masked consistently

Modules now use a shared function to hide passwords embedded in URLs from logs and output.

Chore

Upgraded code-coverage tooling

Bumped the coverage tool used during testing to version 7.15.4.

Chore

FreeBSD test environment updated

Test machines running FreeBSD moved from version 15.0 to 15.1.

Fix

Empty delegate_to hostnames rejected

Ansible now clearly errors out instead of misbehaving when a task tries to delegate to an empty hostname.

Docs

Cleaned up generated filter docs

Removed stray empty bullet points from automatically generated documentation for Jinja2 filters and tests.

2026-07-27Nine changes spanning CI reliability fixes, internal logging refactoring, and documentation improvements.6 changes

Fix

ansible-test target defaults fixed

Corrected how default targets are applied when resolving what ansible-test should run.

Chore

Galaxy token URL updated

Pointed Ansible Galaxy authentication at the current token endpoint.

Refactor

Logging code consolidated

Module logging to syslog/journald was extracted into a shared internal module for reuse.

Docs

Backporting guide added as AI skill

Added guidance material on creating backports (porting fixes to older releases).

Docs

Deprecation status documented for callbacks

Tree and oneline callback plugins now state their deprecation status in their documentation.

Chore

CI timeout fixed via gather_timeout

Set an explicit gather_timeout in tests to avoid flaky timeouts caused by implicit behavior.

2026-07-20A nine-change week headlined by an apt_repository crash fix, broader URL password masking, and test-environment refreshes.6 changes

Fix

apt_repository crash fixed

Fixed an error that occurred when validating short repository source lines in the apt_repository module.

Fix

Password-only URLs now masked

Extended URL masking so credentials are hidden even when only a password is present in the URL.

Feature

New CPE name fact available

Added ansible_distribution_cpe_name() so playbooks can read a machine's standardized platform identifier.

Fix

Gentoo service error handling improved

The genent module now fails with a clear error on platforms like Alpine when a service is requested but unsupported.

Chore

Alpine test image bumped

Replaced Alpine 3.23 with 3.24 in the testing environments.

Chore

Debugger uses bundled VSCode tooling

Switched debugging to use the debugpy package bundled with VSCode rather than a separate install.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required