Web uygulaması kodumu geliştirme, hazırlama ve üretim sunucularına dağıtmak için Fabric'i kullanmak istiyorum. Benim fabrikam:
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
Örnek çıktı:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
Fabric belgelerindeset_hosts()
gösterildiği gibi bir görev oluşturduğumda env.hosts düzgün ayarlandı. Ancak bu geçerli bir seçenek değil, dekoratör de değil. Ana bilgisayarları komut satırına aktarmak, sonuçta fabfile'ı çağıran bir tür kabuk betiği ile sonuçlanacaktır, tek bir aracın işi düzgün bir şekilde yapmasını tercih ederim.
Fabric belgelerinde "env.hosts basitçe bir Python liste nesnesidir" yazıyor. Gözlemlerime göre, bu kesinlikle doğru değil.
Burada neler olduğunu kimse açıklayabilir mi? Ana bilgisayarı dağıtılacak şekilde nasıl ayarlayabilirim?