2019-10-11 20:19:44 +02:00
You can also setup a ``requirements.yml`` file to install multiple collections in one command. This file is a YAML file in the format:
.. code-block:: yaml+jinja
---
collections:
# With just the collection name
- my_namespace.my_collection
# With the collection name, version, and source options
- name: my_namespace.my_other_collection
version: 'version range identifiers (default: ``*``)'
source: 'The Galaxy URL to pull the collection from (default: ``--api-server`` from cmdline)'
2020-05-29 19:33:32 +02:00
The supported keys for collection requirement entries are ``name``, ``version``, ``source``, and ``type``.
The ``version`` key can take in the same range identifier format documented above. If you're installing a collection from a git repository instead of a built collection artifact, the ``version`` key refers to a `git commit-ish <https://git-scm.com/docs/gitglossary#def_commit-ish>`_.
The ``type`` key can be set to ``galaxy``, ``url``, ``file``, and ``git``. If ``type`` is omitted, the ``name`` key is used to implicitly determine the source of the collection.
2019-10-11 20:19:44 +02:00
Roles can also be specified and placed under the ``roles`` key. The values follow the same format as a requirements
file used in older Ansible releases.
2019-12-11 17:21:41 +01:00
.. code-block:: yaml
---
roles:
# Install a role from Ansible Galaxy.
2020-02-24 20:37:10 +01:00
- name: geerlingguy.java
2019-12-11 17:21:41 +01:00
version: 1.9.6
collections:
# Install a collection from Ansible Galaxy.
- name: geerlingguy.php_roles
version: 0.9.3
source: https://galaxy.ansible.com
2020-05-18 21:09:42 +02:00
To install both roles and collections at the same time with one command, run the following:
.. code-block:: bash
$ ansible-galaxy install -r requirements.yml
Running ``ansible-galaxy collection install -r`` or ``ansible-galaxy role install -r`` will only install collections,
or roles respectively.
2019-10-11 20:19:44 +02:00
.. note::
2020-05-18 21:09:42 +02:00
Installing both roles and collections from the same requirements file will not work when specifying a custom
collection or role install path. In this scenario the collections will be skipped and the command will process
each like ``ansible-galaxy role install`` would.