ansible-galaxy - укажите диапазон версий для установки

Я пытаюсь установить коллекцию Ansible Galaxy, но мне нужно принудительно установить более старую версию. Согласно документации я пробовал произвести установку следующими способами:

$ ansible-galaxy collection install 'weareinteractive.ufw:>=1.10.0,<2.0.0'
Process install dependency map
ERROR! Failed to find collection weareinteractive.ufw:>=1.10.0,<2.0.0
$ ansible-galaxy collection install 'weareinteractive.ufw:<2.0.0'
Process install dependency map
ERROR! Failed to find collection weareinteractive.ufw:<2.0.0

Я получаю такую ​​же ошибку при попытке сделать то же самое из этого requirements.yml:

---
- name: weareinteractive.ufw
  version: '>=1.8.0,<2.0.0'

Запуск команды

$ ansible-galaxy install -r requirements.yml
- downloading role 'ufw', owned by weareinteractive
[WARNING]: - weareinteractive.ufw was NOT installed successfully: - the specified version (>=1.8.0,<2.0.0) of weareinteractive.ufw was not found in the list of available versions ([{'id': 141713, 'url': '', 'related': {}, 'summary_fields': {}, 'created':
'2020-11-25T18:52:30.171540Z', 'modified': '2020-11-25T18:52:30.171568Z', 'name': '2.0.1', 'version': '2.0.1', 'commit_date': '2020-11-25T10:51:53-05:00', 'commit_sha': '30b1fdc8f5440e865d3fbeb83894941bf70739c7', 'download_url':
'https://github.com/weareinteractive/ansible-ufw/archive/2.0.1.tar.gz', 'active': None}, {'id': 76043, 'url': '', 'related': {}, 'summary_fields': {}, 'created': '2018-10-04T14:07:47.602784Z', 'modified': '2018-10-04T14:07:47.602810Z', 'name': '1.8.0', 'version':
'1.8.0', 'commit_date': '2018-10-04T10:05:07-04:00', 'commit_sha': 'ae776a7dc255ba5dc679cedee32129ba22c0e797', 'download_url': 'https://github.com/weareinteractive/ansible-ufw/archive/1.8.0.tar.gz', 'active': None}, .....]).
ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.

Что мне не хватает?

Изменить: я использую ansible / ansible-galaxy 2.9.16, но я ожидаю, что решение, которое по-прежнему будет работать с ansible 2.10


person Antwane    schedule 30.01.2021    source источник
comment
Какую версию ansible-galaxy вы используете?   -  person TRW    schedule 30.01.2021
comment
Анзибль-галактика 2.9.16   -  person Antwane    schedule 30.01.2021


Ответы (1)


Как указано на главной странице репозитория роли, которую вы пытаетесь установить:

Роль Ansible weareinteractive.ufw

Источник: https://github.com/weareinteractive/ansible-ufw#ansible-weareinteractiveufw-role

Это роль, а не сборник.

Хотя эти два синтаксиса могут выглядеть одинаково, на самом деле у них нет одного и того же синтаксиса.
Для роли, во-первых, вы не устанавливаете их через

ansible-galaxy collection install some-collection

Очевидно, но через:

ansible-galaxy install some-role

Примечание. это подтверждается как их страницей GitHub, так и их страницей Ansible Galaxy, которые советуют вам установить роль через

ansible-galaxy install weareinteractive.ufw

Источники: https://galaxy.ansible.com/weareinteractive/ufw и https://github.com/weareinteractive/ansible-ufw < / sup>


Кроме того, различается и закрепление версий. Для роли вы должны указать версию, а не диапазон версий:

Когда сервер Galaxy импортирует роль, он импортирует любые теги git, соответствующие формату семантической версии как версии. В свою очередь, вы можете загрузить определенную версию роли, указав один из импортированных тегов.

Источник: https://docs.ansible.com/ansible/latest/galaxy/user_guide.html#installing-a-specific-version-of-a-role

Поэтому вам придется опираться на теги git их репо, например.

ansible-galaxy install weareinteractive.ufw,v1.10.0

И require.yml также немного отличается, где вы также должны предоставить конкретную версию.

- name: weareinteractive.ufw
  version: v1.10.0
person β.εηοιτ.βε    schedule 30.01.2021
comment
Кристально чистое спасибо. Похоже, я полностью пропустил понятие collextion в Ansible. Я вернусь к документу и узнаю разницу между коллекцией и ролью - person Antwane; 30.01.2021