

AnsibleでEC2をプロビジョニングしています。自分で作成したrailsのコードをgithubのレポジトリに置いているので、自分のローカルPCからAnsibleのplaybookを叩いて、EC2からgit
clone(git pullもしたい)してrailsのコードを持ってきたいのですが、下記のエラーが出ていてコードをEC2に持ってこれません。

[code]

    {"changed": false, "cmd": "/usr/bin/git ls-remote '' -h refs/heads/HEAD", "failed": true, "msg": "Permission 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": "Permission 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", "stdout": "", "stdout_lines": []}
    
[/code]

内容はpermission
deniedされているのはわかるのですが、sshのキーを適切に設定できていないのだと思います。お手数ですが、AnsibleでEC2のgit
cloneやgit pullをしたことある方・もしくは解決方法がわかる方がいらっしゃいましたら、その手順をご教示いただきたいです。

よろしくお願い致します。


CC BY-SA 3.0
2017-08-06T06:01:57.153
36974
2020-01-14T13:02:45.350
2017-08-06T06:06:44.657
19110
18982
question
github ansible
Ansible EC2からgit cloneしたい


ec2 インスタンスから、 github にアクセスできる ssh キーでもってアクセスする必要がある様子です。そういった設定は行われていますでしょうか。

[本家の Mikko Ohtamaa さんの回答](https://stackoverflow.com/questions/29724680/how-do-
i-use-remote-machines-ssh-keys-in-ansible-git-module) では、以下のようにすると、 git clone
できる様子です。 ポイントは、

  1. github にアクセスできる ssh 秘密鍵を ec2 インスタンスに copy でもってアップロードして
  2. ansible git モジュールにて `key_file` で、アップロードした秘密鍵を指定する

ことの様子です。

[code]

    - name: Creates .ssh directory for root
      sudo: yes
      file: path=/root/.ssh state=directory
    
    # This public key is set on Github repo Settings under "Deploy keys"
    - name: Upload the private key used for Github cloning
      sudo: yes
      copy: src=keys/github dest=/root/.ssh/github
    
    - name: Correct SSH deploy key permissions
      sudo: yes
      file: dest=/root/.ssh/github mode=0600
    
    - name: Deploy site files from Github repository
      sudo: yes
      git:
        repo: git@github.com:miohtama/foobar.git
        dest: /srv/django/foobar
        key_file: /root/.ssh/github
        accept_hostkey: yes
        force: yes
    
[/code]


CC BY-SA 3.0
2017-08-07T05:02:03.170
36992
2017-08-07T05:02:03.170
754
36974
answer