1
背景
我正在試驗Ansible(1.9.4)角色,我試圖獲取角色依賴關係的掛起。依賴的角色未運行
我已經創建了以下角色:
- ,它安裝了Oracle JDK(ansible-java8)角色
- 是安裝Tomcat的(ansible-tomcat7)
第二個角色角色定義第一作爲依賴於/ansible-tomcat7/meta/main.yml
:
dependencies:
- { role: java8 }
我還包含以下內容的requirements.yml文件:
- name: java8
src: 'https://github.com/gregwhitaker/ansible-java8'
我加入了以下配置我/etc/ansible/ansible.cfg
配置我roles_path一個地方,我的主目錄:
roles_path = ~/ansible/roles
然後我裝
ansible-galaxy install -r requirements.yml
一旦命令被跑我可以看到java8角色:使用以下命令ansible-java8
作用java8
在〜/ ansible/roles目錄中。
但是,當我運行一個調用tomcat7角色的playbook時,只會執行該角色。 java8角色在tomcat7角色之前未執行。
PLAY [all] ********************************************************************
GATHERING FACTS ***************************************************************
ok: [default]
TASK: [Install Tomcat7 (Ubuntu)] **********************************************
changed: [default] => (item=tomcat7,libtcnative-1,libapr1)
TASK: [Install Tomcat7 (Debian)] **********************************************
skipping: [default]
TASK: [Install Tomcat7 (Amazon Linux)] ****************************************
skipping: [default]
PLAY RECAP ********************************************************************
default
問題
- 這是正確的方式來定義相關的角色,或者已經我完全錯過了什麼?
- 我正確地認爲,因爲我將tomcat7角色標記爲依賴於java8,java8角色應該從roles_path定位並首先運行?
- 我犯了什麼錯誤導致java8角色在tomcat7角色之前不能運行?
這對我很好,你可以確認你的ansible.cfg是否有這個?'[defaults] roles_path =〜/ ansible/roles' –
此外,您的java8角色'meta/main.yml'缺少'依賴關係:[]'。這導致'ansible-galaxy'引發非嚴重錯誤。 –