Git Ansible galaxy provisionner未在Vagrant中使用私钥
我有以下文件Git Ansible galaxy provisionner未在Vagrant中使用私钥,git,ansible,vagrant,ssh-keys,ansible-galaxy,Git,Ansible,Vagrant,Ssh Keys,Ansible Galaxy,我有以下文件 Vagrant.configure(2) do |config| config.ssh.insert_key = true config.vm.define "dev" do |app| app.vm.provider "docker" do |d| d.image = "allansimon/allan-docker-dev-python" d.has_ssh = true end app.ssh.username =
Vagrant.configure(2) do |config|
config.ssh.insert_key = true
config.vm.define "dev" do |app|
app.vm.provider "docker" do |d|
d.image = "allansimon/allan-docker-dev-python"
d.has_ssh = true
end
app.ssh.username = "vagrant"
app.vm.provision "file", source: "~/.ssh/id_rsa", destination: ".ssh/id_rsa"
app.vm.provision "permits-root-to-clone", type: "shell" do |s|
s.inline = "cp /home/vagrant/.ssh/id_rsa /root/.ssh/id_rsa"
end
# if i put here a new shell provisionner , to the exact same repo than in my galaxy roles , it works
app.vm.provision "ansible_local" do |ansible|
ansible.galaxy_role_file = "build_scripts/ansible/requirements.yml"
ansible.playbook = "build_scripts/ansible/bootstrap.yml"
end
end
end
requirements.yml
引用了一些git克隆的私有ansible角色
像这样
- src: git@gitlab.mydomain.com:ansible-roles/myrole.git
scm: git
version: 'master'
name: myrole
我正在把我的桌面私钥注射到流浪汉体内
- 它在销售供应器中工作
- 如果在机器内部执行I
后,它会工作vagrant ssh
==> dev: Running provisioner: ansible_local...
dev: Running ansible-galaxy...
[WARNING]: - supervisord was NOT installed successfully: - command git clone
git@gitlab.mydomain.com:ansible-roles/myrole.git myrole failed in
directory /tmp/tmpQNgCTo (rc=128)
ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
有没有办法强制vagrant中的ansible使用特定的私钥?我假设这是因为ssh客户端无法找到您的私钥,或者无法在vagrant框中使用它(权限问题?)来对git存储库进行身份验证。您可能应该添加一个默认配置文件(
~/.ssh/config
)
这似乎得到了确认,因为当您使用ssh连接到vagrant box时,本地ssh客户端能够使用ssh代理获取密钥,该代理将与桌面计算机的连接一起转发
如果要手动调试
- 宋承宪在流浪汉的盒子里
- 杀死ssh代理(
ssh代理-k
)
- 手动检索git存储库(
git克隆git@gitlab.mydomain.com:ansible roles/myrole.git
)或直接尝试ssh(sshgit@gitlab.mydomain.com
)这可能会有所帮助
- 找出错误