Ошибка перезапуска службы Ansible

У меня возникли проблемы с перезапуском демона 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"]}

Как видно из предупреждения, мы должны использовать служебный модуль, но я все еще не уверен, в чем проблема.


person Steven Liao    schedule 11.05.2015    source источник
comment
Такая же проблема здесь с той же настройкой. Первые исследования, кажется, показывают, что перезапуск вызывается с помощью «/etc/init.d/ssh restart» (стиль SysV) вместо «restart ssh» (стиль выскочки). В этом github.com/ansible/ansible-modules-core обнаружена проблема. / issues / 1298   -  person leucos    schedule 11.05.2015
comment
Это похоже на ошибку, как заявил @leucos. Также не имеет отношения, но, похоже, в permitRootLogin no есть опечатка. Используйте верблюжий футляр.   -  person axil    schedule 11.05.2015
comment
похоже, что ошибка устранена github.com/ansible/ansible-modules- core / commit /   -  person leucos    schedule 11.05.2015
comment
Я подтверждаю, что текущая разработка (2.0.0.14080.ded6e9b) устранила проблему.   -  person leucos    schedule 11.05.2015


Ответы (1)


Как указано в комментариях выше, это проблема Ansible, которая, по-видимому, будет исправлена ​​в версии 2.0.

Я просто изменил свой обработчик на использование модуля command и продолжил:

- name: restart sshd
  command: service ssh restart
person Asfand Qazi    schedule 20.05.2015
comment
Согласно этому github.com/ansible/ansible-modules-core/commit/ ошибка будет исправлена ​​в Ansible 1.9.2, поэтому модуль service можно будет снова использовать - person Asfand Qazi; 08.12.2015
comment
У меня все еще возникает ошибка с ansible-1.9.4-1.fc23.noarch AFAICS - person Nemo; 15.01.2016
comment
То же самое здесь с ansible 2.0.1.0 и supervisord 3.0b2 в Ubuntu 14.04.1 - person vabada; 21.03.2016
comment
У меня возникли проблемы с перезапуском php7.0-fpm. Переход с служебного модуля на command: service php7.0-fpm restart исправил эту проблему. - person james2doyle; 21.06.2016
comment
Та же проблема все еще на 2.2.1.0 :) - person Jakov Sosic; 02.03.2017
comment
Возникла проблема при использовании 1.9. Недавно обновился до 2.3, и с тех пор проблема решена. - person tamakisquare; 18.04.2017
comment
Все еще происходит доступный 2.3.0.0 - person Dave Hilditch; 25.04.2017
comment
Да, все еще происходит в 2.4.1.0 :-( И это даже предупреждает меня об этом: [ПРЕДУПРЕЖДЕНИЕ]: Рассмотрите возможность использования служебного модуля, а не запуска службы. Даже если это не работает :-D - person Niels Kristian; 14.11.2017
comment
Спасибо за помощь. 5 лет спустя команда также может быть systemctl restart sshd - person Anthony Petrillo; 22.12.2020