在Ansible的meta / main.yml中定义angular色依赖的正确语法是什么?

元/ 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运行了deprecation警告解决了,但是ansible-playbook /etc/ansible/roles/role_under_test/tests/${playbook} --syntax-check结果是:

 ERROR! role definitions must contain a role name 

按照以下代码更新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问题了。

在github上有关于这个问题的打开bugfix pull请求,但是它仍然不清楚,如果它的错误或者你应该使用src:相反,检查讨论。

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

我想直到开发者下定决心,你才能忽略这个警告。 此外,你不是真正使用逗号分隔的语法,所以这个警告不应该出现在我看来。

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

应该可以。

如果你正在使用私人回购的话

元\ 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的主机上有私钥