web-dev-qa-db-ja.com

Ansibleのmeta / main.ymlでロールの依存関係を定義する正しい構文は何ですか?

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
7
030

Meta-main.ymlを次のように更新します this snippet

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の問題が返されなくなりました。

7
030

この問題に関してgithubに未解決のバグ修正プルリクエストがありますが、バグであるか、代わりにsrc:を使用する必要があるかはまだ不明です。ディスカッションを確認してください。

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

開発者が決断するまでは、その警告を無視できると思います。さらに、実際にはコンマ区切りの構文を使用していないため、この警告は私の意見には表示されません。

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

大丈夫なはず。

2
EvilTorbalan

銀河のためにプライベートリポジトリを使用しているなら

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のホストに秘密鍵が必要な場合があります

0