Problemas para clonar un repository privado de chef con Test Kitchen

Tengo problemas para clonar un repository git privado de gitolite. Estoy instalando git 2.8.1 y estoy usando Chef 12.9. Intento crear un contenedor SSH que el recurso chef git pueda usar para autenticarse en mi repository.

.... file "/tmp/ssh_wrapper.sh" do content "#!/bin/sh\nexec /usr/bin/ssh -i #{/tmp/key.pem} \"$@\"" user "root" group "root" mode "0700" action :create end git "/home/some_repo" do repository "git@cookbooks.somecompany.com:some_repo.git" revision "1.0.0" user "root" group "root" ssh_wrapper "/tmp/ssh_wrapper.sh" action :sync end .... 

Recibo el siguiente error cuando trato de sincronizar con el repository de git utilizando la cocina de testing.

 ================================================================================ Error executing action `sync` on resource 'git[/home/some_repo]' =========================================================================== ===== Mixlib::ShellOut::ShellCommandFailed ------------------------------------ Expected process to exit with [0], but received '128' ---- Begin output of git ls-remote "git@cookbooks.somecompany.com:some_repo.git" "1.0.0*" ---- STDOUT: STDERR: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ---- End output of git ls-remote "git@cookbooks.somecompany.com:some_repo.git" "1.0.0*" ---- Ran git ls-remote "git@cookbooks.somecompany.com:some_repo.git" "1.0.0*" returned 128 Resource Declaration: --------------------- # In /tmp/kitchen/cookbooks/version_control/definitions/some_git_repo.rb 33: git "/home/some_repo" do 34: repository "git@cookbooks.somecompany.com:some_repo.git" 35: revision "1.0.0" 36: user "root" 37: group "root" 38: ssh_wrapper "/tmp/ssh_wrapper.sh" 39: action :sync 40: end 41: # Remote the SSH private key Compiled Resource: ------------------ # Declanetworking in /tmp/kitchen/cookbooks/version_control/definitions/some_git_repo.rb:33:in `block in from_file' git("/home/some_repo") do params {:owner=>"root", :group=>"root", :mode=>"700", :revision=>"1.0.2", :path=>"/home/", :name=>"some_repo"} action [:sync] retries 0 retry_delay 2 default_guard_interpreter :default destination "/home/some_repo" enable_checkout true revision "1.0.0" remote "origin" ssh_wrapper "/tmp/ssh_wrapper.sh" checkout_branch "deploy" declanetworking_type :git cookbook_name :version_control recipe_name "test" repository "git@cookbooks.somecompany.com:some_repo.git" user "root" group "root" end Platform: --------- x86_64-linux Running handlers: [2016-05-02T21:27:02+00:00] ERROR: Running exception handlers Running handlers complete [2016-05-02T21:27:02+00:00] ERROR: Exception handlers complete Chef Client failed. 22 resources updated in 02 minutes 10 seconds [2016-05-02T21:27:02+00:00] FATAL: Stacktrace dumped to /tmp/kitchen/cache/chef-stacktrace.out [2016-05-02T21:27:02+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report [2016-05-02T21:27:02+00:00] ERROR: git[/home/some_repo] (version_control::test line 33) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '128' ---- Begin output of git ls-remote "git@cookbooks.somecompany.com:some_repo.git" "1.0.0*" ---- STDOUT: STDERR: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ---- End output of git ls-remote "git@cookbooks.somecompany.com:some_company.git" "1.0.0*" ---- Ran git ls-remote "git@cookbooks.somecompany.com:some_repo.git" "1.0.0*" returned 128 [2016-05-02T21:27:02+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1) >>>>>> Converge failed on instance <test-add-some-repo-ubuntu-1404>. >>>>>> Please see .kitchen/logs/test-add-some-repo-ubuntu-1404.log for more details >>>>>> ------Exception------- >>>>>> Class: Kitchen::ActionFailed >>>>>> Message: SSH exited (1) for command: [sh -c ' sudo -E /opt/chef/bin/chef-solo --config /tmp/kitchen/solo.rb --log_level auto --force-formatter --no-color --json-attributes /tmp/kitchen/dna.json '] >>>>>> ---------------------- 

La documentation del recurso git dice que la propiedad ssh_wrapper establece la variable de entorno GIT_SSH. Cuando inicio session en la configuration de máquina virtual vagrant por test-kitchen, y ejecuto el siguiente command …

 GIT_SSH=/tmp/ssh_wrapper.sh git ls-remote "git@cookbooks.somecompany.com:some_repo.git" "1.0.0*" 

… Puedo get acceso al repository.

He intentado las soluciones en algunas publicaciones de desbordamiento de stack sin éxito. Libro de cocina de chef git: ¿cómo arreglar el permiso denegado mientras se clona el repository privado? , Cómo sacar repository de git privado usando chef de gitolite , Chef deploy_resource repository privado, ssh implementar keys y ssh_wrapper , error de git mientras se implementa a través de chef

También intenté correr …

 GIT_SSH=/tmp/ssh_wrapper.sh git ls-remote "git@cookbooks.somecompany.com:some_repo.git" "1.0.0*" 

… usando el recurso bash y execute.

No entiendo por qué no puedo clonar este repository. Parece que me falta algo básico aquí, pero realmente no sé qué. Cualquier ayuda sería muy apreciada.

Su envoltorio SSH necesita deshabilitar la verificación de key de host o necesita rellenar previamente el file known_hosts. Mira el libro de recetas de application_git que se encarga de todo esto por ti.