Nasıl Kumaş dosyasında hedef ana bilgisayarı ayarlamak için
Kumaş geliştirme, hazırlama ve üretim sunucuları için web app benim kod dağıtmak için kullanmak istiyorum. Benim 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
Örnek çıktı:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
** 13, env gösterildiği gibi set_hosts()
bir görev oluşturduğumda.bilgisayarlar düzgün bir şekilde ayarlanır. Ancak, bu uygun bir seçenek değildir, ne de bir dekoratör. Komut satırında geçen barındıran sonuçta tek bir aracı tercih ederdim, fabfile, işini düzgün yap çağıran bir kabuk bir tür neden olur.
Kumaş 'env.bu belgeler yazıyor bilgisayarlar sadece Python listesi nesnesi. Gözlemlerime göre, bu sadece doğru değildir.
Herkes burada neler olduğunu açıklayabilir mi ? Nasıl dağıtmak için host ayarlayabilirim ?
CEVAP
Her ortam için gerçek bir işlevi bildirerek bu. Örneğin:
def test():
env.user = 'testuser'
env.hosts = ['test.server.com']
def prod():
env.user = 'produser'
env.hosts = ['prod.server.com']
def deploy():
...
Yukarıdaki fonksiyonları kullanarak, aşağıdaki benim test ortamı dağıtmak için yazın.
fab test deploy
...ve üretim dağıtmak için aşağıdaki:
fab prod deploy
Bunu bu şekilde yapmak güzel şey test
prod
fonksiyonları önce kullanılabilirherhangi birfab işlevi, sadece dağıtmak. İnanılmaz faydalı.
Nasıl giriş alanına odaklanmak ayarlam...
Nasıl bir BASH değişken bir komut çıkt...
Kolayca Ayarlamak için bir Dizi Dönüşt...
Nasıl sola hizalama gibi UİButton Başl...
Nasıl HttpResponse zaman aşımı ayarlam...