2016-04-11 13 views
-1

Etkileşimli bir yükleme işlemini otomatikleştirilebilen bir işlem sürecini otomatikleştirmek istiyorum. Bu yüklemede sessiz yükleme seçeneği yoktur veya etkileşimli sorular için komut satırı argümanları almaz. Soru, klasör konumunun, yanıtların varsayılan veya özel olması için klasör konumunun doğru vb olmasını sağlamayı içerir. Olası bir expect modülüne baktım ama amacımı çözmüyor gibi görünüyor.Anlık çalışma türü ansible ile birlikte

- expect: 
command: passwd username 
responses: 
    (?i)password: "MySekretPa$$word" 

Komutlara ihtiyacım yok ama gerekli. Bunun yerine,regex'i için By sending return or typing n as a response no'lu çıkışı göndermek istiyorum ve örneğin Carriage return cevabının Carriage return olması için Backup directory [/tmp] örneğini arıyorum.

cevap

0

Benim için çalışan bir yol buldum. Yanıtları el ile çalıştırdığınızda, kabuk betiğine argümanlar yerleştirdim. Benim için mükemmel çalışan ./shell.sh <<< 'answer1\nanswer2\n' gibi. Bu göreve ekledim.

1

Komutlara ihtiyacım yok ama gerekli. Eğer herhangi bir çıktı almak için şey yayınlamak zorunda çünkü Onun yerine Are you sure you want to continue [y|n]? [n]:

The module regex olabilir şey arıyorum bir command gerektirir.

Açıkçası bir komutunuz var, çünkü bunu manuel olarak çalıştırıyorsunuz ve ürettikleri çıktıyı görüyorsunuz. Modüle takmanız gereken budur.

Alternatif olarak, bir pexpect komut dosyasını kendiniz yazıp, çalıştırmak için command veya shell modüllerini kullanabilirsiniz.