0
0 Комментариев

Привет!

Только знакомлюсь с python, и в рамках рабочего процесса поставили задачу — написать скрипт, который поможет сменить пароль определенной учетки на 20 серверах без sudo.

Решил использовать paramiko.

Вот то, что я смог написать при помощи интернета:

import paramiko

COMMAND = passwd
USER = TEST_ENVIRONMENT
OLD_PASS = (‘PASSWORD’)
NEW_PASS = (‘NEW PASSWORD’)

DEVICES_IP = [192.168.100.1,192.168.100.2,192.168.100.3,192.168.100.4]

for IP in DEVICES_IP:
print(‘Connection to device {}, format( IP ))
client= paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect(hostname=IP, username=USER, password=PASSWORD,
look_for_keys=False, allow_agent=False)
with client.invoke_shell() as ssh:
ssh.send(COMMAND + ‘\n’)
time.sleep(1)
ssh.send(OLD_PASS + ‘\n’)
time.sleep(1)
ssh.send(NEW_PASS + ‘\n’)
time.sleep(1)
ssh.send(NEW_PASS + ‘\n’)
time.sleep(3)

else:
print(‘PASSWORD CHANGED ON ALL DEVICES_IP’).

Возможности проверить работоспособность скрипта на текущий момент нет. но, сразу возникают вопросы:

Оператор for будет работать до тех пор, пока не закончится список DEVICES_IP? Мне нужно, что бы он подключался по очереди ко всем хостам, указанным в параметре DEVICES_IP, и после перебора всех хостов выводил надпись — PASSWORD CHANGED ON ALL DEVICES_IP.

Если я глупый (тупой) — не ругайте, сильно, пожалуйста :) Объясните, как правильно написать всю эту приблуду :) Спасибо!


Добавить комментарий