Paramiko2
Si deseas introducir el usuario y la contraseña de SSH en lugar de la clave privada, puedes hacerlo modificando el script anterior de la siguiente manera:
```python
import paramiko
import os
# Especifica los detalles de la conexión SSH a la máquina remota
host = '192.168.1.100'
user = 'usuario'
password = 'contraseña'
# Crea una conexión SSH a la máquina remota
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=host, username=user, password=password)
# Ejecuta comandos en la máquina remota usando Ansible
comando_ping = 'ansible webservers -m ping -i hosts -u usuario -k -K'
comando_playbook = 'ansible-playbook tasks.yml -i hosts -u usuario -k -K'
stdin, stdout, stderr = ssh.exec_command(comando_ping, get_pty=True)
stdin.write(password + '\n')
output = stdout.read().decode()
print(output)
stdin, stdout, stderr = ssh.exec_command(comando_playbook, get_pty=True)
stdin.write(password + '\n')
output = stdout.read().decode()
print(output)
# Cierra la conexión SSH
ssh.close()
```
En este ejemplo, se utiliza el parámetro `-k` en los comandos de Ansible para especificar que se debe solicitar la contraseña del usuario en lugar de la clave privada. También se utiliza el parámetro `-K` para especificar que se debe solicitar la contraseña del usuario para obtener permisos de superusuario.
En las líneas 6-8, se especifica el host, usuario y contraseña para la conexión SSH.
En las líneas 14 y 15, se ajustan los comandos de Ansible para incluir los parámetros `-k` y `-K`.
En las líneas 19 y 27, se utiliza el método `get_pty=True` para solicitar un terminal pseudo-TTY, lo que permite que la contraseña se escriba en la consola.
Finalmente, en las líneas 22 y 30, se utiliza el método `stdin.write()` para escribir la contraseña del usuario en la consola.
Espero que esto te sea útil. ¡No dudes en preguntar si necesitas más ayuda!
Comentarios
Publicar un comentario