web-dev-qa-db-fra.com

Échec du redémarrage du service Ansible

J'ai eu quelques problèmes avec le redémarrage du démon SSH avec Ansible.

J'utilise le dernier logiciel en date du 11 mai 2015 (Ansible 1.9.1/Vagrant 1.7.2/VirtualBox 4.3.26/Host: OS X 10.10.1/Guest: buntu/trusty64 )

tl; dr : Il semble y avoir un problème avec la façon dont j'invoque la syntaxe du service.

Problème avec le cas d'utilisation d'origine (gestionnaire)

Playbook

- 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

Sortie

NOTIFIED: [restart ssh] 

failed: [default] => {"failed": true}

FATAL: all hosts have already failed -- aborting

Le gestionnaire nginx s'est terminé avec succès avec une syntaxe presque identique.

La tâche échoue également

Playbook

- name: Restart SSH server
  Sudo: yes
  service: name=ssh state=restarted

Même sortie que le cas d'utilisation du gestionnaire.

La commande ad hoc échoue également

Shell

> ansible all -i ansible_inventory -u vagrant -k -m service -a "name=ssh state=restarted"

Inventaire

127.0.0.1:8022

Sortie

127.0.0.1 | FAILED >> {
    "failed": true,
    "msg": ""
}

La commande Shell dans la boîte fonctionne

Lorsque je SSH et exécute la commande habituelle, tout fonctionne bien.

> vagrant ssh
> Sudo service ssh restart
ssh stop/waiting
ssh start/running, process 7899
> echo $?
0

La tâche de commande fonctionne également

Sortie

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"]}

Comme nous pouvons le voir dans l'avertissement, nous sommes censés utiliser le module de service, mais je ne sais toujours pas où se situe l'accroc.

22
Steven Liao

Comme l'indiquent les commentaires ci-dessus, il s'agit d'un problème Ansible qui sera apparemment résolu dans la version 2.0.

Je viens de changer mon gestionnaire pour utiliser le module command et j'ai continué:

- name: restart sshd
  command: service ssh restart
27
Asfand Qazi