Каков правильный синтаксис определения зависимостей ролей в файле meta / main.yml в Ansible?

meta / main.yml

dependencies:
  - { role: 030.sensu-install }

приводит к:

[DEPRECATION WARNING]: The comma separated role spec format, use the
yaml/explicit format instead..
This feature will be removed in a future release. 
Deprecation warnings can be disabled by setting deprecation_warnings=False in 
ansible.cfg.

при выдаче sudo ansible-galaxy install -r requirements / development.yml .

Попытки для решения проблемы

Когда

dependencies:
  - role: 030.sensu-install
    version: 0.1.0

определен, проверка синтаксиса выполняется успешно, но предупреждение об устаревании сохраняется.


Когда

dependencies:
  - src: 030.sensu-install
    version: 0.1.0

определен, sudo ansible-galaxy install -r requirements / development.yml , предупреждение об устаревании устранено, но ansible-playbook / etc / ansible / roles / role_under_test / tests / $ {playbook} --syntax-check приводит к:

ERROR! role definitions must contain a role name
6
задан 14 September 2016 в 21:49
3 ответа

Обновление meta / main.yml в соответствии с этим фрагментом следующим образом:

dependencies:
  - src: 030.firewall
    version: 0.1.0
    name: 030.firewall
  - src: 030.sensu-client
    version: 0.4.1
    name: 030.sensu-client
  - src: geerlingguy.ntp
    version: 1.3.0
    name: geerlingguy.ntp    
  - src: geerlingguy.postfix
    version: 1.1.0
    name: geerlingguy.postfix
  - src: geerlingguy.redis
    version: 1.4.1
    name: geerlingguy.redis
  - src: Stouts.rabbitmq
    version: 1.2.1
    name: Stouts.rabbitmq

и установка требований путем выполнения ansible-galaxy install -r requirements / development .yml больше не возвращал [ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕВАНИИ]: проблема с форматом спецификации ролей, разделенных запятыми .

7
ответ дан 3 December 2019 в 00:21

Есть открытый запрос на исправление ошибки на github относительно этой проблемы, но всё ещё неясно, является ли она ошибкой или вы должны использовать src: вместо этого, проверьте обсуждение.

https://github.com/ansible/ansible/pull/14612

Полагаю, пока девчонки не примут решение, вы можете игнорировать это предупреждение. Более того, на самом деле вы не используете синтаксис, разделенный запятыми, так что, на мой взгляд, это предупреждение не должно появиться.

dependencies:
    - { role: 030.sensu-install }

должно быть в порядке.

.
2
ответ дан 3 December 2019 в 00:21

если вы используете частное репо для галактики, то

meta\main.yml

---
# local copy
#dependencies:
#   - { role: '/roles/java', java_packages: java-1.8.0-openjdk }
#http
#dependencies:
#   - { role: 'git+http://gitlabserver/ansible-galaxy/java.git,master'}
#ssh
dependencies:
   - name: java
     src: ssh://git@gitlabserver/ansible-galaxy/java.git
     scm: git
     version: master

Примечание: вам может понадобиться частный ключ на хосте для git-клона

.
-1
ответ дан 3 December 2019 в 00:21

Теги

Похожие вопросы