2014-12-15 20 views
7

Sadece bir meslektaşımın değiştirmek istediğimi kurduğu bir oyun kitabı almaya çalışıyorum. Benim mac üzerinde çalışan olsun ilk sorun ansible-playbook -> ControlPath çok uzun

ERROR: Unable to find an inventory file, specify one with -i ? 

Bu

kolaylıkla komuta verif -i eklenerek çözüldü oldu. Ancak, aşağıdaki hata oluştu.

loadgen-verif-app1.internal.machines | FAILED => SSH encountered an unknown error. The output was: 
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 
debug1: Reading configuration data /Users/andreas.joelsson/.ssh/config 
debug1: Reading configuration data /etc/ssh_config 
debug1: /etc/ssh_config line 20: Applying options for * 
debug1: auto-mux: Trying existing master 
ControlPath too long 

Bu (loadgen-verif-app [1-8] .internal.machines) dosyası çok uzun olabilir bazı ayıklama sonra

8 makineleri için geçerlidir, denedim aynı sonucu komutu aşağıdaki:

ansible nukes -m ping -i verif -vvvv 

sonra ben ssh ile ilgili sorunlar olduğunu düşünmüş ama ssh'dan komutu yürütülürken çalışır:

ssh loadgen-verif-app1.internal.machines ping loadgen-verif-app2.internal.machines 

Ve şimdi pusuyamıyorum çünkü ping komutu yukarıda sıralanan aralıkta olmayan bazı makinelerde çalışıyor, işte bu bir sorunsa loagenXXX.machines yolundan daha kısa. Ama sonra ssh komutu işe yaramaz.

Hedefler için ayarlanmış bazı ssh yapılandırma ayarlarına sahibim, ancak ping komutuyla çalışanlar farklı değil.

Host loadgen1 
    HostName loadgen-verif-app1.internal.machines 

Şimdi bir macdaki meslektaşım için çalıştığı için çok şaşırdım. Bu yüzden eksik veya benzer bir ayar varsa emin değilim. -i verif'u sağlamaya gerek duymaz, bu da çalışmamasının bir nedeni olabilir.

düzenlemek 2014/12/17:

  • Biz aynı sürümünü çalıştıran
  • yanıtlayıcı 'aynı sürümünü çalıştıran http://docs.ansible.com/intro_configuration.html#control-path
  • göre yanıtlayıcı' ayarı control_path değiştirerek denediniz OpenSSH.
  • Anlatabildiğimiz kadarıyla aynı ssh yapılandırmasına sahibiz.
  • /etc/ssh_config dosyasında bulduğum ve ilerledikçe hareketsiz kaldığı Host * 'u arıyordum.

    SE-C02N76PGG5RP:verif_provisioning andreas.joelsson$ ansible loadgen-verif-app1.internal.machines -m ping -i verif -vvvv 
    <loadgen-verif-app1.internal.machines> ESTABLISH CONNECTION FOR USER: andreas.joelsson 
    <loadgen-verif-app1.internal.machines> REMOTE_MODULE ping 
    <loadgen-verif-app1.internal.machines> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/andreas.joelsson/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 loadgen-verif-app1.internal.machines /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1420723708.99-33622628424665 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1420723708.99-33622628424665 && echo $HOME/.ansible/tmp/ansible-tmp-1420723708.99-33622628424665' 
    loadgen-verif-app1.internal.machines | FAILED => SSH encountered an unknown error. The output was: 
    OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 
    debug1: Reading configuration data /Users/andreas.joelsson/.ssh/config 
    debug1: Reading configuration data /etc/ssh_config 
    debug1: /etc/ssh_config line 20: Applying options for * 
    debug1: auto-mux: Trying existing master 
    ControlPath too long 
    

    düzenlemek 2015/02/12:

    SE-C02N76PGG5RP:verif_provisioning andreas.joelsson$ ansible nukes -m ping -i verif 
    loadgen-verif-app4.internal.machines | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue 
    loadgen-verif-app5.internal.machines | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue 
    loadgen-verif-app3.internal.machines | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue 
    loadgen-verif-app1.internal.machines | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue 
    loadgen-verif-app2.internal.machines | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue 
    loadgen-verif-app8.internal.machines | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue 
    loadgen-verif-app6.internal.machines | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue 
    loadgen-verif-app7.internal.machines | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue 
    

    Ve çalışma biriyle:

    SE-C02N76PGG5RP:verif_provisioning andreas.joelsson$ ansible duke -m ping -i verif 
    steve-verif-app1.internal.machines | success >> { 
        "changed": false, 
        "ping": "pong" 
    } 
    
    https://help.openshift.com/hc/en-us/articles/202186044-Unable-to-git-clone-an-application-when-SSH-session-sharing-is-in-use-ControlPath-too-long-

düzenlemek 2015/01/08

+0

İş arkadaşınız size ansible.cfg dosyasını yolladı mı, ve aynı (ve ilgili) konfigürasyon dosyalarının macunuzdaki doğru konumlarda var mı? Bu kontrol etmek için ilk şey gibi görünüyor ... – PhillipHolmes

+0

Kontrol ettim git repo içinde olduğu gibi aynı yapılandırma, ayarları kaydedilebilir ev klasörü gibi başka bir yer var mı? – Andreas

+0

komut satırı seçeneklerinden ayrı olarak, yapılandırma ansible.cfg dosyasında belirtilmiştir - ansible (ansible -v bence) aynı sürümünü kullandığınızı kontrol etmek isteyebilirsiniz. – PhillipHolmes

cevap

6

Bu hataya ilişkin çözüm, olası belgelerinde belirtilmiştir, lütfen bu link'a bakın.

EC2 örneklerine bağlanmayı denediğimde ancak aşağıdaki yapılandırmayı değiştirdikten sonra bu hatayı alıyorum, sorunumu çözdü.

Şu an yazıcınızı Mac kullanarak pip'e yüklediğinizi varsayalım. Yani, şu adımları yapın:

  1. sudo mkdir /etc/ansible 
    
  2. değişiklik

    sudo chown $(whoami):staff /etc/ansible 
    
  3. /etc/ansiblehere ve yerden ansible.cfg dosya indirmek bunun iznini /etc/ansible dizini oluşturmak dizin

  4. düzenleme/yorum kaldırma aşağıdaki satırı

    [ssh_connection] 
    control_path = %(directory)s/%%h-%%r 
    
  5. düzenlemek ~/.ssh/config dosyası:

    Host * 
        GSSAPIAuthentication no 
    

EKSTRA ADIM:

brew install https://raw.github.com/eugeneoden/homebrew/eca9de1/Library/Formula/sshpass.rb 
+0

Yüklemek için demleme kullandım. Ve git gidebildiğim yerde repo'yu buldum: [varsayılanlar] roles_path = roller control_path =% (directory) s/%% h - %% r – Andreas

+0

bu işe yaradı mı? ya da herhangi bir sorunla karşı karşıya mısınız? –

+0

Çözümünüzü denemedim ve yerel olarak çalışmaz. Demlemek için aynı mıdır, bu yüzden önerdiğiniz adımları eklemeliyim? – Andreas

2

Ben o çalışma var yolu Tamam oldu ansible.cfg'daki değişiklikleri yaptım ve ext ra adımlar ama işe yaramadı. Bulduğum tek yol ANSIBLE_SSH_CONTROL_PATH:

Dışa aktarma yoludur. Bu, her zaman varsayılan yolu seçtiğini düşünüyorum.

export ANSIBLE_SSH_CONTROL_PATH='%(directory)s/%%h-%%r' 

Kontrol yolu buna göre değişir: Hatta ANSIBLE_SSH_CONTOL_PATH ihraç etmeden ansible.cfg

1.9.4 git:(master) pwd                                    
/usr/local/Cellar/ansible/1.9.4 
➜ 1.9.4 git:(master) ag ANSIBLE_SSH_CONTROL 
libexec/lib/python2.7/site-packages/ansible/constants.py 
187:ANSIBLE_SSH_CONTROL_PATH  = get_config(p, 'ssh_connection', 'control_path', 'ANSIBLE_SSH_CONTROL_PATH', "%(directory)s/ansible-ssh-%%h-%%p-%%r") 

Çıktı değişikliği sonrası: olarak

ControlPath="/Users/vinitkhandagle/.ansible/cp/ansible-ssh-%h-%p-%r" 

değişken Dışa

ControlPath="/Users/vinitkhandagle/.ansible/cp/%h-%r"