青い吹き出し、質問マーク、チェックマークなど、さまざまな図形や記号を使ったフローチャート
Code Generation for Ansible

IBM watsonx Code Assistant(WCA)for Red Hat Ansible Lightspeed(RHAL)は、生成的なAIを活用したコンテンツ推奨を通じて、Ansible Playbookの作成プロセスをわかりやすく手引きします。IT自動化の加速を目的として構築されたWCA for RHALは、主要なプラクティスに準拠したコンテンツ推奨事項を提供し、エラーを削減し、Ansibleタスク、ロール、プレイブックの一貫性を向上させます。WCA for RHALは、平易な英語で記述された自然言語のリクエストを使用してコンテンツを生成することもできるため、企業内でのオートメーションへのアクセスの拡張と拡大に役立ちます。

WCA for RHALは、AnsibleプレイブックのデータセットでトレーニングされたIBM Granite大規模言語モデル(LLM)を使用しています。LLMは、企業独自のデータを使用して調整できるため、自動化の構文と構造の微妙な違いを理解できます。ユーザーは提案をそのまま受け入れることも、ニーズに合わせてコンテンツの推奨事項を正確に改善することもできるため、自動化の価値実現までの時間がさらに短縮され、AIが生成したコンテンツ推奨事項によって開発サイクルが加速します。

 

ソリューションの概要

IBM watsonx Code Assistant(WCA)for Red Hat Ansible Lightspeed(RHAL)が、生成AIによるAnsible Playbookの作成プロセスをわかりやすく手引きします。
主要なコンポーネントの配置と相互接続を示すAnsibleソリューションのコード生成の概要です。

WCA for RHALは、以下のコンポーネント(上記の図を参照)で構成されています。

  1. Ansible Playbookには、管理対象ノードとエンドポイント(サーバー、コンテナ、ネットワーク・デバイス、クラウド・サービスなど)でオートメーションを実行するために必要なコードが含まれています。

     

  2. プレイブック・ソースコード管理(SCM)は、Ansibleプレイブックのすべての制作および開発部門が維持される場所です。利用可能なSCMソリューションは数多くありますが、最も一般的に使用されているのはGitに基づくソリューションであり、以降の議論でも前提としています。

     

  3. Red HatのAnsible Automation Platformには、Ansibleコア・エンジン、リンティング・サービス、デプロイメント管理サービス、Ansibleプレイブックを実行およびトラブルシューティングするためのユーザー・インターフェースが含まれています。通常、マージごとにSCMから更新されたプレイブックを取得するように構成されています。

     

  4. Red Hat Ansible Lightspeedは、自然言語プロンプトとコード・コンテキストを読み取り、基盤モデル・マッチングのためにIBM watsonx Code Assistantサービスに送信するIBM watsonx.aiアプリケーションです。コンテンツと一致する監査情報を生成し、VS Codeに送り返します。

     

  5. IBM watsonx Code Assistant Service(WCA for RHAL)は、Red Hat Ansible Lightspeedからプロンプト・リクエストを受信し、大規模言語モデル(LLM)と照合するIBM watsonx.aiアプリケーションです。WCA for RHALは、追加のAnsibleプレイブック・データセットを使用してLLMをトレーニングすることもできます。IBM watsonx Code AssistantとRed Hat Ansible Lightspeedは連携して、先進的なプラクティスに沿った、完全かつ正確なコンテンツ生成提案を提供します。

     

  6. Code Large Language Model(LLM)は、Ansible向けIBMのGraniteモデルをベースにしたコンテンツ生成の基盤モデルです。また、ベンダーや企業ユーザーが生成した追加のプレイブック・コードを含めるようにトレーニングされる場合もあります。

     

    使用法とウォークスルー

IBM watsonx Code Assistant(WCA)for Red Hat Ansible Lightspeed(RHAL)が、生成AIによるAnsible Playbookの作成プロセスをわかりやすく手引きします。 新しいAnsibleコードを生成するためのコンポーネント間の通信フローを示すソリューションの説明。

上記の図は、WCA for RHALのコンポーネントがどのように連携して時間を短縮し、Ansibleプレイブックの一貫性を向上させるかを示しています。

  1. 開発者は、Playbook SCMのコード・リポジトリーから最新のAnsible Playbookコードを取得し、VS Codeで開きます。

  2. 開発者は、自然言語プロンプトの形式でAnsibleタスクを追加します。例:- name:テンプレートを使用してhttpd.confをインストールします。

  3. Ansible Extension for VS Codeは、LightspeedリクエストをIBM watsonx Code Assistant Serviceに送信します。

  4. IBM watsonx Code Assistantが、自然言語プロンプトへの応答を生成します。応答は、LLMの内容と、他の既存コード、変数、ファイル内のその他の情報から収集できるすべてのコンテキストに基づいています。

  5. IBM watsonx Code Assistantは、自然言語プロンプトに対する応答をAnsibleコード(YAML)の形式で送信します。生成されたコンテンツの例を以下に示します。ansible.builtin.template:

     src:httpd.conf.j2
      dest:/etc/httpd/conf/httpd.conf
      mode:“0644”
      owner:root
      group:root

  6. 開発者は、AIが生成したコンテンツ提案を承認および/または変更し、変更をコミットし、Playbook SCMのリポジトリーにコミットします。

  7. Red Hat Ansible Automation Platform上に構成されたAnsible Projectは、Playbook SCM上の更新を検出し、更新されたコードをダウンロードし、指定されたエンドポイントで更新されたプレイブックを実行します。

前提条件

  • Microsoft Visual Studio Code for MacOSまたはLinux
  • Python3
  • ansible、ansible-lint
  • Ansible Extension for VS Code
  • Red Hat Ansibleオートメーション・プラットフォーム
  • RedHat.comまたはGitHub.comのアカウント
  • IBM watsonx Code Assistantへの接続
  • Microsoft Visual Studio Code for Windows
  • Windows Services for Linux(WSL)バージョン2
  • Fedora 37、CentOS、またはRHEL 8 Container Base for WSL
  • 上記のとおり、python3、ansible、ansible-lint
IBM watsonx Code Assistantの固有機能
  • コード生成:Ansibleタスクの説明で自然言語インプットを使用することで、Ansibleプレイブックの生成プロセスを簡素化します。
  • コーディング標準の適用:主要な公共および企業の実践に従ったAnsibleコンテンツのトレーニングを可能にし、これらの標準に従ったコードを生成します。
  • 生産性の向上:AIが生成したコード推奨を、統合開発環境(IDE)に直接統合します。
次のステップ

ハイブリッドクラウドの導入パターンのデプロイメントについて、IBMのエキスパートに相談する