2017-12-13 15 views
-1

私は以前にこの質問を掲載しましたが、そこの答えはもう機能しません。可能bitbucketクローンrepoプロビジョニングsshエラー

要約すると、Ansibleを使用して私の迷惑メールボックスをプロビジョニングするとき、sshを使用して私のbitbucketプライベートレポをクローンするときに不思議なエラーがスローされます。エラーは「Permission denied(publickey)」と表示されます。

しかし、私はsshを変更して 'git clone'コマンドを実行すると、プライベートレポが正常にクローン化されます。これは、sshフォワードエージェントが実際に動作していることを示しています。また、バグボックスは、ビットバケットレポに関連付けられた私の秘密鍵にアクセスできます。

私はこの問題で2日間苦労していて、私の心を失っています! 、誰かが私を助けてください!

Vagrantfile:

Vagrant.configure("2") do |config| 
    config.vm.box = "ubuntu/xenial64" 
    config.vm.network "private_network", ip: "192.168.33.14" 
    config.ssh.forward_agent = true 

    config.vm.provider "virtualbox" do |vb| 
    vb.memory = "1824" 
    end 

    # Only contains ansible dependencies 
    config.vm.provision "shell", 
    inline: "sudo apt-get install python-minimal -y" 

end 

次のように私のplaybook.ymlがある:

--- 

- hosts: all 
    become: true 

    tasks: 
    - name: create /var/www/ directory 
     file: dest=/var/www/ state=directory owner=ubuntu group=www-data mode=0755 

    - name: Add the user 'ubuntu' to group 'www-data' 
     user: 
     name: ubuntu 
     shell: /bin/bash 
     groups: www-data 
     append: yes 

    - name: Clone [My-Repo] bitbucket repo 
     become: false 
     git: 
     repo: [email protected]:[Username]/[My-Repo].com.git 
     dest: /var/www/poo 
     version: master 
     accept_hostkey: yes 

エラーメッセージ: ansible-脚本

fatal: [192.168.33.14]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone --origin origin '' /var/www/poo", "failed": true, "msg": "Cloning into '/var/www/poo'...\nPermission denied (publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.", "rc": 128, "stderr": "Cloning into '/var/www/poo'...\nPermission denied (publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.\n", "stderr_lines": ["Cloning into '/var/www/poo'...", "Permission denied (publickey).", "fatal: Could not read from remote repository.", "", "Please make sure you have the correct access rights", "and the repository exists."], "stdout": "", "stdout_lines": []} 
playbook.yml

追加情報:

  • 私のマシン上で-lをSSH-追加は、関連ビットバケットレポキーを含んでいます。
  • 迷惑メールボックス内のssh-add -lには、関連するbitbucket repoキー(ssh転送による)も含まれています。放浪ボックス内部で手動で行う場合

しかし作品をクローニング?

vagrant ssh 
git clone [email protected]:myusername/myprivaterepo.com.git 
Then type "yes" to allow the RSA fingerprint to be added to ~/.ssh/known_hosts (as its first connection with bitbucket) 

すべてのヘルプは大歓迎し、私の悪夢を読んでくれてありがとうれます。

+0

「ホスト鍵の確認」に失敗しましたが、「Permission denied(publickey)」エラーが表示されます。重複した質問を投稿するのではなく、元の質問の人に挑戦してください。 – larsks

+1

これは重複ではなく、新しい質問です。前の質問は、playbook.ymlに「become:false」行を含めることで解決されています。これは私が作成した他のスレッドには存在しない新しいエラーメッセージです。重複ステータスを削除してください。ありがとうございました。 – GustavMahler

答えて

0

これは一般的に、Ansibleがvagrant sshと同じユーザーでレポを複製しようとしていないことを意味します。

GIT_SSH_COMMAND='ssh -v' git clone ... 

その方法は、あなたが正確にSSHキーが試されているが表示されます:何が起こっているか、より良いデバッグに

1つのトリックは、コマンドを実行することです。 kostixとして

も役立つだろうAnsibleコマンドでid(又はid -a)添加、in the comments示唆しています。

+0

私は 'git clone'の呼び出しの近くで何らかの方法で' id'コマンドの実行を固執して、実際にどのようなユーザの身元が実際のプロセスによって引き継がれているのか調べようとします。 – kostix

+0

@kostix良い点。より視認性の高い答えをあなたのコメントに追加しました。 – VonC

-1

ssh-agentは端末セッションに関連付けられていますが、自動化された実行可能な実行はありません。 (これは、ほとんどのcronジョブと同じです。)これは、あなたがあなたのVagrantボックスにSSHして実行すると、うまく動作する理由を説明します。

ansible_ssh_private_key_file: /path/to/fileをプレイブックに追加すると、問題が解決しますか?

関連する問題