Синтаксическая ошибка Ansible в задаче

Этот код отлично работал в 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

Это синтаксическая ошибка, которую я получаю:

ОШИБКА: синтаксическая ошибка при загрузке скрипта YAML,

.../плейбуки/задачи/nagios_iptables.yml

Примечание. На самом деле ошибка может появиться перед этой позицией: строка 14, столбец 3.

команда:/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

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


person jgritty    schedule 03.12.2014    source источник


Ответы (1)


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

Тем не менее, это довольно коварно.

Проблема заключалась в отсутствии пробела в этой строке:

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, а может, я схожу с ума.

person jgritty    schedule 03.12.2014
comment
Согласно википедии, формат YAML требует пробела после двоеточия: ключи отделяются от значений двоеточием+пробелом. Так что, если это работало раньше, это была ошибка, а не то, как она ведет себя сейчас. Источник: en.wikipedia.org/wiki/YAML#Associative_arrays - person fukawi2; 04.12.2014
comment
Похоже, мы исправили ошибку, поэтому она больше не работает, ситуация. Справедливо. - person jgritty; 04.12.2014