はじめに
AWS で EC2 インスタンス起動時にスクリプト実行させるユーザーデータという機能があります。
サーバーが対象であれば、普通にスクリプトを書くようにコマンドを羅列すればよいわけですが、仮想ルーターなどの仮想アプライアンスの場合は、個別の指定方法があるようです。
ここでは、Cisco CSR1000V のインスタンス作成時にユーザーデータを指定する方法を試します。
インスタンス作成
Maketplace で Cisco CSR1000V を選択、インスタンスタイプを選択後「インスタンスの詳細の設定」をクリックします(確認と作成ではなく)。
続いて「インスタンスの詳細の設定」画面の下の方のユーザーデータ欄にユーザーデータを入力します。
今回は、Cisco 公式ドキュメントの書き方に従って以下を入力します。
hostname="sakana" ios-config-1="username operator privilege 1 password testpass99" ios-config-2="username admin privilege 15 password testpass99"
ホスト名の設定と、コンフィグを2行指定しています。
デフォルトでは、ec2-user
というユーザーのみなので、もう2つユーザーを追加します。
その後、通常通りインスタンス作成を進めます。
確認
とりえず、デフォルトの ec2-user
でログインします。
$ ssh ec2-user@IPアドレス -i hogehoge.pem sakana#
ユーザーデータで指定したとおり、ホスト名が sakana
になりました。
一旦ログアウトして、追加したユーザーでもログインできるか確認します。
- ユーザー:
admin
$ ssh admin@IPアドレス Password: # 指定したパスワードを入力 sakana# sakana# sakana#exit
- ユーザー:
operator
$ ssh operator@IPアドレス Password: # 指定したパスワードを入力 sakana> sakana>
無事にログインできました。
おわりに
この手の仮想アプライアンスはユーザーデータを指定できないと思っていたのですが、ちゃんと調べたやり方がありました。 調べてみるものですね。