diff options
Diffstat (limited to 'docs/docsite/rst/dev_guide/developing_collections_creating.rst')
-rw-r--r-- | docs/docsite/rst/dev_guide/developing_collections_creating.rst | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/docs/docsite/rst/dev_guide/developing_collections_creating.rst b/docs/docsite/rst/dev_guide/developing_collections_creating.rst new file mode 100644 index 0000000..90a13a6 --- /dev/null +++ b/docs/docsite/rst/dev_guide/developing_collections_creating.rst @@ -0,0 +1,61 @@ +.. _creating_collections: + +******************** +Creating collections +******************** + +To create a collection: + +#. Create a :ref:`collection skeleton<creating_collections_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<building_collections>`. +#. Publish the collection artifact to Galaxy with :ref:`ansible-galaxy collection publish<publishing_collections>`. + +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, run the following command in your collections directory: + +.. code-block:: bash + + 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 <https://galaxy.ansible.com/docs/contributing/namespaces.html#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 <https://github.com/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 <https://groups.google.com/group/ansible-devel>`_ + The development mailing list + :ref:`communication_irc` + How to join Ansible chat channels |