AWX SSH-Verbindung wird beim Ausführen des Playbooks nicht hergestellt

AWX SSH-Verbindung wird beim Ausführen des Playbooks nicht hergestellt

Ich versuche, mein erstes Playbook auszuführen. AWX läuft auf CentOS8 und ich versuche, per SSH eine Verbindung zum Remote-Gerät herzustellen. Auf meinem Remote-Gerät habe ich ssh-genkey ausgeführt und den .pub-Schlüssel zur Datei authorized_keys hinzugefügt. Ich habe auch den privaten .pub-Schlüssel genommen, einen Anmeldeinformationsmaschinentyp erstellt und den privaten Schlüssel hinzugefügt. Benutzername und Passwort sind leer. Ich kann mich nur als Root-Benutzer mit meinem Remote-Gerät verbinden. Bildbeschreibung hier eingeben

Mein Spielbuch ist:

- name: use machine credentials(1)
  hosts: ACS
  connection: ssh
  gather_facts: false
  timeout: 10

  tasks:      
  - name: Get firmware version from host
    shell: "date"
    #shell: cat /firmware | grep ^VERSION | cut -d"=" -f2
    register: firmware_version
    tags: firmware_version

Ich versuche, per SSH auf mein Remote-Gerät zuzugreifen und die Firmware-Details aus einer Datei auf dem Remote-Gerät zu lesen.

Wenn ich mein Playbook ausführe, schlägt die Ausgabe fehl und ich glaube nicht, dass eine Verbindung zum Remote-Gerät hergestellt wird. Ich kann von meinem AWX-Host aus einer Putty-Sitzung manuell per SSH auf das Remote-Gerät zugreifen. Ich habe es mit einer privaten Schlüsseldatei auf dem AWX-Host versucht und kann mit dem Schlüssel von Putty per SSH auf mein Remote-Gerät zugreifen.

Ausgabe von AWX:

Identity added: /runner/artifacts/196/ssh_key_data (/runner/artifacts/196/ssh_key_data)
ansible-playbook [core 2.14.2]
  config file = None
  configured module search path = ['/home/runner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.9/site-packages/ansible
  ansible collection location = /runner/requirements_collections:/home/runner/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible-playbook
  python version = 3.9.16 (main, Dec  8 2022, 00:00:00) [GCC 11.3.1 20221121 (Red Hat 11.3.1-4)] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True
No config file found; using defaults
host_list declined parsing /runner/inventory/hosts as it did not pass its verify_file() method
Parsed /runner/inventory/hosts inventory source with script plugin
Skipping callback 'awx_display', as we already have a stdout callback.
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: acs_backup.yml *******************************************************
1 plays in acs_backup.yml

PLAY [use machine credentials(1)] **********************************************

TASK [Get firmware version from host] ******************************************
task path: /runner/project/acs_backup.yml:18
<10.162.29.138> ESTABLISH SSH CONNECTION FOR USER: root
<10.162.29.138> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o 'ControlPath="/runner/cp/4477df8717"' 10.162.29.138 '/bin/sh -c '"'"'echo ~root && sleep 0'"'"''
<10.162.29.138> (0, b'/home/root\\r\\n', b"Warning: Permanently added '10.162.29.138' (ED25519) to the list of known hosts.\\r\\n")
<10.162.29.138> ESTABLISH SSH CONNECTION FOR USER: root
<10.162.29.138> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o 'ControlPath="/runner/cp/4477df8717"' 10.162.29.138 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/root/.ansible/tmp `"&& mkdir "` echo /home/root/.ansible/tmp/ansible-tmp-1677124576.2755764-27-69248210230276 `" && echo ansible-tmp-1677124576.2755764-27-69248210230276="` echo /home/root/.ansible/tmp/ansible-tmp-1677124576.2755764-27-69248210230276 `" ) && sleep 0'"'"''
<10.162.29.138> (0, b'ansible-tmp-1677124576.2755764-27-69248210230276=/home/root/.ansible/tmp/ansible-tmp-1677124576.2755764-27-69248210230276\\r\\n', b'')
<ACS-10.162.29.138> Attempting python interpreter discovery
<10.162.29.138> ESTABLISH SSH CONNECTION FOR USER: root
<10.162.29.138> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o 'ControlPath="/runner/cp/4477df8717"' 10.162.29.138 '/bin/sh -c '"'"'echo PLATFORM; uname; echo FOUND; command -v '"'"'"'"'"'"'"'"'python3.11'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.10'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.9'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.8'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.7'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.6'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python3.5'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'/usr/bin/python3'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'/usr/libexec/platform-python'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python2.7'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'/usr/bin/python'"'"'"'"'"'"'"'"'; command -v '"'"'"'"'"'"'"'"'python'"'"'"'"'"'"'"'"'; echo ENDFOUND && sleep 0'"'"''
<10.162.29.138> (0, b'PLATFORM\\r\\nLinux\\r\\nFOUND\\r\\n/usr/bin/python3.5\\r\\n/usr/bin/python3\\r\\n/usr/bin/python2.7\\r\\n/usr/bin/python\\r\\n/usr/bin/python\\r\\nENDFOUND\\r\\n', b'')
<10.162.29.138> ESTABLISH SSH CONNECTION FOR USER: root
<10.162.29.138> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o 'ControlPath="/runner/cp/4477df8717"' 10.162.29.138 '/bin/sh -c '"'"'/usr/bin/python3.5 && sleep 0'"'"''
fatal: [ACS-10.162.29.138]: FAILED! => {
    "changed": false,
    "msg": "The shell action failed to execute in the expected time frame (10) and was terminated"
}

PLAY RECAP *********************************************************************
ACS-10.162.29.138          : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

Kann mir jemand erklären, warum ich keine Verbindung über SSH zu meinem Remote-Gerät herstelle?

Antwort1

Sie haben ein Problem bei der Verbindung über SSH.

10.162.29.138 ist eine private Adresse. Führen Sie das Ansible-Skript von einem Computer im VPC aus? Wenn nicht, dann ist dies dieerste AusgabeSie müssen sich damit befassen.

Wenn Sie sich im selben VPC befinden oder einen Tunnel zum Subnetz haben, versuchen Sie es mit nc -zv 10.162.29.138 22- wenn eine Verbindung hergestellt wird, versuchen Sie Ihr Ansible-Skript erneut. Wenn das immer noch fehlschlägtaus dem gleichen Grunde, versuchen Sie dann, eine Verbindung mithilfe ssh -vv ....von in der Befehlszeile herzustellen, und beschreiben Sie die Ausgabe der Befehle „nc“ und „ssh“.

Antwort2

Ich verbinde mich mit GITHUB und synchronisiere das Projekt auf meinem lokalen AWX-Host. Sowohl AWX als auch das Gerät, mit dem ich per SSH verbunden werden möchte, befinden sich im selben lokalen Netzwerk 10.162.29.x.

Ich habe Ihre Befehle ausgeführt. Ich kann eine Verbindung über NCAP und SSH herstellen, aber im ausführlichen Modus für SSH bleibt die Meldung „Verbindung zu 10.162.29.138 [10.162.29.138] Port 22 wird hergestellt“ angezeigt. Ich bin mir also nicht sicher, warum das so ist und die Verbindung nicht hergestellt wird.

[localadmin@centOS8-awx ~]$ nc -zv 10.162.29.138 22 Ncat: Version 7.70 (https://nmap.org/ncat) Ncat: Verbunden mit 10.162.29.138:22. Ncat: 0 Bytes gesendet, 0 Bytes empfangen in 0,01 Sekunden.

[localadmin@centOS8-awx ~]$ ssh[email geschützt] Passwort:

WARNUNG: Die unsachgemäße Verwendung von Shell-Befehlen kann zu Datenverlust, der Löschung wichtiger Systemdateien oder anderen unerwarteten Ergebnissen führen. Bitte überprüfen Sie Ihre Syntax, wenn Sie Shell-Befehle eingeben.

[root@ACS8008-0520414440 ~]# exitConnection zu 10.162.29.138 geschlossen.

[localadmin@centOS8-awx ~]$ ssh -vv[email geschützt] OpenSSH_8.0p1, OpenSSL 1.1.1k FIPS 25. März 2021 debug1: Konfigurationsdaten /etc/ssh/ssh_config werden gelesen debug1: Konfigurationsdaten /etc/ssh/ssh_config.d/05-redhat.conf werden gelesen debug2: Übereinstimmung wird für „final all“-Host 10.162.28.138 geprüft, ursprünglich 10.162.28.138 debug2: Übereinstimmung nicht gefunden debug1: Konfigurationsdaten /etc/crypto-policies/back-ends/openssh.config werden gelesen debug1: Konfiguration fordert endgültigen Übereinstimmungspass an debug2: resolve_canonicalize: Hostname 10.162.28.138 ist Adresse debug1: Konfiguration wird erneut analysiert debug1: Konfigurationsdaten /etc/ssh/ssh_config werden gelesen debug1: Konfigurationsdaten /etc/ssh/ssh_config.d/05-redhat.conf werden gelesen debug2: Übereinstimmung wird für „final all“-Host geprüft 10.162.28.138 ursprünglich 10.162.28.138 debug2: Übereinstimmung gefunden debug1: Lese die Konfigurationsdaten /etc/crypto-policies/back-ends/openssh.config debug2: ssh_connect_direct debug1: Verbindet sich mit 10.162.28.138 [10.162.28.138] Port 22.

verwandte Informationen