Volume 5: Developing Modules, Plugins & Contributing¶
Volume status
This volume is at the outline stage. Each chapter below has its structure and scope defined; full prose is being written chapter by chapter after Volumes 1-4.
Who This Volume Is For¶
Python developers and advanced automation engineers who want to extend Ansible rather than just consume it — writing custom modules or plugins for internal use, or contributing to ansible-core and community collections upstream.
Prerequisites¶
Volume 3: Core Internals & Python Architecture — module and plugin development only makes sense once the execution engine, module loader, and connection plugin architecture are understood.
Chapters¶
- Module Architecture — how modules are written, the Python API, arguments, return values, check mode, diff mode, and writing one from scratch
- Plugin Architecture — action, lookup, filter, cache, connection, strategy, inventory, vars, and callback plugins, and writing custom ones
- Testing Ansible Content —
ansible-test, Molecule, pytest, sanity/integration/unit tests, and CI/CD - Development Toolkit — VS Code, dev containers,
ansible-lint,yamllint, pre-commit, black, ruff, tox, and the language server - Contributing to Ansible — developer setup, running tests, building docs, submitting PRs, and coding standards
What You Will Be Able to Do After This Volume¶
- Write a custom Ansible module that correctly supports check mode, diff mode, and idempotency
- Write a custom plugin (filter, lookup, or callback) to extend Ansible's behavior for your team's needs
- Set up a real testing pipeline for Ansible content, from
ansible-lintthrough Molecule to CI - Submit a well-formed pull request to
ansible-coreor a community collection
Next¶
Continue to Volume 6: Production Best Practices, Performance & Troubleshooting.