LoginSignup
3
2

More than 1 year has passed since last update.

OpenStack Client を使用してGMO ConoHa にポート設定 (Windows編)

Last updated at Posted at 2016-05-11

ConoHa でサーバー

少し前からConoHa のサーバーをレンタルし、ゴニョゴニョ立ち上げようかと思ってます。
(ConoHaはこちらから。https://www.conoha.jp/)

今回は家からConoHaサーバーに立ち上げてある Redis サーバーに接続しようとしたときの作業ログようなもの。

ちなみにConoHaに入れたOSは Arch Linux。

ConoHa サーバー のネットワークのポート

デフォルトで設定されているポートは、ConoHa の管理画面上から簡単に管理出来ます。
しかし、デフォルトに無いポートは設定をする方法がGUIには用意されていません。

ここでポートを追加する方法は二つあって、

  1. curlを使用し、ConoHaのWebApiを叩く
  2. OpenStack Clientを使用する

今回はOpenStack自体が初めてだったので2.の方法で作業を行います。

OpenStack Clientのインストール

OpenStack Clientは、Pythonのpipで簡単にインストールが可能となっています。

pip install python-openstackclient

※ 私が構築したときにはpyvenvの仮想環境内で作業を行いました。

ConoHa 管理画面から必要なデータを取得

まず準備としてApiを使用するための各種情報が必要です。
OpenStackを使用する場合、下記の情報を管理画面から取得しておきます。

コントロールパネル > API
"テナント情報": テナント名
"エンドポイント": Identity Service
"APIユーザー": ユーザー名とパスワード

OpenStackへ接続するための環境設定

Windows コマンドプロンプトの一時的な環境設定方法。
先に取得しておいたAPIの情報を下記のように設定。

set OS_USERNAME=APIユーザー名
set OS_PASSWORD=APIパスワード
set OS_AUTH_URL=Identity Service
set OS_TENANT_NAME=テナント名

よくある例ではLinuxのbashで設定するように書かれています。
その際、OS_PASSWORDにシングルクオートで文字列が囲まれているが、Windowsでは必要なし。むしろ書いてしまうとおそらく繋がらないかも(繋がらなかった)。

また、5/8現在だとneutron等の各機能別のアプリケーションは非推奨となり、neutron等一部のアプリケーションはインストールされなくなっています。

neutronは必要だ

だがしかし、ConoHaの制限でSecurity Groupはポート(NIC)に対してのみ設定が行えます1
そのため、neutronでしか使えない(と思われる2) port-updateコマンドが必要なため、neutronも別途インストールする必要があります。

pip install python-neutronclient

セキュリティグループの作成~サーバーへの紐付け

ここからは実際にOpenStackのコマンドを使用して行う作業になります。
例としてRedisで設定を行う場合を上げておきます(gropuがredisになっているだけなので、そこは好きに変更を)

> openstack
> security group create redis --description "allow Redis connect"
> security group list
> security group rule create --dst-port <from-port:to-port> <Security group Id>
> security group rule show <Security group Id>
> port list
> port show <Port Id>
> neutron port-update --security-group <Security group Id> <Port Id>
> port show <Port Id>

流れは以下。

  1. openstack クライアントを立ち上げる
  2. Security Groupの作成
  3. Security Group listでIDを確認
  4. Security Group ruleの作成
  5. Security Group ruleを確認
  6. port list, port show でポートを割り当てるサーバー等を確認
  7. neutron port-update でポートに対してSecurity Groupを割り当てる。
  8. port show でポートがアップデートされているかを確認

5.のneutron port-updateは、security-groupを追加ではなく、上書きする仕様になっています。なので、現在のものも含めて必要な分を追加する必要があります。

複数同時にsecurity-groupを追加する方法は、
--security-group <Security group Id>
このオプションを必要な分だけ繋げていけば良いです。

また、各種コマンドのヘルプを見るとSecurity Groupの名前でも設定できるような解説がされていますが、私がやったところでは一部のコマンドで受け付けませんでした。
そのため今回は全てID形式で指定しています。

確認

残念ながらAPIで追加したポートは、ConoHaのGUIから確認は出来ないようです。
ポートが空いてるかの確認は、実際にポートを使用してみるのが早そうです。

以上。

注釈

  1. 第5回 OpenStack APIを使ったCLI操作をConoHaでやってみる:個人利用から大規模開発までConoHaで始めるクラウド開発入門|gihyo.jp … 技術評論社

  2. ConoHaのサポートに問い合わせても「neutron使ってね」と来たのでおそらくOpenstack clientにはまだ方法がないのだろう。

3
2
1

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
3
2