RFC: Operations Ansible Collection

The Foreman Ansible Modules (FAM) collection has seen great success with community participation and multiple releases. The collection is primarily focused on Ansible assets (e.g. modules, roles) that communicate with the Foreman API. There are a number of additional use cases that we see within the community where users use Ansible to automate things like installation, upgrade, task cleanup, backup, restore, etc. Further, we have seen through user blog posts, and discourse posts as well as within our own tooling (i.e. Forklift) that this is an area where every user is having to invent the Ansible to support this themselves. This supported collection would offer a centralized place for users to collaborate, contribute and use tooling for common operations.

In light of this, I am proposing the following (bike shedding encouraged):

  1. Creation of a Foreman Operations Ansible Collection
  2. A new repository for the collection at theforeman/foreman-operations-collection
  3. Moving the Forklift installer role to the collection as the first component of the collection
  4. Given the familiarity of Ansible, and collections, adding the maintainers of FAM as the initial set of maintainers of FOC
  5. Discuss how to test these type of modules and roles given they are intended to act on a live system
7 Likes

Does this involve turning forklift into a pure library and move the box definitions to the (repo) of the new collection?
We are about to use a similar design (with forklift as a vagrant library) in the pulp_installer collection, where the vagrant functionality will only be available in the git checkout.

1 Like

This may precipitate splitting vagrant and Ansible portions of Forklift but that is not on the horizon for the design. I would also not want to couple the Ansible collection with Vagrant pieces. If anything, the Vagrant pieces should stand alone as a method to provision a compute resource and the Ansible should exist as a stand alone method to setup up a system for our purposes (e.g. nightly testing, development, etc.). However, with respect to Forklift, it has just been convenient for the project to have that all together in a single repository.

1 Like

I have taken the first step creating the foreman-operations-collection repository and opened an initial PR to seed the collection skeleton based on FAM. Per the proposal, the ansible-modules Github team has been added as maintainers.

1 Like