Enterprise Topics
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

【連載】次世代ハイパーコンバージド「HPE SimpliVity」を取り巻くエコシステム ー 第7回 SimpliVityを自動化ツールで触ってみよう!その1

yoshihiko1989

プリセールスの片山です。お久しぶりの投稿となります。

前回までSimpliVityAPIで操作する方法をについて、RESTクライアントツールを交えて解説させていただきました。今回はITサービスの自動化を見据えたSimpliVityの運用をテーマに、自動化ツールのデファクトスタンダードであるAnsibleを例にとって、解説します。

 

構成管理ツール(自動化ツール)の必要性

「自動化」のキーワードの上では、APIでの操作は必須となっております。従来ながらのシェルスクリプトだけでは一部自動化は実現できても、各機器個別に専用コマンド・専用の書き方を覚えなければならず、苦労が絶えなかったと思います。APIならREST標準規格に基づく記述方式で、機器によらず書き方を統一することができますし、API対応の製品が世の中に増えていることからも「これからはAPIの時代」ということは言えるでしょう。が、APIだけで自動化を目指すには少々ハードルが高いのも事実です。例として、SimpliVityのバックアップジョブの自動化を挙げてみましょう。単に「仮想マシンのバックアップを取得する」というジョブ一つとっても、REST APIの場合は中で動く・動かさなければいけないステップが複数存在します。

  1. SimpliVityのOVCのセッションIDを取得(アクセストークンを発行)
  2. バックアップ対象の仮想マシンIDの取得
  3. バックアップ取得命令
  4. バックアップのタスクが無事実行できているかのステータスチェック

これら各ステップにおいて、もしエラーが返ってきたら次に進んでも良い結果は生まないでしょう。

「もしネットワークに繋がっていなかったたら?」「もし既にジョブが完了していたら?」といった、レスポンスの制御・ハンドリングをしてくれる仕組みが必要になります。図1.png

 

もちろん、これらのエラー制御をAPIの直書きでがんばって書くことも可能ではありますが、

コーディングの効率を考えると、コード化された手順書や実行手順を代替してくれるライブラリがある構成管理ツール、いわゆる「自動化ツール」があると非常に便利です。

 

もう少し視野を広げてみましょう。

図2.png

自動化が進んでいる企業様も当然たくさんいらっしゃいますが、

日本のITサービス自動化の現状は、

  • 担当者に依存(属人化)
  • ソフトウェアレイヤの自動化は進んでいるが、インフラレイヤは着手できていない
  • 自動化の作り方がバラバラ(機器/ベンダー/ツール/担当者依存)
  • 自動化の実行方法がバラバラ(機器/ベンダー/ツール/担当者依存)

といった課題があります。このような課題を解決してくれるのが構成管理ツールというわけです。

 

構成管理ツールのデファクトスタンダード「Ansible図3.png

一重に構成管理ツールと言っても、たくさんの製品があります。

代表格としては、「Chef」、「Puppet」、「Ansible」です。ChefPuppetは非常に多機能である一方で、設定ファイルの記述や管理が複雑になりやすい特徴があります。

これに対して、Ansibleはシンプルかつ使い勝手の良いのが特長です。海外発のものだけでなく、国産のツールも数多くあります。クックパッドから派生した「Itamae」や、「Serverspec」などが有名です。

その中でも今回はデファクトスタンダードとなりつつある「Ansible」に焦点を当てたいと思います。

IT製品情報専門サイトを運営するTechRepublicの指標では、Ansibleが既にユーザー数が一番多い自動化ツールということを示しています。図4.png

https://www.techrepublic.com/article/ansible-overtakes-chef-and-puppet-as-the-top-cloud-configuration-management-tool/

Google Trendsでの検索数で人気動向を調べてみると面白いのですが、日本で見てもAnsibleへの期待値が高いことは明白です。

図5.png

Ansibleは、「Simple」、「Powerfull」、「Agentless」の3つの特徴をもち、コード化された手順書(Playbook)の作成がYaml形式で学習するハードルが比較的低く、マルチベンダー、マルチレイヤー対応のよくある作業の部品化をしたライブラリ(Modules)の充実、エージェント導入コスト不要のアーキテクチャを備えています。

 図6.png

Ansibleが得意とすること

Ansibleはオープンソースプロジェクトで開発されているPython製の構成管理ツールで、Red Hat社が商用版をサポートしています。Yaml形式で書かれた設定ファイルに従って、サーバーやネットワーク機器、クラウドインスタンスなどの設定を自動的に実行することを得意としています。

この背景にはサーバーなどのインフラがコードで定義され、制御できるようにしようというインフラのコード化(Infrastructre as Code)が流行してきたこともあります。

 

もちろんWindowsVMwareの制御も得意としており、さらに、近年ではアプリケーションのデプロイやDockerコンテナ、Kubernetesオーケストレーションなどにも利用できるようになりました。

話を戻して、HPE SimpliVityでのAnsible操作を例にとると、大量の仮想マシンを配備することや、配備したタイミングで一斉にバックアップを取得したり、パフォーマンス情報を取得して、その情報をトリガーに負荷軽減のActionを実施するなど、利用用途は様々考えられます。図7.png

 

Ansibleのビジョン

先に示した通り、ITサービスの自動化には各部分部分の自動化を実施できたとしても、作り方、実行方法がバラバラで属人的になりやすいという課題がでてきます。この課題を解決するために、組織全員が同じ方法で自動化ボタンを作成し、全員が同じ方法で自動化実行する必要が出てきます。

Ansibleでは、それを実現するアプローチとして、オープンソースのプロジェクトである「Ansible Project」「AWX Project」。商用版として、「Ansible Engine」「Ansible Tower」といった製品をRed Hat社から提供されています。図8.png
図9.png

 

 

今回は構成管理ツールAnsibleの概要とその利用用途をお話させていただきました。

次回は実際にSimpliVityAnsibleで制御するうえでキーとなる「Playbookの書き方」などに触れていきたいと思います。

0 感謝
作者について

yoshihiko1989

日本ヒューレット・パッカード株式会社で Server / HCI / Composable / CloudNative関連のプリセールスを主に担当してます。