In the past, Ansible content such as roles, modules and plugins was usually consumed in two ways: the modules were part of the Ansible package, and roles could be found in Galaxy. However, as time went on the current method of content distribution had challenges with scale for both contributors and consumers of Ansible content. Dylan described this in a blog post worth reading.
Recent releases of Ansible started a journey towards better content management. In previous Ansible releases, each and every module was strictly tied to the release schedule of Ansible and community, customer, and partner feedback demonstrated that the release schedule of content needed to evolve. Ansible content collections allow our Ansible contributors to create specialized content without being tied to a specific release cycle of the Ansible product, making it easier to plan and deliver. For Ansible newcomers, the collections come “pre-packaged” with modules and playbooks around common use cases like networking and security, making it easier to get off the ground with Ansible. If you want to learn more about Ansible content collections, check out our series about collections!
The introduction of collections to the Ansible ecosystem solves a number of challenges for access to content, delivering all Ansible content types in a single place. But it also highlights a challenge faced by customers as they become more encumbered by the amount of content they have to manage, what content they want available to users, which versions of content is available to users, who supports what pieces of content and how they can present and deliver that content within their closed environment.
With this new method of automation content packaging we are now able to handle content as artifacts instead of basic text files. In order to be able to add other types of contents like modules and add versioning we needed to change the distribution method to support those packaging changes. The current distribution method can blur the lines between community supported and Red Hat subscription supported content.
Automation Hub - Discover Content
The launch of the Red Hat Ansible Automation Platform provided the opportunity to include a new method of distributing and consuming Ansible certified content backed by Red Hat and our technology partners. Automation Hub provides a place for Red Hat subscribers to quickly find and use content that is supported by Red Hat and our technology partners to deliver additional reassurance for the most demanding environments.
At a high level, automation hub provides an overview of all partners participating and providing certified, supported content:
From this central view, users can dive deeper into each partner and check out the collections provided there. Additionally, a searchable overview of all available collections can be used.
Each collection itself comes with content such as modules, roles, and plugins as well as the corresponding documentation. That way Automation Hub not only helps enable users to have a clear overview of supported content, but also provides a single place to look up documentation to help you get started with most areas of IT automation.
Note the version picker on the top right corner - Automation Hub can toggle between current and older versions of content collections, in case the older collections are still used somewhere in the organization.
How to use it
Automation hub is available as a Software-as-a-Service (SaaS) offering to existing Red Hat Ansible Automation Platform customers and can be accessed via cloud.redhat.com.
To consume content from hub as part of your automation workflows the content can also be accessed via CLI. For this an offline token is required which can be obtained via the web UI at cloud.redhat.com/ansible/automation-hub/token and needs to be added to the configuration file as follows:
[galaxy] server_list = automation_hub, galaxy [galaxy_server.automation_hub] url=https://cloud.redhat.com/api/automation-hub/ auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token token=AABBccddeeff112233gghh... [galaxy_server.galaxy] url=https://galaxy.ansible.com/
You can find more about the Galaxy server configuration at the official collections documentation.
With this configured, the installation of for example our demo collection is straight forward:
$ ansible-galaxy collection install ansible.hello_collection Process install dependency map Starting collection install process Installing 'ansible.hello_collection:1.0.6' to '/home/rwolters/.ansible/collections/ansible_collections/ansible/hello_collection'
As mentioned, Automation Hub also supports versioning, enabling users to decide on their own when it is time to update their automation processes to newer content versions. The CLI supports versioning as well:
$ ansible-galaxy collection install ansible.hello_collection:1.0.3
You can find more information about how to download collections in the above mentioned official collections documentation.
Automation Hub is available for everyone with an existing Red Hat Ansible Automation Platform subscription. Head over to cloud.redhat.com and give it a try. You can learn more about automation hub through some of our upcoming webinars covering a deep dive of Automation Hub and an overview of Automation Analytics. A replay of the webinar discussing Ansible content collections and the future of how Ansible content is handled can also be viewed here.