Creating collections

To create a collection:

  1. Create a collection skeleton with the collection init command.

  2. Add modules and other content to the collection.

  3. Build the collection into a collection artifact with ansible-galaxy collection build.

  4. Publish the collection artifact to Galaxy with ansible-galaxy collection publish.

A user can then install your collection on their systems.

Creating a collection skeleton

To start a new collection, run the following command in your collections directory:

ansible_collections#> ansible-galaxy collection init my_namespace.my_collection

Note

Both the namespace and collection names use the same strict set of requirements. See Galaxy namespaces on the Galaxy docsite for those requirements.

It will create the structure [my_namespace]/[my_collection]/[collection skeleton].

Hint

If Git is used for version control, the corresponding repository should be initialized in the collection directory.

Once the skeleton exists, you can populate the directories with the content you want inside the collection. See ansible-collections GitHub Org to get a better idea of what you can place inside a collection.

Reference: the ansible-galaxy collection command

Currently the ansible-galaxy collection command implements the following sub commands:

  • init: Create a basic collection skeleton based on the default template included with Ansible or your own template.

  • build: Create a collection artifact that can be uploaded to Galaxy or your own repository.

  • publish: Publish a built collection artifact to Galaxy.

  • install: Install one or more collections.

To learn more about the ansible-galaxy command-line tool, see the ansible-galaxy man page.

See also

Using Ansible collections

Learn how to install and use collections.

Collection structure

Directories and files included in the collection skeleton

Mailing List

The development mailing list

Real-time chat

How to join Ansible chat channels