Привет! Можно ли указать hosts
либо в файле конфигурации, либо в самом fabfile?
Я знаю, что могу предоставить их через CLI ( -H
), но если fabfile предназначен для связи с конкретным сервером, то он просто заставляет пользователя делать дополнительные действия без уважительной причины.
«Лучшее» решение, которое я мог найти, состояло в том, чтобы создать соединение вручную, например
<strong i="10">@task</strong>
def my_ls(c):
conn = Connection('myhost')
conn.run('ls')
но это кажется довольно грязным, так как мне нужно (1) дублировать его везде и (2) это делает аргумент контекста бессмысленным.
У меня такой же вопрос. Я придумал решение поместить 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!
Самый полезный комментарий
Согласен со всем выше. Мне очень не хватает старой настройки env.hosts. Это было красиво просто.
-1 при необходимости в другом файле конфигурации, таком как invoke.yaml или что-то еще. Я бы предпочел обезьяний патч или какой-нибудь импортный хук, который позволял бы мне указывать хосты.
Мне также потребовалось некоторое время, чтобы понять, что
ctx.local
отсутствует, если хосты не указаны :(