5

次のvagrantfileがあります

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.ymlgit クローンされたいくつかの非公開の ansible ロールを参照します。

このような

- src: git@gitlab.mydomain.com:ansible-roles/myrole.git
  scm: git
  version: 'master'
  name: myrole

vagrant 内にデスクトップの秘密鍵を挿入しています

  • それは販売プロビジョナーで動作します
  • vagrant sshマシンの中に入れたらうまくいきます

ただし、 ansible_local provisionner ではエラーが発生して機能しません

==> 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 に特定の秘密鍵を強制的に使用させる方法はありますか?

4

1 に答える 1