我有以下流浪文件
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
ansible 角色,它们是 git 克隆的
像这样
- src: git@gitlab.mydomain.com:ansible-roles/myrole.git
scm: git
version: 'master'
name: myrole
我正在将我的桌面私钥注入 vagrant
- 它在销售供应商中工作
- 如果在我
vagrant ssh
进入机器后它可以工作
但它不适用于带有错误的 ansible_local 供应商
==> 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 使用特定的私钥?