10
10

More than 5 years have passed since last update.

OpenStackインスタンスに簡単にSSHできるツールnovasshを作った

Last updated at Posted at 2016-04-03

クラウドなどを使ってたくさんのインスタンスを立てると、SSHするときに「あれIPなんだっけ?」となったりします。だいたいはWeb管理ツールなどにログインして確認するかAPIのレスポンスを調べるなどして、それを~/.ssh/configに名前とIPアドレスの対応を書くのが正攻法です。特にAWS方面ではec2sshなどの便利ツール/スクリプトが既に多くあります。

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

デモ

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

pecoと組み合わせる

使い方

OpenStack環境か、OpenStackベースのパブリッククラウドでも動作します。以下の環境で行っています。

1. novasshのインストール

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

インストール方法

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

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

自前OpenStack(Horizon)の場合はInstance Name

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

horizon.png

ConoHaの場合

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

ConoHaコントロールパネル.png

Rackspaceの場合

Create Serverダイアログにある「Server Name」で指定します。

Cloud_Servers_-_Rackspace.png

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 NovaはバージョンJunoからインスタンスへのシリアルコンソール接続をサポートしています。コンソール接続は仮想マシンのシリアルコンソール端末に直接接続されるため、インスタンスをリブートしても接続が切れたりせず、OSのブートシーケンスなども確認することができます。カーネルをいじったりするときに便利です。

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

お試しするならConoHaを使うのが良いと思います。RackspaceはOpenStackのレベルで無効になっていました。

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:

参考: お名前.comのVPSのUbuntu14.04でシリアルコンソールを有効化する

ソースとか

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

hironobu-s/novassh

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10