
Estoy intentando ejecutar mi primer libro de jugadas. Ejecutando AWX en CentOS8, intentando conectarse a un dispositivo remoto usando SSH. En mi dispositivo remoto ejecuté ssh-genkey en mi dispositivo y agregué la clave .pub al archivo autorizado_keys. También tomé la clave privada .pub, creé un tipo de máquina de credenciales y agregué la clave privada. El nombre de usuario y la contraseña están en blanco. Solo puedo conectarme usando el usuario root a mi dispositivo remoto. Ingrese la descripción de la imagen aquí.
Mi libro de jugadas es:
- 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
Estoy intentando conectarme por SSH a mi dispositivo remoto y leer los detalles del firmware de un archivo en el dispositivo remoto.
Cuando ejecuto mi libro de jugadas, la salida falla y no creo que se esté conectando al dispositivo remoto. Puedo SSH manualmente desde mi host AWX al dispositivo remoto desde una sesión de PuTTY. Probé con un archivo de clave privada en el host AWX y puedo enviar SSH a mi dispositivo remoto usando la clave de PuTTY.
Salida de 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
¿Alguien puede indicarme la dirección correcta sobre por qué no me conecto vía SSH a mi dispositivo remoto?
Respuesta1
Tienes un problema para conectarte a través de ssh.
10.162.29.138 es una dirección privada. ¿Está ejecutando el script ansible desde una máquina en la VPC? Si no, entonces esa es laprimer problemanecesitas dirigirte.
Si está en la misma VPC o tiene un túnel hacia la subred, intente ejecutarlo nc -zv 10.162.29.138 22
; si se conecta, intente nuevamente con el script ansible. Si eso todavía fallapor la misma razón, luego intente conectar usando ssh -vv ....
en la línea de comando la descripción del resultado de los comandos nc y ssh.
Respuesta2
Me estoy conectando a GITHUB y sincronizando el proyecto en mi host AWX local. Tanto AWX como el dispositivo al que estoy intentando realizar ssh están en la misma red local 10.162.29.x.
Ejecuté tus comandos. Puedo conectarme usando NCAP y ssh, pero cuando estoy en modo detallado para ssh, sigue diciendo "Conectando al puerto 22 10.162.29.138 [10.162.29.138], así que no estoy seguro de por qué es así y no se completa la conexión.
[localadmin@centOS8-awx ~]$ nc -zv 10.162.29.138 22 Ncat: Versión 7.70 (https://nmap.org/ncat) Ncat: Conectado a 10.162.29.138:22. Ncat: 0 bytes enviados, 0 bytes recibidos en 0,01 segundos.
[localadmin@centOS8-awx ~]$ ssh[correo electrónico protegido] Contraseña:
ADVERTENCIA: El uso inadecuado de los comandos del shell podría provocar la pérdida de datos, la eliminación de archivos importantes del sistema u otros resultados inesperados. Vuelva a verificar su sintaxis al escribir comandos de shell.
[root@ACS8008-0520414440 ~]# exitConexión a 10.162.29.138 cerrada.
[localadmin@centOS8-awx ~]$ ssh -vv[correo electrónico protegido] OpenSSH_8.0p1, OpenSSL 1.1.1k FIPS 25 de marzo de 2021 debug1: lectura de datos de configuración /etc/ssh/ssh_config debug1: lectura de datos de configuración /etc/ssh/ssh_config.d/05-redhat.conf debug2: verificación de coincidencia para 'todo final' 'host 10.162.28.138 originalmente 10.162.28.138 debug2: coincidencia no encontrada debug1: leyendo datos de configuración /etc/crypto-policies/back-ends/openssh.config debug1: solicitudes de configuración final Pase de coincidencia debug2: resolve_canonicalize: el nombre de host 10.162.28.138 es la dirección debug1: volver a analizar la configuración debug1: leer datos de configuración /etc/ssh/ssh_config debug1: leer datos de configuración /etc/ssh/ssh_config.d/05-redhat.conf debug2: verificar la coincidencia para el host 'final todo' 10.162.28.138 originalmente 10.162.28.138 debug2: coincidencia encontrada debug1: leyendo datos de configuración /etc/crypto-policies/back-ends/openssh.config debug2: ssh_connect_direct debug1: conectándose al puerto 22 de 10.162.28.138 [10.162.28.138].