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.
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.
Playbook
- name: Restart SSH server
Sudo: yes
service: name=ssh state=restarted
Même sortie que le cas d'utilisation du gestionnaire.
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": ""
}
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
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.
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