Githubではなく、ローカルからEC2にデプロイしたい時もあるでしょう。
という事で、AnsibleからEC2にSSH接続する方法を確認していきます。
### 前提
– vagrantにansibleインストール済
$ ansible –version
ansible 2.8.5
### .gitignore
git pushする際に、秘密鍵がレポジトリにpushされないよう、gitignoreを設定します。
.gitignore
/.ssh
.ssh フォルダにテストファイルを作成して.gitignoreが動くかテスト
$ git add .
$ git commit -m “gitignore added”
$ git push -u origin master
レポジトリにて、.sshがpushされていない事を確認
## -m pingテスト
### .ssh
ec2の秘密鍵を.sshに配置
$ chmod 700 .ssh/
### EC2
instanceからEC2をstart
### host
inventory/hosts
-> instanceのpublic ip(テスト用)を入れる
[targets] **.***.**.**
### ansible command
$ ansible all -i inventory/hosts -m ping
**.***.**.** | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '**.***.**.**' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic).", "unreachable": true }
鍵認証が上手くいっていない。
$ ansible all -i inventory/hosts –private-key=.ssh/***.pem -m ping -u ec2-user
**.***.**.** | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }