私は同様の質問を見ましたが、答えはまだ見つかりませんでした。Repoはクローン化されません、 "Permission Denied"、gitモジュールを使用
サーバ(Ubuntu 16.04)にSSH接続して、私のgit repoを手動でクローンすることができます。 SSHForwardAgentの問題ではないと私は信じています。
誤差はかなり一般的です:
"Cloning into bare repository '/home/deploy/apps/MYPROJECT/production/cached-copy'...",
"Permission denied (publickey).",
"fatal: Could not read from remote repository.",
ansible.cnf:
[ssh_connection]
ssh_args = -o ForwardAgent=yes
役割は次のようになります。
- name: Update the bare Git repository
become_user: "{{ deploy_user }}"
git:
repo: "[email protected]:MYUSER/MYPROJECT.git"
dest: "{{ deploy_to }}/cached-copy"
version: "{{ branch }}"
bare: yes
update: yes
accept_hostkey: yes
ssh_opts: "-o StrictHostKeyChecking=no -o ForwardAgent=yes"
Ansibleからの冗長出力は次のようになります。
"changed": false,
"cmd": "/usr/bin/git clone --bare '' /home/deploy/apps/MYPROJECT/production/cached-copy",
"failed": true,
"invocation": {
"module_args": {
"accept_hostkey": true,
"bare": true,
"clone": true,
"depth": null,
"dest": "/home/deploy/apps/MYPROJECT/production/cached-copy",
"executable": null,
"force": false,
"key_file": null,
"recursive": true,
"reference": null,
"refspec": null,
"remote": "origin",
"repo": "[email protected]:MYUSER/MYPROJECT.git",
"ssh_opts": "-o StrictHostKeyChecking=no -o ForwardAgent=yes",
"track_submodules": false,
"umask": null,
"update": true,
"verify_commit": false,
"version": "master"
MYUSERとMYPROJECTの使用は、そのような情報を取り消すことです。
疑問に思うものは、cmd
レポURLが含まれていません。これは正常ですか?
-o ForwardAgent=yes
を-A
に変更すると、別のエラー:Timeout (12s) waiting for privilege escalation prompt
が返されます。
また、サーバーにsshを接続して、ssh -T [email protected]
を実行すると「あなたは正常に認証されましたが、GitHubはシェルアクセスを提供していません。
私はサーバーに秘密鍵をインストールしたくありません。
更新:ここでは詳細な出力の要旨です:https://gist.github.com/krisleech/8bfbf817c237258a672b3b3393fea8dd
一方、これが正常に動作するようです:
- name: "Test github"
command: ssh -T [email protected]
「become_user:{{deploy_user}}」は何のためですか?あなたのリモートユーザとは違いますか(あなたはssh接続を行います)?この場合、あなたのsshエージェントソケットは、別のユーザになるとアクセスできなくなる可能性があります。 –
私は 'admin'と' deploy'ユーザを持っています。管理ユーザはsudoできます、 'deploy'ユーザはできません。私はこの行を削除しようとしましたが効果はありません。私はどちらかのユーザーとしてsshを使用してレポをクローンすることができます。 – Kris
'become'オプションでタスクを呼びますか(このタスクに対して実行されたsshコマンドの出力' -vvv')? Sshエージェントはどちらのユーザーとしてもログインすると動作しますが、ログイン後に 'sudo'を実行すると動作しなくなります。 –