我正在尝试使用chef-solo来拉私人git repo。我使用以下步骤创建我的设置。
一个。创建加密密钥文件
编辑= vim刀独奏数据包创建秘密 --secret_file = ...
湾删除换行符并复制到剪贴板
选择cat~ / .ssh / id_rsa | tr -d' \ r \ n' > pbcopy
℃。使用
编辑文件> {
> “id”: “<app_name>”,
> “private_key”: <Private key copied from clipboard>
}
d。它正确创建数据包,我可以查看它
- knife solo data bag show secrets <app_name>
- knife solo data bag show secrets <app_name> --secret-file ~/.chef/encrypted_data_bag_secret
ssh-wrapper引用私钥文件
#!/ bin / sh exec ssh -o UserKnownHostsFile = / dev / null -o StrictHostKeyChecking = no -i&#34; /home/ubuntu/.ssh/id_rsa" &#34; $ @&#34;
使用git资源,签出或克隆仓库
git "#{node[:test][:base]}/test" do repository "git@github.test/test.git" reference "master" action :sync destination node[:test][:base] user "#{node[:test][:user]}" group "#{node[:test][:user]}" ssh_wrapper "#{node[:test][:base]}/.ssh/git-ssh-wrapper.sh" end
attributes.rb文件包含以下
default[:test][:base] = "/home/ubuntu"
default[:test][:log_dir] = "/var/log/test"
default[:test][:loglevel] = "info"
default[:test][:user] = "ubuntu"
default[:test][:virtualenv] ="/home/ubuntu/environments/test"
default[:test][:deploy_repo] = "git@github.com:test/test.git"
default[:test][:deploy_branch] = "master"
default[:test][:deploy_dir] = "/srv/test"
最后,当我运行以下命令时 &#39;刀独奏引导ubuntu @&#39;我观察到以下情况。
同样,以上所有都可能是由于私钥的原因。但是,比较远程计算机上的解密私钥内容与本地私钥(没有加密的原始密钥)匹配。
了解上述行为和潜在解决方案会很棒。