2016-03-24 51 views
3

Terraform yapılandırmamın bir sunucu hazırlamasını ve en sonunda bir komutu çağırıp hizmeti çalıştırmaya başlamasını istiyorum. Ben uzaktan exec kullanarak nohup ve ekranı kullanarak çalıştı:Terraform temel hazırlığını kullanarak uzaktan hizmet nasıl başlatabilirim?

nohup:

provisioner "remote-exec" { 
inline = "nohup sudo command &" 

}

ekran:

provisioner "remote-exec" { 
inline = "screen -d -m sudo command" 
} 

komutları elle giriş yaparak çalışan olmadığını kontrol. Ama bir süreç devam etmiyorlar. Bu komutlar el ile denediğimde işe yarar ve ssh ile çalışır.

Terraform provizyonunu bir komut başlatmak ve kontrol akışı geri dönerken çalışmaya devam etmek için nasıl kullanabilirim?

+0

Bunu uzaktan-yürütme yerine kullanıcı verileriyle denediniz mi? Uzaktan çalıştırmanın neden çalışmadığından emin olmadığından emin olun, ancak kullanıcı verileri başka bir yol sağlayabilir. –

cevap

10

Nohup'unuzun ardından bir uyku eklemeye çalışın. Benim için çalıştı. Son uzaktan-yürütmenizin arkaplanından şüpheleniyorum Terraform, çocuk sürecinin, nohup'a rağmen, başlama şansı olmadan önce, bağlantının kesilmesiyle kaçmasına izin veriyor.

provisioner "remote-exec" { 
    inline = [ 
     "nohup sudo command &", 
     "sleep 1" 
    ] 
} 
+0

Bu kabul edilen cevap olmalı. Bana çok iyi çalıştı. –

+0

Bu oyun kesinlikle işe yarıyor! – RubyFanatic