IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  OpenStack  システムトラブルシュート 

第89回 サーバーオペレーションUIとしてのJupyterの可能性 (中井悦司) 2016年5月

はじめに

 前回は、JupyterとAnsibleを組み合わせることで、Notebook形式の「実行可能な手順書」を実現する方法を紹介しました。この時、従来の手順書のように、実行するべきコマンドを単純に並べて記載するのではなく、Jupyter独自の機能を活かしたオペレーションを実現することも可能になります。

 今回は、プログラムコードを手順書に埋め込んで利用する、あるいは、コマンドの実行結果を表やグラフに表示するといった、Jupyterならではの新しいサーバーオペレーションの可能性を紹介したいと思います。

JupyterでサーバーインフラのAPIを操作

 本シリーズの初回でも触れたように、Jupyterの本来の役割は、Pythonによる対話的なデータ分析環境を提供することです。Notebook上にPythonのコードを記述しながら、さまざまなデータ分析を実施して、その結果を表やグラフにビジュアライズすることができます。

 一方、OpenStackを始めとする最近のサーバーインフラは、APIによる操作が可能で、多くの場合、Pythonによるクライアントライブラリーが提供されています。そのため、Pythonのコードを対話的に実行するJupyterのNotebookは、サーバーインフラの操作環境としても効果的に利用することができます。たとえば、AnsibleからOpenStackを操作する場合、その裏側では、「shade」とよばれるクライアントライブラリーを介して、APIにリクエストを発行しています。JupyterのNotebook上であれば、このようなライブラリーの機能をPythonのコードから直接に呼び出すことも可能です。たとえば、次は、Glanceに登録されたイメージの一覧を取得する例になります。

from shade import *
conn = openstack_cloud(cloud="myopenstack")
images = conn.list_images()

 一般的なOpenStackのCLIツール(glanceコマンドなど)であれば、実行結果はテキスト文字を組み合わせた簡易的な表形式になりますが、ここでは、Pythonのオブジェクトとして結果が得られます。Jupyterの環境であれば、これを表形式に変換して表示することも可能です。上記の例では、ライブラリーのメソッドを直接に呼び出していますが、取得するデータ項目を引数で指定可能な関数を用意することもそれほど難しくはありません。

 次の2つの図は、筆者がサンプルとして実装した関数を用いた実行例です(*1)。まず、図1は、「glance image-list」と「nova list」に相当する関数です。

fig01

図1 Jupyter上で実装したOpenStack CLIの実行例(1)

 次の図2は、VMインスタンスのフレーバー情報を取得して、割り当てられたリソース量(メモリーと仮想CPU数)をグラフ表示したものになります。

fig02

図2 Jupyter上で実装したOpenStack CLIの実行例(2)

 従来のコマンドライン操作と比較すると、さまざまなライブラリー関数を利用したり、独自の関数を定義することで、作業の自由度が大きく向上することがわかります。今回紹介した例は、あくまで一部の機能を限定的に実装したサンプルですが、より本格的な「Jupyter用OpenStackクライアント」を作ることも十分に可能でしょう。

次回予告

 今回は、「API操作端末」としてのJupyterの活用方法を紹介しました。今後、JupyterのNotebookがサーバーオペレーションの標準環境になれば、APIで操作する「Programmable Infrastructure」の活用の幅が大きく広がるのではないでしょうか。

 さて、今週は、「Kubernetes Meetup Tokyo #1」で発表させていただく予定です。次回は、このイベントからの話題をお届けしたいと思います。

参考資料

*1 OpenStack Client for Jupyter (Sample)

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  OpenStack  システムトラブルシュート