2017-12-19 3 views
-1

Ich migriere von Capistrano nach Ansible für die Bereitstellung einer Webanwendung. Es ist mir gelungen, fast alle unsere Rezepte zu migrieren, aber ich stecke fest.Wie kann ich mit Ansible eine SSH-Shell zur Fernbedienung öffnen?

Um schnell auf einen Remote-Server zugreifen zu können, den wir zuvor mit cap production ssh aufgerufen haben, führt dieser Befehl einen lokalen ssh-Befehl mit der Stage-Konfiguration aus. So kann jeder im Team schnell auf den Remote-Server zugreifen, ohne den benötigten Benutzernamen und Hostnamen finden zu müssen.

Ich versuche, das gleiche mit Ansible zu tun, aber ich bin mir nicht sicher, ob es überhaupt möglich ist. Alles was ich bis jetzt bekomme ist dieser Fehler: Pseudo-terminal will not be allocated because stdin is not a terminal.

Hier ist die Ansible Aufgabe, die ich benutze.

- name: SSH to host 
    hosts: app 
    gather_facts: no 
    tasks: 
    - command: ssh {{ ansible_user }}@{{ inventory_hostname }} 
     delegate_to: localhost 

Irgendwelche Ideen?

+2

Bitte erläutern Sie, was Sie zu tun versuchen. Warum würden Sie einen Befehl verwenden, um ssh aus einem Playbook auszuführen, ohne dass eine Aufgabe ausgeführt werden muss? –

+0

Ich möchte einen Befehl, der eine Remote-Shell mit den Inventarinformationen des Ansible öffnet. Ich weiß, dass es nicht ist, was Ansible tun soll. Es ist nicht, was Capistrano nicht tun soll. – Erwan

Antwort

0

Ansible ist definitiv dafür gemacht.
Ich kann keine interaktive SSH-Verbindung mit einem Playbook öffnen.

Eine mögliche Lösung für Ihren Bedarf ist SSH Informationen aus dem Inventar mit ansible-inventory mit so etwas zu extrahieren:

eval $(ansible-inventory --inventory ${INVENTORY_FILE_PATH} --host ${INVENTORY_HOSTNAME} | jq -r '"ssh -p " + (.ansible_port|tostring) + " " + .ansible_user + "@" + .ansible_host') 

lasse ich Sie einen Weg, um die Fälle zu behandeln finden, wenn es keine bestimmt Port (eine so Fallback auf Port 22) oder wenn es eine ansible_ssh_private_key_file mit -i Option zu verwenden gibt.

Verwandte Themen