6
6

More than 3 years have passed since last update.

ShinobiLayer: python APIを使ったサンプルポータル(slick)を試してみる

Last updated at Posted at 2015-02-23

はじめに

  • SoftLayerのAPIを使ったアプリケーションの実装例を知りたい。
  • SoftLayerのCustomer Portalではなく、自分達独自のサービスをインテグレーションさせたり、よりLook and Feelが優れたページを使ってSoftLayerを使いたい。

という方はたくさんいるのではないかと思います。今回は、https://github.com/softlayer/slick で公開されているPythonベースのslickというアプリケーションを、CentOS 7.xで動かしてみます。

注1. github上の導入手順ではUbuntu 14.04-64を使用するように指示されていますが、今回はCentOS 7.xを利用します。
注2. CentOS 6.xはPythonが2.6です。2.7にupgradeしないと警告がいたる所で出るので、CentOS 7.xの方が導入し易いです。(CentOS 6.xのPythonのバージョンを上げたらよいのですがだけなのですが、それを書くだけでスペース使いそうなので。。。)

導入パッケージの紹介

  • Flask: Pythonベースの軽量なウェブアプリケーションフレームワーク。
  • WTForms: ユーザー入力用フォームを定義したり送信されたフォームの処理を簡単する為のパッケージ。
  • sqlite: 軽量データベース。「今すぐSQLite入門。知っておくべきたった5つのこと」とかの説明が分かりやすい。github上の導入ガイドによるとsqlite3を入れるように書かれてありますが、CentOS 7.xには最初から入っています。パッケージ名もsqliteで良いです。
  • libpq-dev: CentOSには存在しないようなので、postgresql-develで代用するらしいです。http://www.faqoverflow.com/serverfault/316703.html
  • gcc: 導入時のコンパイルにgccが使われているので入れておきます。

導入

#環境確認
[root@sltest01 ~]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)
[root@sltest01 ~]# python -V
Python 2.7.5

#yumによるパッケージの導入
[root@sltest01 ~]# yum install postgresql-devel sqlite git gcc python-devel python-setuptools

#pipによるパッケージの導入
[root@sltest01 ~]# easy_install pip
[root@sltest01 ~]# pip install WTForms wtforms-html5 WTForms-Components
[root@sltest01 ~]# pip install flask
[root@sltest01 ~]# pip install six --upgrade

#slickの導入。なお、python setup.py install実施時に、もしSoftLayerのPython-Clientが未導入であれば導入してくれる。既に導入済みの場合は、github上の最新版ではなく、release版を利用すること。
[root@sltest01 ~]# cd /usr/local/
[root@sltest01 local]# git clone https://github.com/softlayer/slick.git
[root@sltest01 local]# cd slick
[root@sltest01 slick]# python setup.py install

#Databaseのセットアップ
[root@sltest01 slick]# alembic upgrade head

#Configの修正
[root@sltest01 slick]# cp -p config.py.sample config.py
[root@sltest01 slick]# vi config.py
(SECRET_KEYとOTP_SECRETに適当な値を入れる)
[root@sltest01 slick]# sdiff -s config.py config.py.sample
SECRET_KEY = 'zaq12wsx' # Set this to something random        | SECRET_KEY = '' # Set this to something random
OTP_SECRET = 'xsw23edc' # Set this to something else random   | OTP_SECRET = '' # Set this to something else random

#環境変数の設定
[root@sltest01 slick]# vi ~/.bashrc
(export SLICK_CONFIG_FILE=/usr/local/slick/config.py を追記)
[root@sltest01 slick]# tail -1 ~/.bashrc
export SLICK_CONFIG_FILE=/usr/local/slick/config.py
[root@sltest01 slick]# . ~/.bashrc
[root@sltest01 slick]# env |grep SLICK_CONFIG_FILE
SLICK_CONFIG_FILE=/usr/local/slick/config.py

サービス起動

[root@sltest01 slick]# python run.py
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with stat
(停止したいときは、Ctrl +C)

ポート確認

[root@sltest01 ~]# ss -antup | grep -e State -e ":5000 "
Netid  State      Recv-Q Send-Q     Local Address:Port       Peer Address:Port
tcp    LISTEN     0      128                    *:5000                  *:*      users:(("python",10315,3))

実際にブラウザでアクセスしてみる

http://<IP Address>:5000にアクセスしてみて下さい。

  • ユーザーIDはCustomer Portalのものと同じです。
    slic01.jpg
  • トップ画面。色々なDashboardが提供されています。
    slic02.jpg
  • サーバーの一覧
    slic03.jpg
  • Subnetの一覧
    slic04.jpg
  • サーバー注文画面
    slic05.jpg

終わりに

いかがでしたでしょうか?SoftLayerのAPIを使えば、こんなこともできるんですね。

6
6
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
6
6