cmo*_*key 4 capistrano ssh-keys chef-infra
我正在使用Capistrano调用的Chef.
有一个使用git克隆存储库的指令.
git node['rails']['rails_root'] do
repository "git@myrepo.com:/myproj.git"
reference "master"
action :sync
user node['rails']['rails_user']
group node['rails']['rails_group']
end
Run Code Online (Sandbox Code Playgroud)
当它达到这一点时,我得到:
** [out :: 10.1.1.1] STDERR: Host key verification failed.
Run Code Online (Sandbox Code Playgroud)
所以,我需要添加一个"known_hosts"条目.没问题.但是对哪个用户?我的问题的核心是我不知道哪个用户正在执行什么命令,以及他们是否正在调用sudo等.
我已经运行了keyscan来填充root的known_hosts,而我用ssh的用户也无济于事.
注意,这个git repo是读保护的,需要ssh密钥访问.
您可以使用ssh包装器方法.看这里了解详情.
简要地执行以下步骤
首先,在cookbooks/COOKBOOK_NAME/files/default目录中创建一个名为wrap-ssh4git.sh的文件,其中包含以下内容:
#!/usr/bin/env bash
/usr/bin/env ssh -o "StrictHostKeyChecking=no" $1 $2
Run Code Online (Sandbox Code Playgroud)
然后,使用以下块进行部署:
directory "/tmp/private_code/.ssh" do
owner "ubuntu"
recursive true
end
cookbook_file "/tmp/private_code/wrap-ssh4git.sh" do
source "wrap-ssh4git.sh"
owner "ubuntu"
mode 00700
end
deploy "private_repo" do
repo "git@github.com:acctname/private-repo.git"
user "ubuntu"
deploy_to "/tmp/private_code"
action :deploy
ssh_wrapper "/tmp/private_code/wrap-ssh4git.sh"
end
Run Code Online (Sandbox Code Playgroud)
git 存储库将被克隆为用户node['rails']['rails_user'](通过https://docs.chef.io/resource_git.html) - 我假设用户known_hosts 文件是您必须修改的文件。
| 归档时间: |
|
| 查看次数: |
4229 次 |
| 最近记录: |