AWSで作成したサーバーにAnsibleで動作できるか簡単な通信テストを実施したのですが、SSH通信ができないとエラーがでました。
Linux
1yuta@yuta-PC:~/Desktop/work/ansible-test$ ansible target -i hosts -a 'echo Hello World' 2ip-172-31-40-18 | UNREACHABLE! => { 3 "changed": false, 4 "msg": "Failed to connect to the host via ssh: Connection closed by XXX.XXX.XXX.XXX(Public IP) port 22\r\n", 5 "unreachable": true 6} 7
Inventory fileとansible.cfgは以下の通り単純なものです。
InventoryFile
1[target] 2ip-172-31-40-18 ansible_host=XXX.XXX.XXX.XXX(Public IP)
ansible.cfg
1[default] 2inventory = hosts 3remote_user = ubuntu 4host_key_checking = False 5private_key_file = /home/yuta/.ssh/udemysample.pem 6 7[privilege_escalation] 8become = True
通常通りSSH通信ではEC2サーバーに接続できるのですが、ansibleのSSH通信がうまくいきません。
SSH通信
1yuta@yuta-PC:~$ ssh -i /home/yuta/.ssh/udemysample.pem ubuntu@XXX.XXX.XXX.XXX(Public IP) 2Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-1044-aws x86_64) 3 4 * Documentation: https://help.ubuntu.com 5 * Management: https://landscape.canonical.com 6 * Support: https://ubuntu.com/advantage 7 8 System information as of Fri Sep 20 05:06:46 UTC 2019 9 10 System load: 0.0 Processes: 89 11 Usage of /: 18.6% of 7.69GB Users logged in: 0 12 Memory usage: 20% IP address for eth0: 172.31.40.18 13 Swap usage: 0% 14 15 160 packages can be updated. 170 updates are security updates. 18 19 20*** System restart required *** 21Last login: Fri Sep 20 04:45:35 2019 from XXX.XXX.XXX.XXX 22ubuntu@ip-172-31-40-18:~$
とくにこれ以外に設定等はしていませんが、何か不足分があるのでしょうか?
よろしくお願いいたします。
※追加情報
ツイッターにていくつかアドバイスをいただきましたので試した結果を共有いたします。
①ansible.cfgの項目を修正
ansible.cfg
1[default**s**] →sを追加 2inventory = hosts 3remote_user = ubuntu 4host_key_checking = False 5private_key_file = /home/yuta/.ssh/udemysample.pem 6 7[privilege_escalation] 8become = True
結果
Linux
1yuta@yuta-PC:~/Desktop/work/ansible-test$ ansible target -i hosts -a 'echo Hello World' 2ip-172-31-40-18 | FAILED! => { 3 "changed": false, 4 "module_stderr": "Shared connection to XXX.XXX.XXX.XXX(Public IP) closed.\r\n", 5 "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", 6 "msg": "MODULE FAILURE", 7 "rc": 127 8}
②ansible.cfgに以下項目追加
ansible.cfg
1[defaults] 2inventory = hosts 3remote_user = ubuntu 4host_key_checking = False 5private_key_file = /home/yuta/.ssh/udemysample.pem 6 7[privilege_escalation] 8become = True 9 10[ssh_connection] 11ssh_args = -o UserKnownHostsFile=/dev/null
結果
Linux
1yuta@yuta-PC:~/Desktop/work/ansible-test$ ansible target -i hosts -a 'echo Hello World' 2ip-172-31-40-18 | FAILED! => { 3 "changed": false, 4 "module_stderr": "Warning: Permanently added 'XXX.XXX.XXX.XXX(Public IP)' (ECDSA) to the list of known hosts.\r\nConnection to XXX.XXX.XXX.XXX(Public IP) closed.\r\n", 5 "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", 6 "msg": "MODULE FAILURE", 7 "rc": 127 8}
③を実行したところモジュールエラーと出ているように見えます。
ここからどうすればよろしいか回答お待ちしております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/20 09:45
2019/09/20 09:52 編集
2019/09/20 10:00
2019/09/20 10:00