MENU

Ansible LightspeedのTechnical Preview版を検証する ~FS5000を操作するAnsible Playbook の作成例

Text=牛黄蓍 知代子 日本アイ・ビー・エム システムズ・エンジニアリング

「Ansible Lightspeed with IBM Watsonx Code Assistant」(以下Ansible Lightspeed)は、Visual Studio Code(以下、VSCode) で提供されるAnsible拡張の機能である。

自然言語でAnsible Playbook用コードを提案する生成AIとして、2023年5月に Technical Preview 版がリリースされた(「watsonx Code Assistant」)。https://www.ibm.com/products/watsonx-code-assistant

本稿では、IBM Storage FlashSystem 5000(以下、FS5000) を操作するAnsible Playbook 作成例を通して、Ansible Lightspeedの特徴を紹介する。

ここでは以下の環境で、Ansible 実行によるボリューム作成を検証した。

・Ansible Playbookは、VSCodeを導入したPCでAnsible 拡張機能をインストールし、Ansible Lightspeed を有効化して開発する。

・非インターネット接続のAnsibleサーバー (OSはRedHat Enterprise Linux 8.6)にAnsible と、Ansible Content Collectionsの “ibm.spectrum_virtualize”をサーバー上に配置して、導入する。設定方法は、以下を参照。

◎Tech Preview: Ansible Lightspeed with IBM Watson Code Assistant
◎Ansible Content Collections とは
◎Ansible のインストール
◎インストール Ansible Collections for IBM Spectrum Virtualize


Ansible Playbook 作成例-Ansible Lightspeed 生成試行 

FS5000のボリューム作成を行うPlaybookを Ansible Lightspeed により作成する例を確認する。

生成例1 -name:Create a volumeと記載

VSCode でhosts、collections、vars を事前に記載したPlaybookを用意している。

tasks で 、“-name:Create a volume” というプロンプトを記載してEnterを押し、Ansible Lightspeedを実行する。

結果は、期待していたモジュールの “ibm_svc_manage_volume” ではなく、“ibm_svc_vdisk” という以前のバージョンの“ibm.spectrum_virtualize”コレクションで使用されていたモジュール名で生成された。

生成例2  -name:Create a thin volume by ibm_svc_manage_volumeと記載

シン・プロビジョニング・ボリューム作成を目的とするため、 “-name:Create a thin volume by ibm_svc_manage_volume” とプロンプトに明確にモジュールを指定してEnter を押す。

その結果は、“thin” の内容が理解されなかったためか、提案コードは生成されなかった。

生成例3 -name:Create a volume by ibm_svc_manage_volumeと記載

1つのボリューム作成を目的とし、モジュールを明示指定したプロンプト “-name:Create a volume by ibm_svc_manage_volume”の生成では、期待に近い内容が生成されたが、モジュールの書き方と比較すると一部の記載に誤りがあった。

上記の生成例3 から、“size_unit: gb”を“unit: gb”に変更し(属性名の誤り)、“return_kvm:ture”と“virtualization_type: kvm” 行を削除する(対象属性値が非存在)修正を行う。

修正した“ansible_svctest1.yml” で、Ansibleを実行する(ibm.spectrum_virtualize.ibm_svc_manage_volume module ~This module manages standard volumes on IBM Spectrum Virtualize family storage systems)。



IBM FlashSystem 5000 のGUI で、正常にボリュームが作成されていると確認できた。

Ansible Lightspeed の特徴 

Ansible Lightspeed ドキュメント(Using Ansible Lightspeed with IBM watsonx Code Assistant with the VSCode Getting a recommendation ) には、Ansible Lightspeed の特徴について以下のような記載がある。

① 異なる言い回しで異なる結果が得られる

上記の生成試行例から明らかなように、入力単語のわずかな変更で3回とも異なる結果となった。

② 前のタスクと関連づけて生成する

以下のPlaybookでは、前のタスクから文言の一部を省略し、先の生成例1と同じ文言の “-name: Create a volume”を生成している。その結果、前のタスクに基づく適切な項目内容で提案が生成された。

Ansible Lightspeed へのフィードバック

Ansible Lightspeed は品質や改善要望などのフィードバックを送信できる。

VSCode 左列にあるAnsible Extension を選択すると、“ANSIBLE LIGHTSPEED FEEDBACK”パネルが開き、顔文字による簡易評価や詳細項目を記載し、送信する(上記の検証内容に関するフィードバックも送信した)。

このようにAnsible Lightspeed により正解に近いコードを出力できることを確認できたが、一部の誤りは見受けられた。Ansible Lightspeed は今後の機械学習モデルの改善・更新が見込まれているため、時間の経過による品質の向上を期待したい。

今回、Ansible Lightspeed を用いたPlaybook作成例で、“ibm.spectrum_virtualize” モジュールによるオンプレミス・ストレージの操作を紹介した。今回モジュールを使用したが、製品提供のコマンドやAPIを使用した実装も可能である。

ハードウェア製品の設定・操作は、前提として製品知識が必要不可欠であるが、自動化ツールとして適しているAnsibleを使用することで、オンプレミスでもより一層の自動化が広まればと考える。

AI関連分野の日々の進歩と同様に、オンプレミスのインフラストラクチャ領域でも、その進展を着実に取り入れ、システム基盤の運用容易性の向上および高度化を進めたい。

著者
牛黄蓍 知代子(うしおうぎ ちよこ)

日本アイ・ビー・エム システムズ・エンジニアリング株式会社
Open Technology, アドバイザリーITスペシャリスト

IBM PowerおよびIBM Cloud (IaaS、Kubernetes、Power Virtual Server)の技術支援に従事。2023年9月時点はお客様のプライベート・クラウド・システムにて Ansible とPower Virtual Server を使用したよりシンプルで使いやすい IBM Powerインフラの自動化を実践中。

*本記事は筆者個人の見解であり、IBMおよびキンドリルジャパン、キンドリルジャパン ・テクノロジーサービスの立場、戦略、意見を代表するものではありません。


当サイトでは、TEC-Jメンバーによる技術解説・コラムなどを掲載しています。

TEC-J技術記事https://www.imagazine.co.jp/tec-j/

[i Magazine・IS magazine]