エンジニア2年目が書いた記事と認知して読んでね
■ Ansibleの勉強がしたかっただけなのに...笑
お仕事でL2SWへの設定投入にAnsible使いたかったので、検証環境作ってコマンドの確認でもするかーってEC2をぽちーって作ったら思わぬドツボにはまった時の話
この記事を読むと
・サーバの鍵をなくした時のめんどくささが学べます!
・Ansibleについては後日書くよ!
検証方法を考える
とりあえずサクッとコマンドとPlaybookの書き方だけおさらいできれば良い
・サーバ(VM) x2台用意
・Ansibleサーバから、Clinetにnginxのインストールできるか試す。
・サーバはそれぞれ異なるサブネットに配置。
これくらい決めた時点で「そういえば昔AWSに作ったEC2にAnsibleインストールしたな」と思い出す。これを起こして流用することにする。
【悲報】キーペア紛失
TeratermからServer側にアクセスしようとして、デフォルトユーザ(ec2-user)でログイン試みるも、パスワード設定した覚えなく...
デフォルト値とかないかなと調べるうちに、以下記事を見て焦る
あ、デフォルトのpassword無いのか...
キーペアもどこに保存したのやら...
※ちなみにキーペアなくすとEC2立て直ししか方法がないらしい
苦し紛れの打開策(Instance Connect)
「まあ、EC2 Instance Connect(AWSのコンソール画面からCLI操作できるやつ)を使えば問題ないべ~」と思い、AWSコンソール経由でServerに接続。
後日playbookの内容記載しますが、とりあえずせっせこPlaybook作成。
以下コマンドでServerからClientに向けて実行!
$ ansible-playbook -i ./hosts site.yml
fatal: [172.31.0.20]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '172.31.0.20' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic).", "unreachable": true}
ここからは優しい気持ちで読んでください
「え、Permission denied?なんで?」
と、とりあえず以下を確認するも問題はなし。
・Client側のFWD確認:ssh(TCP:22)許可してる。
・AWSのSecurity Group: SSHを許可済み
う~ん。。。1回直接ssh接続してみるか~で、
ssh -l ...まで入力して気づく。
「あれ?デフォルトのユーザにパスワード無いんだっけ」
「この子(Server)は鍵をもって...」
次回
・AWSでのキーの再設定
・EC2への秘密鍵の配置(SCP)
あたりを今週めどに書きます。結論、なんとか解決したよ。
久しぶりに環境を使うと、意外なところでつまずくものですね。