PackerとCentOSのAMI
PackerでCentOSのAMIをProvisioningして、そのAMIからLaunchしてもrootでsshログインできなかった。
CentOSのAMIはrc.localのスクリプトで/root/.sshディレクトリがすでにあると、Launch時に指定する公開鍵を/root/.ssh.authorized_keysに作成してくれない。
PackerでCentOSのAMIを作成するとPackerが一時的に秘密鍵を作成してauthorized_keysに登録する。
そのためそのAMIをLaunchして利用する秘密鍵を指定してもPackerの一時的な秘密鍵のままとなってしまい、
ログイン出来なかったのが、一行目の原因であーる。
これを回避するためにPackerのProvisionersに以下のshellを登録するべし。
{
"type": "shell",
"inline": [
"sudo rm -f /root/.ssh/authorized_keys"
]
}
Packer作成後に/root/.ssh/authorized_keysを削除している。