Ansible Redémarrer Le Service A Échoué
J'ai eu un peu de difficulté à redémarrer le démon SSH avec Ansible.
Je suis en utilisant la dernière version du logiciel à compter du 11 Mai 2015 (Ansible 1.9.1 /Vagrant 1.7.2 /VirtualBox 4.3.26 /Hôte: OS X 10.10.1 /Invité: ubuntu/trusty64)
tl;dr: Il semble y avoir quelque chose de mal avec la façon dont je suis en invoquant le service de la syntaxe.
Problème Avec L'Original De Cas D'Utilisation (Handler)
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
La nginx gestionnaire terminé avec succès avec presque identique à la syntaxe.
Tâche Échoue Également
Playbook
- name: Restart SSH server
sudo: yes
service: name=ssh state=restarted
Même sortie que le gestionnaire de cas d'utilisation.
Ad Hoc Commande É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": ""
}
Shell de commande dans la zone de travaux
Quand je SSH et exécutez la commande habituelle, tout fonctionne bien.
> vagrant ssh
> sudo service ssh restart
ssh stop/waiting
ssh start/running, process 7899
> echo $?
0
Tâche de commande fonctionne aussi
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 suis toujours pas sûr de savoir où est le hic, c'est.
- Même problème ici avec la même configuration. Les premières enquêtes semblent montrer que le redémarrage est invoquée avec " /etc/init.d/ssh restart "(SysV style) au lieu de "redémarrer ssh' (nouveau style). Il y a un sujet ouvert sur ce github.com/ansible/ansible-modules-core/issues/1298
- Ça semble être un bug comme @leucos déclaré. Aussi non, mais il semble y avoir une faute de frappe dans
permitRootLogin no
. Utilisation camelcase. - semble que le bug est pris en charge github.com/ansible/ansible-modules-core/commit/...
- Je confirme que le courant devel (2.0.0.14080.ded6e9b) a résolu le problème.
Vous devez vous connecter pour publier un commentaire.
Comme les commentaires ci-dessus de l'état, c'est un Ansible question qui va apparemment être résolu dans la version 2.0.
Je viens de changer mon gestionnaire à utiliser le
command
module et déplacé sur:service
module peut être utilisé de nouveaucommand: service php7.0-fpm restart
fixe pour moi.