2016-12-19 4 views
3

Ich bin neu bei Ansible und versuchen, ein lokales Skript auf einem Remote-Knoten mit dem Skript-Modul auszuführen. Meine Aufgabe ist wie folgt definiert:Ansible-Skript-Modul - Steuer Socket-Berechtigung verweigert

- name: Initial setup 
    script: ../../../initial_setup.sh 
    become: yes 

Wenn ich ausführen, um das Textbuch ich den Fehler unten, aber ich bin mir nicht klar, was das eigentliche Problem ist. Zeigt dies ein Problem beim Verbinden mit dem Knoten oder ein Problem beim Übertragen des Skripts?

fatal: [default]: FAILED! => { 
    "changed": true, 
    "failed": true, 
    "invocation": { 
     "module_args": { 
      "_raw_params": "../../../initial_setup.sh" 
     }, 
     "module_name": "script" 
    }, 
    "rc": 127, 
    "stderr": "Control socket connect(/tmp): Permission denied\r\nControlSocket /tmp already exists, disabling multiplexing\r\nConnection to 127.0.0.1 closed.\r\n", 
    "stdout": "/bin/sh: 1: /home/ubuntu/.ansible/tmp/ansible-tmp-1482161914.64-107588947758469/initial_setup.sh: not found\r\n", 
    "stdout_lines": [ 
     "/bin/sh: 1: /home/ubuntu/.ansible/tmp/ansible-tmp-1482161914.64-107588947758469/initial_setup.sh: not found" 
    ] 
} 
+0

Können Sie prüfen, ob ein anderes Modul funktioniert? Zum Beispiel: 'shell: echo Hallo' – helloV

+0

Sind Sie sicher, dass' default' ein Remote-Host ist? –

+0

Ich bin sicher, dass 'default' ein Remote-Host ist, da er mit anderen Aufgaben zusammenarbeitet. – Phill

Antwort

2

tl; dr

-o ControlMaster=auto Sicherstellen, dass in ssh_args in ansible definiert in ansible.cfg:

[ssh_connection] 
ssh_args = -o ControlMaster=auto -o ControlPersist=60s 

die folgenden Fehler auf SSH-Verbindung Multiplexing verbunden:

Steuerbuchse (/ tmp) anschließen: Zugriff verweigert
ControlSocket/tmp bereits vorhanden ist, Multiplexing
Verbindung zu 127.0.0.1

Deaktivierung geschlossen

Es versucht, eine Buchse direkt an /tmp zu schaffen, nicht in /tmp .. Einige andere Parameter, die irgendwo für SSH definiert sind, könnten hier eine Rolle spielen.

Wenn Sie den Wert ControlMaster auf auto setzen, wird von SSH eine neue Masterverbindung erstellt, falls die vorhandene nicht vorhanden ist (oder Probleme haben, wie hier?).