cloud-initを使用したUbuntuのautoinstallで、sshを自動セットアップする方法です。前回長めの記事になってしまったので、今回は短めにまとめようと思います。
下準備
クライアント側で、ssh-keygenによるキーペア生成をしておきます。内容を表示したものをまるっとコピーして、user-dataのauthorized-keysにセットする必要があります。
$ ssh-keygen -t rsa -f mypair $ cat mypair.pub ssh rsa (~中略~) クライアント側ユーザ名@クライアント側ホスト名
user-dataの編集
前回記事で使用していた~/www/user-dataを下記のように編集します。例によってpasswordの部分は適切に変更してください。authorized-keysには先程のcatの結果(ssh rsa~クライアント側ホスト名 まで全部)を、そのままコピペします。
#cloud-config autoinstall: version: 1 identity: hostname: ubuntu-server password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0" username: ubuntu ssh: allow-pw: false authorized-keys: - [cat mypair.pubの結果] install-server: true
動作確認
user-dataの編集が終わったら、前回記事同様にインストールします。ちなみにuser-dataに何らかの文法ミスがある場合、インストールが対話モードになってしまうことに注意してください。コロンの後にちゃんとスペースが入っているかなど、よく確認してみてください。
インストール完了後はdefineとstartして、クライアントから以下で接続します。
ssh -i mypair ubuntu@[仮想マシンのIPアドレス]