Принимая входные данные из файла в paramiko - PullRequest
0 голосов
/ 09 января 2019

Я написал код для ssh на сервере и выполнил команду, теперь мне нужно передать IP-адреса из файла в ssh и выполнить те же команды.

Я использовал paramiko в качестве ssh-клиента, в client.connect я давал имя хоста статически, я хотел бы выбрать один IP-адрес за раз из текстового файла и выполнить ту же программу.

import paramiko
import logging
import sys
logging.basicConfig(level=logging.INFO)
    def EsxCli():
        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy) client.connect(hostname='192.168.110.41',port='22',username='root',password='VMware1!',look_for_keys=False)
        stdin,stdout,stderr = client.exec_command('/etc/init.d/vShield-Stateful-Firewall status')
        output_read = stdout.read()
        if 'vShield-Stateful-Firewall is running' in str(output_read):
        logging.info('\nService is already running!')
        sys.exit(1)
        elif 'vShield-Stateful-Firewall is not running' in str(output_read):
            logging.info('\nService is down, STARTING IT NOW')
            stdin, stdout, stderr = client.exec_command('/etc/init.d/vShield-Stateful-Firewall start')
            service_status = stdout.read()
            logging.info(str(service_status))
        else:
            logging.exception('SSH Timed OUT')
            sys.exit(1)
EsxCli()

Один и тот же код должен быть выполнен для нескольких имен хостов. скажем, с 192.168.110.41 по 192.168.110.200

1 Ответ

0 голосов
/ 21 января 2019

Я смог завершить это. Преобразовал файл в СПИСОК Python.

ip = r'iplist.txt'
iplist=[line.strip() for line in open('iplist.txt')]
print(iplist)

Ниже приведен скрипт.

https://github.com/anudeep404/vmware_automation/blob/v1/service_restart_4_service_restart.py

...