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
答案1
根据以下情况更新 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
不会[DEPRECATION WARNING]: The comma separated role spec format
再返回该问题。
答案2
GitHub 上有一个关于此问题的开放错误修复拉取请求,但目前还不清楚这是否是一个错误,或者你应该使用来源:相反,请检查讨论。
https://github.com/ansible/ansible/pull/14612
我猜在开发人员下定决心之前,您可以忽略该警告。此外,您实际上并没有使用逗号分隔语法,所以我认为不应该出现此警告。
dependencies:
- { role: 030.sensu-install }
应该可以。
答案3
如果你正在使用 Galaxy 的私人仓库,那么
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 clone