2016-01-08 2 views
7

プライベートロールのセット(プライベートgitリポジトリ内のアシスタントロール)を持つAnsibleプレイブックを実行する際に問題があります。プライベートgitロール依存関係を使用する可能性のあるプレイブック

たとえば、depに依存するロールbaseを使用するプレイブックがあります。どちらもプライベートgitリポジトリでホストされています。 ansible-galaxyを実行すると、必要なすべてのロールと依存関係がフェッチされインストールされますが、後でansible-playbookが正しい役割名を使用すると失敗します。

play.yml

- hosts: test 
    roles: 
    - role: base 

requirements.yml

- name: base 
    src: ssh://[email protected].0.0.1/ansible/role-base.git 
    scm: git 

role-base/meta/main.yml

galaxy-info: 
    author: Me 
    description: Test Ansible role dependencies 
    min_ansible_version: 1.9 
    platforms: Ubuntu 
dependencies: 
    - name: dep 
    src: ssh://[email protected]/ansible/role-dep.git 
    scm: git 

$ ansible-galaxy -r requirements.yml 
- executing: git clone ssh://[email protected]/ansible/role-base.git base 
- executing: git archive --prefix=base/ --output=/tmp/tmp4YKG7a.tar 
- extracting base to ansible-roles/base 
- base was installed successfully 
- adding dependency: dep 
- executing: git clone ssh://[email protected]/ansible/role-dep.git dep 
- executing: git archive --prefix=dep/ --output=/tmp/tmpT2YiW4.tar 
- extracting base to ansible-roles/dep 
- dep was installed successfully 

$ ansible-playbook play.yml 
ERROR: expected a role name in dictionary: {'scm': 'git', 'src': 'ssh://[email protected]/ansible/role-dep.git', 'name': 'dep'} 
$ ansible-galaxy -r requirements.yml 
- executing: git clone ssh://[email protected]/ansible/role-base.git base 
- executing: git archive --prefix=base/ --output=/tmp/tmpTcvpDu.tar 
- extracting base to ansible-roles/base 
- base was installed successfully 
- adding dependency: dep 
- executing: git clone ssh://[email protected]/ansible/role-dep.git dep 
- executing: git archive --prefix=dep/ --output=/tmp/tmpd726OV.tar 
- extracting base to ansible-roles/dep 
- dep was installed successfully 

$ ansible-playbook play.yml 
ERROR: cannot find role in <pwd>/roles/git+ssh://[email protected]/ansible/role-dep.git,,dep or <pwd>/git+ssh://[email protected]/ansible/role-dep.git,,dep or <pwd>/ansible-roles/git+ssh://[email protected]/ansible/role-dep.git,,dep 

から役割の依存関係を使用する方法があります...

dependencies: 
    - role: "git+ssh://[email protected]/ansible/role-dep.git,,dep" 

ansible-galaxyの罰金ですが、それでもansible-playbookが失敗した:10

私は依存関係として、代替ロール名システムを使用してみましたプライベートレポジスは正しくですか?

答えて

2

1.9のバグです。私はPR(https://github.com/ansible/ansible/pull/13802)を作成しましたが、Anipal 2.0がリリースされたので統合されるのではないかと疑います。

+0

1.9.5があります。 – udondan

+0

1.9.5がリリースされました。リリースノート(https://groups.google.com/forum/#!topic/ansible-announce/h6KTqCd2r1c)で修正内容を確認することはできませんが – udondan

0

role-base/meta/main.ymlには、ロール名をdepと定義します。したがって、あなたはそれを次のように起動します:

+0

'dep'をどのホストにも適用していないので、' play.yml'サンプルのように、 'base'の依存関係として取り込む必要があります。 –

関連する問題