1
我試圖運行我的第一個劇本,在四臺服務器上安裝Java,隨後定義一個JAVA_HOME環境變量。Ansible錯誤更改處理程序未定義
ansible-playbook site.yml --check
PLAY [crave_servers] **********************************************************
GATHERING FACTS ***************************************************************
ok: [54.174.151.196]
ok: [54.174.197.35]
ok: [54.174.207.83]
ok: [54.174.208.240]
TASK: [java | install Java JDK] ***********************************************
changed: [54.174.197.35]
changed: [54.174.151.196]
changed: [54.174.208.240]
changed: [54.174.207.83]
ERROR: change handler (setvars) is not defined
我已經把我的site.yml在/ etc/ansible
---
- hosts: crave_servers
remote_user: ubuntu
sudo: yes
roles:
- java
我已經放在在/ etc/ansible/JAVA /任務
---
- name: install Java JDK
apt: name=default-jdk state=present
notify:
- setvars
main.yml我已將main.yml放在/ etc/ansible/handlers下
---
- name: setvars
shell: echo "JAVA_HOME=\"/usr/lib/jvm/java-7-openjdk-amd64\"" >> /etc/environment
Now我不確定句法是否是我的處理程序的結構是正確的。但從輸出中可以看出,Ansible能夠找到正確的角色並執行正確的任務。但是任務找不到處理程序。 沒有人似乎有同樣的問題。我真的不知道如何調試它,因爲我的可靠版本似乎缺少配置文件。
謝謝你對你的答案要加倍努力。你是正確的,使用shell的處理程序不是冪等的,我只是想在模塊不存在的情況下調查Ansible的shell功能。 –