OpenStackのインスタンスに簡単に接続できるツールnovassh

こんにちは、GMOインターネット株式会社の斉藤です。
OpenStackでは拙作のnovasshというツール使うと、IPアドレスの代わりにインスタンスにつけたネームタグ(名前)で接続することができます。
OpenStackをベースにしているConoHaでも使えますので、今回はこれをご紹介したいと思います。

はじめに

クラウドなどを使ってたくさんのインスタンスを立てると、ssh接続するときに「あれ?サーバーのIPなんだっけ?」となったりします。普通はWebの管理コンソールなどにログインして確認するか、APIを叩いて調べたりします。

ただ、とくにAWS方面ではec2sshなどの便利ツール/スクリプトがすでに多くあります。これらのツールを使うと、IPアドレスが不明でもサーバーの名前でssh接続ができます。

一方で、OpenStackでは拙作のnovasshというツール使うと、IPアドレスの代わりとしてインスタンスにつけたネームタグ(名前)で接続することができます。

hironobu-s/novassh: A client program that connects to OpenStack(Nova) instance.
https://github.com/hironobu-s/novassh

デモ

インスタンスにSSH接続する

pecoと組み合わせる

使い方


OpenStack環境か、OpenStackベースのパブリッククラウドで動作します。簡単に試すならConoHaが良いでしょう。
https://www.conoha.jp/

1. novasshのインストール

GitHub releaseからバイナリをダウンロードして使います。以下をご覧ください。

インストール方法

2. インスタンスに名前をつける

インスタンス名の付け方は以下のような感じで。

自前OpenStackの場合はInstance Name

インスタンス起動ダイアログの「Instance Name」で指定します

ConoHaの場合

サーバー作成画面にある「ネームタグ」で指定します。

3. 認証情報の設定

環境変数にOpenStackの認証情報を設定します。

export OS_USERNAME=[username]
export OS_PASSWORD=[password]
export OS_TENANT_NAME=[tenant name]
export OS_AUTH_URL=[identity endpoint]
export OS_REGION_NAME=[region]


この環境変数名は、オフィシャルのCLIツールなどでも使われていてオープンスタッカー御用達です 🙂
https://wiki.openstack.org/wiki/OpenStackClient/Authentication

4. インスタンスに接続する

novasshの基本的な使い方は、以下のようにインスタンス名を引数に渡すだけです。

novassh [instance-name]

基本的にsshコマンドのラッパーなので、ユーザー名の指定やオプションの指定なども同じようにできます。

novassh username@instance-name

ポートフォワードする場合

novassh -L 8080:internal-host:8080 username@instance-name

その後接続が確立したら通常のsshと同じように使うだけです。

4-2. シリアルコンソール接続を使う

OpenStackはインスタンスへのシリアルコンソール接続をサポートしています。コンソール接続は仮想マシンのシリアルコンソール端末に直接接続されるため、インスタンスをリブートしても接続が切れたりせず、OSのブートシーケンスなども確認できます。カーネルをいじったりするときに便利です。

使い方は--consoleオプションをつけるだけですが、OS側でシリアルコンソールが有効になっている必要があります。最近のUbuntuやCentOSはデフォルトで無効になっているので個別に有効化する必要があります。

novassh --console [instance-name]

接続に成功すると、以下のようにOSのログインプロンプトなどが表示されます。接続を切る場合はCtrl+[ qと入力します。

# novassh --console ubuntu-dev                                                                     

Connected.

Type "Ctrl+[ q" to disconnect.
接続を切る場合は Ctrl+[ q と入力して下さい


Ubuntu 15.10 personal ttyS0

ubuntu login:

おわりに

novasshは日常的なsshコマンドの代わりに使える便利なツールです。OpenStackの環境でサーバー管理などをされている方はぜひ使ってみてください。

ソースコードはGitHubにあります。

hironobu-s/novassh

ブログの著者欄

斉藤 弘信

GMOインターネット株式会社

2000年に同社に入社。ユーザーサポートやデータセンターでのオペレーション業務等を担当し,その後社長室などのゼネラル部門を経て,2014年9月よりクラウド/ホスティング事業のテクニカルエバンジェリストを担当。現在はWebプロモーション研究室のソフトウェアエンジニアとして勤務。得意分野はWebアプリケーションの設計/開発,Linuxサーバー構築/運用。

採用情報

関連記事