Fabric принимает итерируемые хосты в качестве параметров в задачах.Согласно документации:
Итерация спецификаторов соединения с хостом, подходящих для создания экземпляра Соединения.Наличие этого аргумента вызовет автоматическую параметризацию задачи при вызове из CLI, аналогично поведению --hosts.
Один из членов которого может быть:
Строка, подходящая для того, чтобы быть первым позиционным аргументом в Connection - подробности см. В ее документации, но обычно это удобные строки, такие как hostname.example.com или user @ host: port.
Что касается вашего примера, попробуйте это для fabfile.py:
host_list = ["my_host"]
@task(hosts=host_list)
def tt(c):
c.run('uname -a')
В качестве альтернативы, вы можете вообще пропустить объявление хоста из файла fabfile.Если вы не укажете хост в fabfile.py
, вы можете просто указать его как хост при вызове утилиты fab
cli.Если ваш fabfile.py такой:
@task
def tt(c):
c.run('uname -a')
Теперь вы должны запустить fab -H my_host tt
, чтобы запустить его с псевдонимом tt
из конфигурации клиента SSH.
Надеюсь, это поможет.