2016-05-18 3 views
2

Как перезапустить IPtables службы из анзибля (для того, чтобы перезагрузить конфигурационный файл /etc/sysconfig/iptables)удалось перезапустить IPTables из анзибля (требуется Интерактивная аутентификация)

У меня есть обработчик restart iptables определен как

service: name=iptables enabled=yes state=restarted 

Но он производит следующее сообщение об ошибке:

фатальный: [xx.xx.xx.xx]: FAILED! => {"changed": false, "failed": true, "msg": "Не удалось остановить iptables.service: требуется интерактивная аутентификация . \ n Не удалось запустить iptables.service: требуется интерактивная проверка . \ n" }

Я работаю с CentOS Linux release 7.2.1511 (Core)

+1

Вы используете свою задачу как Sudo? – ydaetskcoR

+0

Нет, я не использовал sudo. Добавление стать: да разрешила проблему. Интересно, почему сообщение об ошибке вводит в заблуждение. Обычно отсутствующее сообщение sudo вызывало сообщение об ошибке, например «Permission denied». –

+1

Если вы запустили 'systemctl restart iptables' (или эквивалент, если вы не используете systemd) в качестве не привилегированного пользователя в поле непосредственно, вы заметите, что получите приглашение sudo/gksudo. Это то, что Ansible обнаруживает и вызывает ошибки. – ydaetskcoR

ответ

6

Я не был запущен моей команде обработчика как корень. Если обработчик содержит become: yes, тогда обработчик отлично работает.

- name: restart iptables 
    become: yes 
    service: name=iptables enabled=yes state=restarted 

Другим способом освежающей конфигурации Iptables, без перезагрузки это

- name: reload iptables 
    become: yes 
    shell: iptables-restore < /etc/sysconfig/iptables 
+0

У меня была эта проблема в обработчике. Моя роль включает 'стать: да' в task/main.yml. Для обработчиков я добавил заявление стать обработчикам, которые им были нужны. – bgStack15