.. _creating_collections: ******************** Creating collections ******************** To create a collection: #. Create a :ref:`collection skeleton` with the ``collection init`` command. #. Add modules and other content to the collection. #. Build the collection into a collection artifact with :ref:`ansible-galaxy collection build`. #. Publish the collection artifact to Galaxy with :ref:`ansible-galaxy collection publish`. A user can then install your collection on their systems. .. contents:: :local: :depth: 2 .. _creating_collections_skeleton: Creating a collection skeleton ============================== To start a new collection: .. code-block:: bash collection_dir#> 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. 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 :ref:`ansible-galaxy` man page. .. seealso:: :ref:`collections` Learn how to install and use collections. :ref:`collection_structure` Directories and files included in the collection skeleton `Mailing List `_ The development mailing list :ref:`communication_irc` How to join Ansible chat channels