Я хочу використовувати Fabric для розгортання коду веб-додатків на серверах розробки, постановки та виробництва. Мій fabfile:
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()
завдання, як показано в документах Fabric , env.hosts встановлюється правильно. Однак це не є життєздатним варіантом, і не є декоратором. Передача хостів у командному рядку в кінцевому підсумку призведе до якогось сценарію оболонки, який викликає fabfile, я вважаю за краще один інструмент виконати роботу належним чином.
У документах Fabric сказано, що "env.hosts - це просто об'єкт списку Python". З моїх спостережень, це просто неправда.
Хтось може пояснити, що тут відбувається? Як я можу налаштувати хоста для розгортання?