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

Entradas populares de este blog

Migración

Docker alpine

Questasim