Soru Ana makine adını argüman olarak Kumaş görevine geçir


Bir API aracılığıyla sanal bir örnek oluşturan bir kumaş betiği oluşturmaya çalışıyorum ve daha sonra bu örnekte kukla çalıştıracağım. VM'yi yaratan bir görevim ve sanal makineyi "önyükleme" yapabilen bir görevim var. Ancak, bunları bir araya getirmekte zorluk çekiyorum çünkü ilk görevde oluşturulan bazı verileri ana bilgisayar adı olarak ikinci göreve nasıl ileteceğimi bilmiyorum. Örneğin.

def createVM():
    newhostname = local('/usr/bin/createVM')
    bootstrap(newhostname)

def bootstrap(hostname):
    env.hosts = [hostname]
    run('puppet agent -t')

Bu işe yaramıyor ve ben sadece çalıştırırsam, kumaş komut dosyasını çalıştırmak için ana bilgisayar adını sordum. fab createVM.

Bunu yapmanın en iyi yolu nedir?


5
2017-12-13 17:59


Menşei




Cevaplar:


Bir göz atabilirsiniz ) (Yürütmek işlevi. Bir görevi yürüttüğünüz ana bilgisayarları geçersiz kılmak ve ek argümanlar iletmek için kullanabilirsiniz.

Muhtemelen çizgiler boyunca bir şeye ihtiyacın var.

def createVM():
    newhostname = local('/usr/bin/createVM')
    execute(bootstrap, hosts=[newhostname])

def bootstrap():
    run('puppet agent -t')

3
2017-12-15 01:43





Bunu çevre sözlüğüne ayarlamak isteyebilirsiniz.env), Örneğin:

env.newhostname = local('/usr/bin/createVM')

Ya da sadece ayarla env.hosts:

env.hosts = [local('/usr/bin/createVM')]

Sonra yürütmek fab createVM bootstrap

Daha fazla bilgiyi burada görebilirsiniz:

http://docs.fabfile.org/en/1.10/usage/env.html


1
2017-10-16 14:09