てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] ansible-galaxy collection install コマンドは複数のコレクションを指定できる

はじめに

コレクションをインストールするには ansible-galaxy collection install コレクション名やアーカイブファイル名前 という書式が一番シンプルかなと思います。

docs.ansible.com

複数のコレクションをいっぺんにインストールしたい場合は、]requirements.yml というファイルに定義して -r オプションで指定する](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html#install-multiple-collections-with-a-requirements-file)方法もあります。

ですが、ファイルに書くほどでもないけど、いますぐ、手っ取り早く複数のコレクションを指定するには、

ansible-galaxy collection install コレクション1 コレクション2 コレクション3

のような指定の仕方もできます。

  • 環境
    • ansible-core 2.12.

おためし

ansible.utilsnetbox.netbox という2つのコレクションを一度にインストールしてみます。

$ ansible-galaxy collection install ansible.utils netbox.netbox
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/download/ansible-utils-2.6.1.tar.gz to /Users/sakana/.ansible/tmp/ansible-local-34764sxzv2emb/tmp850gohw3/ansible-utils-2.6.1-bf75vsy5
Installing 'ansible.utils:2.6.1' to '/Users/sakana/.ansible/collections/ansible_collections/ansible/utils'
Downloading https://galaxy.ansible.com/download/netbox-netbox-3.7.1.tar.gz to /Users/sakana/.ansible/tmp/ansible-local-34764sxzv2emb/tmp850gohw3/netbox-netbox-3.7.1-15y3wkfb
ansible.utils:2.6.1 was installed successfully
Installing 'netbox.netbox:3.7.1' to '/Users/sakana/.ansible/collections/ansible_collections/netbox/netbox'
netbox.netbox:3.7.1 was installed successfully

以下の通り無事にインストールできました。

$ ansible-galaxy collection list

# /Users/sakana/.ansible/collections/ansible_collections
Collection    Version
------------- -------
ansible.utils 2.6.1  
netbox.netbox 3.7.1 

補足

コマンドのヘルプを見ると The collection(s) name とあります。

$ ansible-galaxy collection install -h
usage: ansible-galaxy collection install [-h] [-s API_SERVER] [--token API_KEY] [-c] [-v] [-f] [--clear-response-cache] [--no-cache] [-i] [-n | --force-with-deps] [-p COLLECTIONS_PATH]
                                         [-r REQUIREMENTS] [--pre] [-U]
                                         [collection_name ...]

positional arguments:
  collection_name       The collection(s) name or path/url to a tar.gz collection artifact. This is mutually exclusive with --requirements-file.
...(略)...

おまけ

実はというわけでもないですが、複数指定できるものといえば ansible-playbook コマンドも Playbook を複数指定できます。

tekunabe.hatenablog.jp