Как установить целевые хосты в файле Fabric

Я хочу использовать Fabric для развертывания кода моего веб-приложения на серверах разработки, подготовки и производства. Мой фабфайл:

def deploy_2_dev():
  deploy('dev')

def deploy_2_staging():
  deploy('staging')

def deploy_2_prod():
  deploy('prod')

def deploy(server):
  print 'env.hosts:', env.hosts
  env.hosts = [server]
  print 'env.hosts:', env.hosts

Образец вывода:

host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:

Когда я создаюset_hosts() задача, как показано вТкань документы, env.hosts настроен правильно. Тем не менее, это не жизнеспособный вариант, а также не декоратор. Передача хостов в командной строке в конечном итоге приведет к некоторому сценарию оболочки, который вызывает fabfile, я бы предпочел, чтобы один единственный инструмент выполнял эту работу правильно.

В документе Fabric говорится, что «env.hosts - это просто объект списка Python». По моим наблюдениям, это просто неправда.

Кто-нибудь может объяснить, что здесь происходит? Как настроить хост для развертывания?

Ответы на вопрос(15)

Ваш ответ на вопрос