Text=李 明元 日本アイ・ビー・エム システムズ・エンジニアリング
最近は生成AIがあらゆる場面で利用されており、ソースコードの自動生成でも活用が始まっている。多くのベンダーがソースコードの自動生成に向けたAIソリューションを提供している。日本IBMでも、2023年の第4四半期に「Watsonx Code Assistant」を正式公開すると発表した。
これに先立ち、Red Hat 社は2023年5月、Watsonx Code Assistant を利用してAnsibleのコードを自動的に生成する「Ansible Lightspeed with IBM Watsonx Code Assistant」を発表した。
前述したようにWatsonx Code Assistantの正式利用は本年第4四半期からであるが、すでにTechnical Preview版でAnsible Lightspeed が利用可能になっている。そこで本稿では、Ansible Lightspeedを初心者が利用するための情報と、筆者が検証で気づいた点を紹介したい。
初心者がAnsibleの開発に迅速に着手するには
まずAnsibleの開発に着手するには、最低限以下の項目を理解する必要がある。
Ansibleの役割
Ansibleの構成
Ansibleの用語
Ansibleの基本的な文法
上記に関してはAnsible基礎に関する書籍や公式のドキュメントで確認できるが、Ansibleもプログラミングの勉強と同様、実際に手を動かしながら、その書き方や使い方を覚えていく必要がある。
しかしAnsibleは多くのプログラミング言語と違って、ローカルだけでは十分に確認できない。実際にAnsibleを試すには、それなりの環境が必要である。筆者はRed Hat社が無料で提供しているハンズオン環境を利用して、実際にハンズオンを実施しながら勉強したので、その環境で勉強することを推奨する(「Ansible トレイルマップ MOUNT YAML」)。
Ansibleのハンズオンまでを完了したら、Ansible Lightspeedの利用を開始できる。
Ansible Lightspeedを利用した開発
Ansible Lightspeedとは、AnsibleのPlaybook用コードの作成を生成AIによって支援するものである。Ansible Lightspeedで利用している生成AIは、Watsonx Code Assistantである。
Ansible Lightspeedの導入方法については、Red Hat社が公開しているガイドが利用できる(「Welcome to the Ansible Lightspeed with IBM Watson Code Assistant Technical Preview」)。
初心者がAnsibleを利用して開発する際に、難しいと感じるPackageの選定と前タスクの引き継ぎについて、以下に2つの例を紹介する
◎Packageの選定
既存のやり方では、公式のドキュメントなどを検索して実装することが多い。しかしAnsible Lightspeedを利用すると、この検索の手間を省ける。図表1は、CentOSにhttpdサービスをインストールする例である。
◎タスクの引き継ぎ
Ansibleを利用する際に、1個のタスクだけでは目的を達成できないことが多く、基本的には複数のタスクを組み合わせるケースが少なくない。それには前のタスクを理解し、次のタスクを開発する必要がある。しかしAnsible Lightspeedを利用すると、前のタスクを簡単に引き継げる。
上記のようにAnsible Lightspeedを利用することで、生産性を高められる。ただし、「Ansible Lightspeedでは1個のタスクは生成できるが、複数のタスクの同時生成は(現時点では)できない」点に注意が必要である。
図表2の例でいえば、Ansible Lightspeedを用いて、サーバーのインスタンスにサービスをインストールすることはできるが、EC2インスタンスを生成し、そのサーバーにサービスをインストールすることはできない
図表3のように一部が実現できなくなるので、Ansible Lightspeedを用いて一個のタスクのみを生成することに注意することが必要である。
Ansible Lightspeed検証での気づき
次に、筆者がAnsible Lightspeedを検証して気づいた点を説明する。
対応するクラウドベンダー
現在、Ansible LightspeedはAWS、Azure、Google Cloudでのリソース作成の稼働は確認できたが、IBM CloudではTechnical Preview版ということもあり、現状ではAWS用コードを生成することが判明した。
IBM Cloudの場合は、図表7のようにAWSのEC2の生成コードを出力する。
日本語対応について
Ansible Lightspeedは日本語に対応しているので、「name」に日本語で記述することも可能である。また筆者が確認した限り、英語で同じように記述した際には、同じコードを生成する。例として、図表8のように出力される。
Ansible Lightspeedの進化
2023年の8月時点で、AWS上にEC2インスタンスを作成すると、図表9のようなコードが生成された。
2023年の9月時点では、図表10のように文法的に正しいコードを生成するようになった。
このように1カ月も経たないうちに、Ansible Lightspeedは確実に進化している。Watsonx Code Assistantがリリースされたら、より正確なコードが生成するようになると期待できる。
本稿の内容が、今後AnsibleやAnsible Lightspeedを利用する際の参考になれば幸いである。
著者
李 明元(り めいげん) 氏
日本アイ・ビー・エム システムズ・エンジニアリング株式会社
Cloud Platform #1
シニアITスペシャリスト
クラウドスペシャリストとして、コンテナ基盤を中心に周辺サービスの上流検討支援・技術支援に従事。近年はインフラ構築自動化の提案支援・構築支援以外にも、インフラ構築自動化の推進活動をリードしている。
[i Magazine・IS magazine]
*本記事は筆者個人の見解であり、IBMおよびキンドリルジャパン、キンドリルジャパン ・テクノロジーサービスの立場、戦略、意見を代表するものではありません。
当サイトでは、TEC-Jメンバーによる技術解説・コラムなどを掲載しています。
TEC-J技術記事:https://www.imagazine.co.jp/tec-j/
[i Magazine・IS magazine]