SORU
24 ŞUBAT 2010, ÇARŞAMBA


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
14 Ocak 2011, Cuma


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ı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bmarian22

    bmarian22

    22 Aralık 2007
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008
  • UniqueApps

    UniqueApps

    4 Ocak 2009