2014-12-03 5 views
0

Этот код работал отлично в 1.7. Я обновил до 1.8 и теперь получаю синтаксическую ошибку.Ошибка синтаксиса в задаче

Это код в 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

I не знаю, в чем проблема, надеюсь, это нечто очевидное.

ответ

0

Ну, это оказалось чем-то очевидным.

Однако, это довольно коварно.

Проблема была недостающее пространство на этой линии:

command:/sbin/iptables -I INPUT 1 -p tcp --dport 5666 --source 127.0.0.1 -j ACCEPT -m comment --comment "nagios" 

Отсутствие пространства между command: и /sbin/iptables вызывает проблему.

Это, кажется, новое ограничение в 1,8, или, может быть, я схожу с ума.

+1

Согласно wikipedia, формат YAML * требует * пробела после двоеточия: «Ключи отделены от значений двоеточием + пробелом». Поэтому, если он работал ранее, это была ошибка, а не то, как она ведет себя сейчас. Источник: http://en.wikipedia.org/wiki/YAML#Associative_arrays – fukawi2

+0

Похож на «мы исправили ошибку», поэтому она больше не работает, ситуация. Справедливо. – jgritty

Смежные вопросы