Fabric: настройка хостов в v2

Созданный на 14 мая 2018  ·  4Комментарии  ·  Источник: fabric/fabric

Привет! Можно ли указать hosts либо в файле конфигурации, либо в самом fabfile?

Я знаю, что могу предоставить их через CLI ( -H ), но если fabfile предназначен для связи с конкретным сервером, то он просто заставляет пользователя делать дополнительные действия без уважительной причины.

«Лучшее» решение, которое я мог найти, состояло в том, чтобы создать соединение вручную, например

<strong i="10">@task</strong>
def my_ls(c):
    conn = Connection('myhost')
    conn.run('ls')

но это кажется довольно грязным, так как мне нужно (1) дублировать его везде и (2) это делает аргумент контекста бессмысленным.

Самый полезный комментарий

Согласен со всем выше. Мне очень не хватает старой настройки env.hosts. Это было красиво просто.

-1 при необходимости в другом файле конфигурации, таком как invoke.yaml или что-то еще. Я бы предпочел обезьяний патч или какой-нибудь импортный хук, который позволял бы мне указывать хосты.

Мне также потребовалось некоторое время, чтобы понять, что ctx.local отсутствует, если хосты не указаны :(

Все 4 Комментарий

У меня такой же вопрос. Я придумал решение поместить conn = Connection('myhost') в начало fabfile, чтобы оно выглядело так:

conn = Connection('myhost')

<strong i="7">@task</strong>
def my_ls(c):
    conn.run('ls')

<strong i="8">@task</strong>
def my_cd(c):
    conn.run('cd')

....

Но мне не нравится это решение, и я считаю, что должен быть способ внедрить соединение по умолчанию в контекст.

Я тоже хотел бы знать. Было бы удобно иметь возможность помещать хосты в файл конфигурации.

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

Согласен со всем выше. Мне очень не хватает старой настройки env.hosts. Это было красиво просто.

-1 при необходимости в другом файле конфигурации, таком как invoke.yaml или что-то еще. Я бы предпочел обезьяний патч или какой-нибудь импортный хук, который позволял бы мне указывать хосты.

Мне также потребовалось некоторое время, чтобы понять, что ctx.local отсутствует, если хосты не указаны :(

См. № 4!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги