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