У меня возникли проблемы с перезапуском демона SSH с помощью Ansible.
Я использую последнюю версию программного обеспечения по состоянию на 11 мая 2015 года (Ansible 1.9.1 / Vagrant 1.7.2 / VirtualBox 4.3.26 / Host: OS X 10.10.1 / Guest: ubuntu / trusty64).
tl; dr: похоже, что-то не так с тем, как я вызываю синтаксис службы.
Проблема с исходным вариантом использования (обработчик)
Пособие
- hosts: all
- remote_user: vagrant
- tasks:
...
- name: Forbid SSH root login
sudo: yes
lineinfile: dest=/etc/ssh/sshd_config regexp="^PermitRootLogin" line="permitRootLogin no" state=present
notify:
- restart ssh
...
- handlers:
- name: restart ssh
sudo: yes
service: name=ssh state=restarted
Вывод
NOTIFIED: [restart ssh]
failed: [default] => {"failed": true}
FATAL: all hosts have already failed -- aborting
Обработчик nginx успешно завершился с почти идентичным синтаксисом.
Задача также не выполняется
Пособие
- name: Restart SSH server
sudo: yes
service: name=ssh state=restarted
Тот же результат, что и в случае использования обработчика.
Специальная команда также не работает
Оболочка
> ansible all -i ansible_inventory -u vagrant -k -m service -a "name=ssh state=restarted"
Инвентарь
127.0.0.1:8022
Вывод
127.0.0.1 | FAILED >> {
"failed": true,
"msg": ""
}
Команда оболочки в коробке работает
Когда я использую SSH и запускаю обычную команду, все работает нормально.
> vagrant ssh
> sudo service ssh restart
ssh stop/waiting
ssh start/running, process 7899
> echo $?
0
Командная задача тоже работает
Вывод
TASK: [Restart SSH server] ****************************************************
changed: [default] => {"changed": true, "cmd": ["service", "ssh", "restart"], "delta": "0:00:00.060220", "end": "2015-05-11 07:59:25.310183", "rc": 0, "start": "2015-05-11 07:59:25.249963", "stderr": "", "stdout": "ssh stop/waiting\nssh start/running, process 8553", "warnings": ["Consider using service module rather than running service"]}
Как видно из предупреждения, мы должны использовать служебный модуль, но я все еще не уверен, в чем проблема.
permitRootLogin no
есть опечатка. Используйте верблюжий футляр. - person axil   schedule 11.05.2015