web-dev-qa-db-fra.com

Pourquoi un problème "" [Errno 2] Aucun fichier ou répertoire "," rc "` ne se produit-il lorsque Ansible est exécuté à distance?

Fonctionnement:

- name: get vhosts
  command: rabbitmqctl list_vhosts
  register: vhosts
  changed_when: false

en délivrant

Sudo ansible-playbook file.yml

résulte en:

TASK [030.sensu : get vhosts] **************************************************
fatal: [IP]: FAILED! => {"changed": false, "cmd": "rabbitmqctl list_vhosts", 
"failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}

tandis que cette erreur ne se produit pas si ansible est exécuté sur le système lui-même.


Discussion

1. La commande rc est-elle manquante?

L'émission de rc à la fois localement car à distance entraîne:

bash: rc: command not found...

Si cela devait être un problème, l'exécution du playbook local échouerait également.


2. Est-ce un problème connu?

Requête "No such file or directory" rc ansible centos sur Internet a généré ce Q&R .

Selon ne des réponses le problème est causé par command. L'utilisation de Shell à la place résoudrait le problème. La solution a été tentée, mais elle n'a pas résolu le problème.

8
030

Le retour de ansible est json. Assez imprimé:

{
  "changed": false,
  "cmd": "rabbitmqctl list_vhosts",
  "failed": true,
  "msg": "[Errno 2] No such file or directory",
  "rc": 2
}

Vous remarquerez que msg contient "[Errno 2] Aucun fichier ou répertoire de ce type". Au lieu de cela, rc est le code de retour (sortie), "2" dans votre cas, de la commande rabbitmqctl list_vhosts.

Dans Shell (bash/sh/que ce soit) exécutez rabbitmqctl. Vous n'avez peut-être pas installé rabbitmqctl. Ou, comme le suggère à juste titre l'EEAA, ce n'est pas dans $PATH. Sur certaines distributions (Debian/Ubuntu) /usr/sbin n'est pas inclus dans le chemin des utilisateurs normaux, mais il est inclus pour root.

9
jscott

Ajouter become: true dans le fichier.yml:

- hosts:
    - <enter-IP>
  roles:
    - 030.sensu
  become: true

et l'exécuter en émettant ansible-playbook file.yml a également résolu le problème.

1
030