2016-06-01 4 views
0

Как пропустить запрос пароля для входа в систему, если он не указан или пароль неверен. У меня есть код подкачки python .., который отлично работает, но работает с неправильными паролями.Как пропустить запрос пароля для входа в систему, если он не указан

import sys 
from fabric.api import * 
env.skip_bad_hosts=True 
env.command_timeout=60 
env.user = 'test' 
env.shell = "/bin/sh -c" 
env.warn_only = True 
env.password = 'mypass' 
def read_hosts(): 
    env.hosts = [line.strip() for line in sys.stdin.readlines()] 

def cyberark(): 
    with settings(warn_only=True): 
     output=sudo("/monitor.sh",shell=False) 

Когда я запускаю его, он стоит там только до тех пор, пока я разбить его вручную ...

[pc-karn] Executing task 'cyberark' 
[pc-karn] sudo: /monitor.sh 
[pc-karn] Login password for 'test': 

есть в любом случае, чтобы установить окр где, если пароль заданный неправильно с 2 последовательных последовательности, и она будет идти на следующий хост в очереди.

ответ

0

Вы можете использовать эти параметры -

with settings(abort_on_prompts=True): 

Этот параметр прекращает программу, когда приглашение пользователю для ввода. Вы можете прочитать об этом here.

Я не знаю, решила ли эта проблема, насколько я знаю. Ткань, что вы ищете, не представляется возможным, но по крайней мере вы знаете, что ваша программа всегда заканчивается и может исправить проблему с паролями.

+0

Это я протестировал, и он завершает работу всей программы и петли. – rocky1981

+0

Я думаю, что с параллелью он должен продолжаться с другими хостами - http://docs.fabfile.org/en/1.11/usage/parallel.html – avivb

0

Когда я хочу уклониться от запроса пароля, но продолжаю мой сценарий при ошибке, я использую abort_on_prompts=True и поймаю исключение SystemExit, которое поднято abort_on_prompt.

try : 
    with settings(abort_on_prompts=True): 
    output=sudo("/monitor.sh",shell=False) 
except SystemExit as se : 
    print "What I want to do when it fails" 

 Смежные вопросы

  • Нет связанных вопросов^_^