概要

シスコのサーバやネットワークなど各種データセンター製品はいずれもオープンな API を提供し、横断的な処理の実現や外部ツールとの連携をシンプルかつ容易に実現します。オープンな API が提供されていることによって、SDN のみならずさまざまなツールやアプリケーションなどとの連携が可能となり、ソフトウェアとハードウェアの垣根を越えた IT リソースの統合された管理性を提供します。

ポイント

  • Cisco UCS Manager と Cisco IMC が提供する XML API の活用
  • Cisco UCS Director が提供する REST/API の活用
  • Cisco Nexus シリーズが提供するNX-API の活用
  • Cisco ACI/Cisco APIC が提供する REST/API の活用
  • Python や PowerShell による容易なスクリプティングを実現するツール キットの提供

Cisco UCS のプログラマビリティ

Cisco UCS Manager

Cisco UCS はオープンな XML API を提供しており、Cisco UCS Manager によって管理されるすべてのサーバ(Cisco UCS B シリーズ、同 C シリーズ、同 M シリーズ)に対して、XML API で連携するアプリケーションやツール、スクリプトなどを用いてシステムの管理、構成、情報の取得などが行えます。サーバの台数が増加しても複雑化しない、シンプルなコンピューティング リソースの管理が可能です。

Cisco UCS Platform Emulator

Cisco UCS の XML API を用いたプログラムの作成などの際に、Cisco UCS Platform Emulator があれば実機(Cisco UCS Manager)がなくても動作確認やテストを実施することができます。さまざまなハードウェア構成をエミュレートできるので、すべてのハードウェア ラインナップを手元に用意する必要はありません。

Cisco IMC

シスコのラック マウント サーバ(Cisco UCS C シリーズ)は、すべてのモデルが標準で Cisco Integrated Management Controller(Cisco IMC)と呼ばれる管理モジュールを搭載しています。Cisco IMC を通じて管理者は OS やハイパーバイザに依存しないサーバの管理と監視が可能となります。Cisco IMC は Cisco UCS Manager と同様に XML API に対応しており、サーバの構成や情報の取得などを XML API を通じて行うことができます。

Cisco UCS Central

複数配置された Cisco UCS Manager を統合管理する仕組みとして、シスコは Cisco UCS Central という統合管理ツールを提供しています。Cisco UCS Central によって、複数のデータセンターに配置された Cisco UCS Manager を一元的に管理、構成することが可能となります。Cisco UCS Central も XML API を提供しているので、さまざまな管理ツールと連携できます。

Cisco UCS PowerTool

XML API は非常に便利ですが、ちょっとした処理をスクリプト化したいなどの場合は、もっと簡易な方法が必要となります。シスコは PowerShell を通じて XML API で Cisco UCS Manager および Cisco IMC、Cisco UCS Central に対する処理を実行できる Cisco UCS PowerTool を提供しています。

Cisco UCS Director

Cisco UCS Director は、Cisco UCS サーバだけではなく、Cisco Nexus スイッチや Cisco ACI といったデータセンター向けネットワーク製品や、VMware vSphere、Microsoft Hyper-V などの各社ハイパーバイザ、NetApp FAS シリーズや EMC VNX/VMAX/Isilon シリーズといった各社ストレージ製品まで、インフラ リソース全般の横断的かつ統合された管理性と自動化を提供します。
Cisco UCS Director は、外部からの連携のためのノース バウンド側の API と、外部への連携のためのサウス バウンド側の API をそれぞれ提供しています。

  • サウス バウンド側
    • Cisco UCS Director は管理者および利用者向けの Web UI 機能による直接運用のほかに、REST/API を通じてバック エンドの仕組みの一部として活用することも可能となっています。
    • Windows 環境から Cisco UCS Director を活用いただくことを目的として、PowerShell API を提供しています。この PowerShell 向け Cmdlet を活用して Cisco UCS Director の処理を外部から実行することが可能です。
  • ノース バウンド側
    • Cisco UCS Director は、Cisco UCS Director との連携や Cisco UCS Director からの管理機能を拡張する仕組みとして、Open Automation という仕組みを提供しています。Cisco UCS Director は SDK を用いて開発されたモジュールを追加することによって、標準では対応していない機器やソフトウェアとの連携を実現できます。

コミュニティ

ここでご紹介した Cisco UCS PowerTool や Cisco UCS Platform Emulator 以外にも、シスコはコミュニティ サイトで有用なリソースを多数提供しています。

  • ブログ、ビデオ、フォーラムなどを通じた情報交換のためのスペース
  • 各種ドキュメント、開発者向けガイド
  • ホワイト ペーパー
  • Python SDK for UCS Manager/IMC
  • XML API や PowerTool などによるサンプル コード
  • Microsoft System Center や Nagios などの連携プラグイン

Cisco Nexus シリーズのプログラマビリティ

Open NX-OS

スイッチを個別に管理するのではなく、インフラ リソースの一部としてプログラマブルに管理したいという要望に応えるために、シスコは Open NX-OS としてオープンで拡張性のあるプログラマブルな仕組みを提供します。
Open NX-OS は、オープンな API(NX-API)だけでなく、以下のような幅広いオープン性を提供しています。

  • オープンなブート ローダーと導入手法
    • PXE/iPXE と DHCP、HTTP/TFTP によるイメージ レポジトリを使ったイメージの展開が可能
  • オープンなアプリケーション パッケージ
    • サード パーティ製のアプリケーション パッケージ(RPM)の展開と YUM によるパッケージ管理機能の提供
    • LXC によるコンテナ環境もしくはネイティブな NX-OS Kernel に対するアプリケーション展開が可能
    • Puppet や Chef のエージェントを展開することにより、マスタ サーバによる一元的な統合管理が可能
  • オープンなインターフェイス
    • Linux 標準である Bash ベースの CLI インターフェイスを提供し、Linux コマンドによる管理、操作性を提供
    • ethtool や ifconfig、ip route などの Linux ネイティブなコマンドによる操作が可能
    • NX-OS のコマンドと Linux コマンドを組み合わせることによって柔軟なスクリプティングが可能
  • オープンな API(NX-API)
    • HTTP/HTTPS を通じた JSON/XML 形式での入出力に対応
    • NX-API Developer Sandbox による容易なテスト環境の提供

Cisco ACI のプログラマビリティ

Cisco Application Centric Infrastructure(ACI)は、そのコントローラである Cisco Application Policy Infrastructure Controller (APIC)によって、Cisco Nexus 9000 シリーズで構成されている物理的なファブリック ネットワークから、各テナントの論理的なアプリケーション視点で接続性が定義された論理的なネットワークまでを一元的に管理することが可能となっています。
物理論理までのすべての要素をオブジェクト モデルとして一元的に紐付けることができる管理性は、物理的な接続性を意識することなくリソースの接続性を定義できる点や、コンテナ、仮想マシン、物理サーバなどの形態の違いを超えて単一のポリシーに基づく接続性を定義することができる点など、プログラマビリティの視点からも大きなメリットを提供します。

Cisco APIC は JSON もしくは XML を用いた REST/API を標準のインターフェイスとしており、すべてオープンとなっています。このオープンなインターフェイスを活用して、シスコ自身もさまざまなオープン ソース プロジェクトを推進しています。

  • ACI Toolkit

    Python を使って Cisco ACIをより簡易に利用してもらうためのツールキットです。Cisco ACI の全 API の操作をカバーしているわけではありませんが、大半の操作をシンプルなスクリプトで実行することを可能とします。サンプル スクリプトやサンプル アプリケーションが数多く含まれており、それらを参考にしたり必要に応じて修正したりすることで、目的の処理を簡易に実現するプログラマビリティ性を提供します。

  • APIC REST to Python Adapter(arya.py)

    Web GUI で実施した操作によって発行された API は、API Inspector によって REST/API 確認することができます。これをそのまま再利用することも可能ですが、arya.py はこの XML/JSON 形式の API から Python で実行可能なコードを生成します。これにより、より汎用性の高いスクリプティングを可能とします。