ConoHa でサーバー
少し前からConoHa のサーバーをレンタルし、ゴニョゴニョ立ち上げようかと思ってます。
(ConoHaはこちらから。https://www.conoha.jp/)
今回は家からConoHaサーバーに立ち上げてある Redis サーバーに接続しようとしたときの作業ログようなもの。
ちなみにConoHaに入れたOSは Arch Linux。
ConoHa サーバー のネットワークのポート
デフォルトで設定されているポートは、ConoHa の管理画面上から簡単に管理出来ます。
しかし、デフォルトに無いポートは設定をする方法がGUIには用意されていません。
ここでポートを追加する方法は二つあって、
- curlを使用し、ConoHaのWebApiを叩く
- 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>
流れは以下。
- openstack クライアントを立ち上げる
- Security Groupの作成
- Security Group listでIDを確認
- Security Group ruleの作成
- Security Group ruleを確認
- port list, port show でポートを割り当てるサーバー等を確認
- neutron port-update でポートに対してSecurity Groupを割り当てる。
- port show でポートがアップデートされているかを確認
5.のneutron port-updateは、security-groupを追加ではなく、上書きする仕様になっています。なので、現在のものも含めて必要な分を追加する必要があります。
複数同時にsecurity-groupを追加する方法は、
--security-group <Security group Id>
このオプションを必要な分だけ繋げていけば良いです。
また、各種コマンドのヘルプを見るとSecurity Groupの名前でも設定できるような解説がされていますが、私がやったところでは一部のコマンドで受け付けませんでした。
そのため今回は全てID形式で指定しています。
確認
残念ながらAPIで追加したポートは、ConoHaのGUIから確認は出来ないようです。
ポートが空いてるかの確認は、実際にポートを使用してみるのが早そうです。
以上。
注釈
-
第5回 OpenStack APIを使ったCLI操作をConoHaでやってみる:個人利用から大規模開発までConoHaで始めるクラウド開発入門|gihyo.jp … 技術評論社 ↩
-
ConoHaのサポートに問い合わせても「neutron使ってね」と来たのでおそらくOpenstack clientにはまだ方法がないのだろう。 ↩