- You are a user of, or contributor to, Ansible Extras modules
- There is a pull request for an Extras module that you have been anxiously waiting to see merged (yours, or someone else’s!)
- You’ve been looking for a way to contribute to the Ansible community
- You are looking for fun and constructive ways to procrastinate doing other things you should be doing
In short: Our improved “new extras modules” review process is now in place, and any new Extras module can be reviewed for inclusion by any user of Ansible who cares to see that module be included.
Want to see a few of the modules that need love? Scroll down to the end!
Folks who keep an eye on the various Ansible repositories have probably noticed that your friendly neighborhood Ansible community team (that’s myself and Greg DeKoenigsberg) have been digging through a pretty sizable backlog of issues and pull requests, primarily in the Extras and Core modules repos. We’ve been doing this with a few things in mind; obviously, getting caught up as best as possible, but more importantly, making sure that the contributions of community members are being acknowledged and acted on. We value Ansible’s community members tremendously, and the last thing we want is for their hard work to be unused — or worse, for those people to feel demoralized and not contribute in the future.
With this in mind, we have been not only catching up on checking the status of each and every outstanding issue or pull request in the Extras repository — we’ve also been reviewing ways to reduce what is essentially “Github issues debt” (a play on the term “technical debt“). One of the main issues we’ve identified is, quite simply, bottlenecks in process. While the addition of myself to Greg’s team (formerly a team of one, now a team of two!) is helping with the day-to-day tending and triage of new and existing issues, which was a bottleneck in itself, the previous review process for new modules had a short list of approved reviewers, who not only have lives and are sometimes busy, but also didn’t always have the domain expertise with the technologies enabled in new modules.
And thus: A new process has been born. I encourage you to read the details, particularly if you are interested in helping with reviews, or are already contributing to Ansible, which were outlined by Greg on Friday on the ansible-project and ansible-devel mailing lists. That said, here are the important highlights:
- Any caring Ansible user can review new Extras modules.
- 2 +1 votes, and no -1 votes, will result in the new module being merged into Extras. More specifically, a +1 vote to the module working as expected (meaning: you have tested the module in good faith) — and a +1 vote verifying that the module follows the Ansible module guidelines.
Finally, as we outlined in the above referenced mail: this process is based on trust. Trust that users are testing these in good faith, and ensuring that the guidelines are being followed; trust that the submitters of these new modules are willing and able to maintain these new modules over time, and respond to issues and pull requests in a timely fashion.
Want to help?
You have my undying gratitude! And the endless thanks, I’m sure, of the module contributor. Here are some links to get you started:
- As mentioned previously — Greg’s post to the mailing list outlining new PR process for new modules in Extras (the how, and the why.)
- Reviewers file for Extras on GitHub: Outlines basic process.
- Module guidelines.
- General contributor information for Ansible Extras
- Module development documentation, including module testing information.
- Ansible test-module code, and associated documentation.
- More testing info that may be of use:
Help get these Extras modules mooo-ving!
While this is in no way a full list of all outstanding new modules that need reviews, it is a list of those that aren’t already under review, require revision, etc. Some of them are entirely new; others are new modules that have had some review and revisions made, but are now stalled for lack of new review, and can now be approved under the new process. If you’re feeling particularly motivated and want to see if something you’re interested in is making progress or needs help — the full list of unreviewed or in-progress new Extras modules can be seen here.
And, yes: Honeybadger is first. Because I know you give a… ahem. Hoot. 🙂
Honeybadger: module to notify Honeybadger.io about app deployments.
- Couchbase: module to create and delete Couchbase buckets, using the Couchbase REST API.
- CouchDB: module for handling CouchDB users
- mssql_db: module to create, delete databases and execute sql scripts. (This is basically the mssql equivalent of mysql_db module.)
Docker: docker_facts module to return information about running containers
Nexus: This adds a module for pulling artifacts from a Nexus repository.
Windows (Yes, Windows.)
- win-zip module: Zips file or directory on a Windows node
- win_s3 module: module for downloading/uploading to/from S3 on the Windows node machine. Uses the AWS_SDK for Powershell.
AWS / EC2 / S3 / Redshift
- module redshift handles creating, deleting, modifying, and facts gathering of Redshift clusters
- module redshift_subnet_group handles creating, modifying, and deleting of Redshift Subnet Groups
- AWS Redshift security groups: https://github.com/ansible/ansible-modules-extras/pull/293
- ec2_vpc_peering: Module for creating VPC peering connections. https://github.com/ansible/ansible-modules-extras/pull/245
- s3_website: module to manage an s3 bucket as a website
- s3_website_redirect_rule: module to manage s3 bucket website redirect rules
- elastic_beanstalk: module for creating, terminating, and restarting AWS Elastic Beanstalk environments, including support for blue-green deployments using CNAME swapping.
- elasticache_parameter_group: module to enable creation / deletion / modification of the cache_parameter_group.
Sensu: sensu_subscription manages Sensu subscriptions of the Sensu client running on a machine. Note: this goes well with the already-existing sensu_check module, which manages sensu checks and allows you to specify all possible options (including the correct types) — if you’re using this module, you’re probably a great candidate to review sensu_subscription!
nfsexport: module for working with entries in /etc/exports (or nfs exports file in an otherwise specified location).
Apache Kafka: The kafka_topics module creates new topics in Kafka, or modifies existing ones (though only increasing the partition count is supported in Kafka). Topics can be operated on one at a time, or in a group, to save on starting up the JVM for each topic to check its current state.
openweather fact gathering: module to use the openweathermap API to retrieve the current weather at a location.
Webfaction: module to gather facts from Webfaction, including facts about applications, websites, databases, and domains.
ZFS: a module for managing ZFS admin privileges.
- blockinfile: module to insert/update/remove a text block surrounded by marker lines in a file, in the similar manner as lineinfile module.
- blockfromfile: module for extracting values (via regexp pattern) from an existing file on remote nodes. Should fail silently by default (or loudly if desired), when said file doesn’t exist.
- Deploy-helper: this module was formed to help lower the boilerplate needed to deploy web-projects.
PagerDuty: pagerduty_service allows you to create, update, disable, and delete services in PagerDuty. You can configure webhooks for the services, and prompt PagerDuty to regenerate service keys for API type services.
CoreOS / fleet:
- fleet_facts module which gathers information about CoreOS clusters
- fleet_unit module which manages CoreOS systemd services via Fleet