此代碼在1.7中正常工作。我更新到1.8,現在我得到一個語法錯誤。任務中的Ansible語法錯誤
這是nagios_iptables.yml代碼
---
- name: get iptables rules
shell: iptables -L
register: iptablesrules
always_run: yes
changed_when: false
- name: add nagios iptables port 5666
command: /sbin/iptables -I INPUT 1 -p tcp --dport 5666 --source 192.168.1.59 -j ACCEPT -m comment --comment "nagios"
when: iptablesrules.stdout.find("nagios") == -1
- name: add nagios iptables port 5666 localhost
command:/sbin/iptables -I INPUT 1 -p tcp --dport 5666 --source 127.0.0.1 -j ACCEPT -m comment --comment "nagios"
when: iptablesrules.stdout.find("nagios") == -1
- name: save iptables
command: service iptables save
- name: restart iptables
service: name=iptables state=restarted
這是我怎麼稱呼它:
- include: tasks/nagios_iptables.yml
這是語法錯誤,我得到:
ERROR: Syntax Error while loading YAML script,
.../playbooks/tasks/nagios_iptables.yml
Note: The error may actually appear before this position: line 14, column 3
command:/sbin/iptables -I INPUT 1 -p tcp --dport 5666 --source 127.0.0.1 -j ACCEPT -m comment --comment "nagios" when: iptablesrules.stdout.find("nagios") == -1
我不知道問題是什麼,希望它是明顯的。
根據維基百科,YAML格式*需要*冒號後的空格:「鍵與冒號+空格分隔。」所以如果它以前有效,那就是錯誤,而不是現在的表現。資料來源:http://en.wikipedia.org/wiki/YAML#Associative_arrays – fukawi2 2014-12-04 03:12:43
看起來像一個「我們修正了錯誤」,這就是爲什麼它不再工作,情況。很公平。 – jgritty 2014-12-04 08:06:51