Developing Ansible modules is easy, but often it isn’t necessary. Before you start writing a new module, ask:
An existing module may cover the functionality you want. Ansible Core includes thousands of modules. Search our list of existing modules to see if there’s a module that does what you need.
An existing Pull Request may cover the functionality you want. If someone else has already started developing a similar module, you can review and test it. There are a few ways to find open module Pull Requests:
If you find an existing PR that looks like it addresses your needs, please provide feedback on the PR. Community feedback speeds up the review and merge process.
An action plugin may be the best way to get the functionality you want. Action plugins run on the control node instead of on the managed node, and their functionality is available to all modules. For more information about developing plugins, read the developing plugins page.
A combination of existing modules may cover the functionality you want. You can write a role for this type of use case. Check out the roles documentation.
The functionality you want may be too large for a single module. If you want to connect Ansible to a new cloud provider, database, or network platform, you may need to develop a related group of modules.
If your use case isn’t covered by an existing module, an open PR, an action plugin, or a role, and you don’t need to create multiple modules, then you’re ready to start developing a new module. Choose from the topics below for next steps: