Я использую Fabric 2 и пытаюсь запустить скрипт оболочки на нескольких хостах последовательно. В скрипте он настраивает несколько параметров и перезагружает этот хост. Однако, когда я запускаю свою задачу, она заканчивается после запуска сценария на первом хосте (я предполагаю, что соединение SSH завершается из-за перезагрузки). Я попытался установить для параметра warn_only значение True, но не вижу, где установить это значение в Fabric 2.
Добавление:
with settings(warn_only=True):
выдает ошибку «NameError: глобальное имя« настройки »не определены».
Существует ли правильный формат warn_only? Если это невозможно в Fabric 2, есть ли способ продолжить выполнение моей задачи независимо от этой перезагрузки?
Мой сценарий:
from fabric import *
import time
import csv
@task
def test(ctx):
hosts = ['1.1.1.1', '2.2.2.2']
for host in hosts:
c = Connection(host=host, user="user", connect_kwargs={"password": "password"})
c.run("./shell_script.sh")
configured = False
while not configured:
result = c.run("cat /etc/hostname")
if result != "default": configured = True
time.sleep(10)