Saya ingin menggunakan Fabric untuk menerapkan kode aplikasi web saya ke server pengembangan, pementasan, dan produksi. Fabfile saya:
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
Output sampel:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
Saat saya membuat set_hosts()
tugas seperti yang ditunjukkan di dokumen Fabric , env.hosts disetel dengan benar. Namun, ini bukan pilihan yang tepat, begitu pula dekorator. Meneruskan host pada baris perintah pada akhirnya akan menghasilkan semacam skrip shell yang memanggil fabfile, saya lebih suka memiliki satu alat yang melakukan pekerjaan dengan benar.
Dikatakan dalam dokumen Fabric bahwa 'env.hosts hanyalah objek daftar Python'. Dari pengamatan saya, ini tidak benar.
Adakah yang bisa menjelaskan apa yang terjadi di sini? Bagaimana cara mengatur host untuk menerapkan?