Red Hat Summit および AnsibleFest 2023 において、私たちは、Ansible 向けの新しい生成 AI サービスである Ansible Lightspeed を発表しました。その後、2023 年 6 月に機能のテクニカルプレビューを公開しました。本日は、Red Hat Ansible Lightspeed (および IBM watsonx Code Assistant) が Red Hat Ansible Automation Platform のコンポーネントサービスとして利用可能になったことをお知らできることを嬉しく思います。 

Ansible Lightspeed (および watsonx Code Assistant) は、自動化チームが Ansible コンテンツをより効率的に作成、導入、維持できるように設計されています。 

このブログでは、Ansible Lightspeed および IBM watsonx Code Assistant を導入して実行するための手順を紹介します。エンドユーザーが Visual Studio Code (VS Code) 環境でサービスを設定する方法を共有します。また、そのエクスペリエンスに期待できることや、透明性、精度、選択の自由を基盤とする生成 AI 機能を使用して Ansible の作成プロセスを強化するための補助ツールについても詳しく説明します。 

これは Ansible Automation Platform のエクスペリエンスに新たに加えられたエキサイティングな機能です。さっそく始めましょう。

商用機能:Red Hat と IBM のコラボレーションによって Ansible のコンテンツ作成に AI を取り入れる

Ansible Lightspeed と watsonx Code Assistant は、Red Hat と IBM のチームが力を合わせて Ansible コンテンツ作成のための統合的な AI エクスペリエンスを構築した成果です。自動化に特化した IBM watsonx 基盤モデルを利用することで、テキストプロンプトを Ansible コンテンツ作成用の Ansible コンテンツスニペットに変換します。生成されたコンテンツは Ansible の一般に受け入れられているベストプラクティスに準拠しており、Ansible コードボット機能と組み合わせることができるため、チームは自動化コードベースをより信頼できるようになります。

Red Hat Ansible Lightspeed with IBM watsonx Code Assistant

このサービスは、次の 3 つのコンポーネントで構成されています。

  1. 開発者インタフェース:Ansible 拡張機能を介して VS Code 拡張機能にネイティブに組み込まれており、Ansible コンテンツ作成者は Ansible Playbook やタスクファイルの自然言語プロンプトを使用して、Ansible Lightspeed の単一タスクおよびマルチタスクの推奨を生成できます。
  2. 統合サービス:開発者インタフェースと watsonx.ai サービスの間をつなぐブローカーとして機能します。Ansible Automation Platform に AI の力をもたらし、後処理機能によって AI からの応答を強化します。
  3. AI:IBM watsonx Code Assistant は、Ansible コンテンツの推奨を生成する、Ansible に特化した watsonx.ai 基盤モデルへのアクセスを提供します。これが、このソリューションにおける AI の根幹となります。

次のステップでは、Ansible Lightspeed と watsonx Code Assistant をセットアップして使用を開始する方法を説明します。

Red Hat Ansible Lightspeed へのログインと IBM watsonx Code Assistant への接続設定

:このセクションは、お客様の組織の Red Hat カスタマーポータルアカウントで組織の管理者権限を持つユーザーのみを対象としています。管理者権限のない方は、Ansible 用の VS Code 拡張機能での接続方法に関する次のセクションまでお進みください。 

Red Hat カスタマーポータル管理者として、IBM watsonx Code Assistant インスタンスに接続するように Red Hat Ansible Lightspeed を設定する必要があります。この設定により、Red Hat Ansible Lightspeed が IBM watsonx Code Assistant インスタンスと通信できるようになります。

Red Hat Ansible Lightspeed を接続するには、IBM watsonx Code Assistant に関する次の情報が必要です。

  • IBM watsonx Code Assistant (WxCA) API キー
    • WxCA API キーは、Red Hat Ansible Lightspeed から IBM watsonx Code Assistant へのすべてのリクエストを認証します。有効な Ansible Automation Platform サブスクリプションを持つ Red Hat 組織は、1 組織につき 1 つの設定された WxCA API キーを持っている必要があります。認証済みの Red Hat Single Sign-On (SSO) ユーザーが Red Hat Ansible Lightspeed にクエリを送信すると、ユーザーの Red Hat 組織に関連付けられている WxCA API キーが IBM watsonx Code Assistant への要求を認証するために使用されます。 
  • モデル ID
    • 一意の WxCA モデル ID により、IBM Cloud アカウント内の IBM watsonx Code Assistant モデルが識別されます。Red Hat Ansible Lightspeed 管理者ポータルで設定したモデル ID がデフォルトモデルとして使用されます。つまり、シートライセンスが与えられている組織内のすべてのユーザーが Ansible Lightspeed から推奨情報を得る際にこのモデル ID が使用されます。このシングルテナント IBM watsonx Granite モデルはお客様の組織に固有です。そのため、データのプライバシー、コンプライアンス、セキュリティの維持に役立ちます。これらのモデルは IBM によって提供、管理、保守されます。

重要:Red Hat Ansible Lightspeed を最初に設定するときに、WxCA API キーとモデル ID の両方を設定する必要があります。

前提条件

  • 有効な Ansible Automation Platform サブスクリプションと、Red Hat カスタマーポータル組織に対する組織管理者権限がある
  • Red Hat Ansible Lightspeed で使用する WxCA API キーと IBM watsonx Code Assistant のモデル ID を取得している 

IBM watsonx Code Assistant から WxCA API キーとモデル ID を取得する方法の詳細については、IBM watsonx Code Assistant のドキュメントを参照してください。 

手順

  1. Ansible Lightspeed ポータル に組織の管理者としてログインします。
  2. [Log in] > [Log in with Red Hat] をクリックします。 
  3. Red Hat アカウントのユーザー名とパスワードを入力します。 
    • Red Hat Ansible Lightspeed サービスは、認証に Red Hat Single Sign-On (SSO) を使用します。 
    • 認証プロセスの一環として、Red Hat Ansible Lightspeed サービスは、ユーザーが組織の管理者であるかどうか、また、組織に有効な Ansible Automation Platform サブスクリプションがあるかどうかを確認します。認証に成功するとログイン画面に遷移し、ユーザー名と割り当てられたユーザーロールが表示されます。 
  4. ログイン画面で、[Admin Portal] をクリックします。 
    • Ansible Lightspeed with watsonx Code Assistant 管理者ポータルにリダイレクトされます。このポータルを使用して Red Hat Ansible Lightspeed を IBM watsonx Code Assistant インスタンスに接続できます。
  5. IBM watsonx Code Assistant インスタンスの API キーを指定し、[Save] をクリックします。
    • オプション:[Test] をクリックして API キーを検証します。
  6. 使用するモデルのモデル ID を指定し、[Save] をクリックします。
    • オプション:[Test] をクリックしてモデル ID を検証します。
  7. WxCA API キーとモデル ID が正常に検証されると、Red Hat Ansible Lightspeed は IBM watsonx Code Assistant インスタンスに接続されます。

シートライセンスの割り当てと削除

:このセクションは、お客様の組織の Red Hat カスタマーポータルアカウントで組織の管理者権限を持つユーザーのみを対象としています。管理者権限のない方は、Ansible 用の VS Code 拡張機能での接続方法に関する次のセクションまでお進みください。

Red Hat Ansible Lightspeed を IBM watsonx Code Assistant インスタンスに接続したら、Red Hat カスタマーポータル組織の管理者は組織内の Ansible Automation Platform ユーザーにシートライセンスを割り当てることができます。シート割り当て機能により、組織内の特定の Ansible Automation Platform ユーザーを指定して Red Hat Ansible Lightspeed にアクセスおよび使用させることができます。 

Ansible Automation Platform サブスクリプションには、組織が購入したサブスクリプションの数に応じて、特定の数の Red Hat Ansible Lightspeed の名前付きシートが含まれています。Red Hat Ansible Lightspeed は、Red Hat Single Sign-On (SSO) を使用してユーザーを認証し、割り当てられたシートライセンスを持っていることを確認します。

シートライセンスの割り当て

Red Hat Ansible Lightspeed シートライセンスを組織内の特定のユーザーに付与することができます。  

前提条件

  • Red Hat カスタマーポータルで組織管理者権限が割り当てられている 
  • IBM watsonx Code Assistant インスタンスに接続するように Red Hat Ansible Lightspeed を設定している
  • Red Hat Hybrid Cloud Console で Ansible Automation Platform に組織管理者としてログインしている

手順

  1. Red Hat Hybrid Cloud Console で Ansible Automation Platform にアクセスします。
  2. ナビゲーションパネルから、[Ansible Lightspeed with IBM watsonx Code Assistant] > [Seat Management] を選択します。 
  3. [Assign users] をクリックします。
  4. シートライセンスを割り当てるユーザーのユーザー名を入力します。
  5. [Assign] をクリックし、確認メッセージで [Ok] をクリックして確定します。

これで、シートライセンスを割り当てられたユーザーは Ansible Lightspeed with watsonx Code Assistant サービスにアクセスできるようになります。

接続の設定:インストールと設定

前提条件

  • ワークステーションに Visual Studio Code と Ansible がインストールされている
  • Red Hat カスタマーポータルアカウント (組織にアタッチされているもの) がある
  • Red Hat ポータル組織の管理者によって、Red Hat Ansible Lightspeed サービスにアクセスするためのシートライセンスがアカウントに割り当てられている

手順

  • Visual Studio Code マーケットプレイスで「ansible」を検索し、Red Hat が公開している拡張機能を選択して Ansible VS Code 拡張機能をインストールします。Ansible Lightspeed サービスと連携する Ansible 拡張の最小バージョンは 2.8.108 です。バージョン履歴はここで確認できます。
  • 歯車アイコンから [Extension Settings] を選択し、 拡張機能で Red Hat Ansible Lightspeed サービスを有効にします。
  • [Settings] で、[Ansible Lightspeed enabled] チェックボックスと [Enable Ansible Lightspeed with Watson Code Assistant inline suggestions] チェックボックスを有効にします。

Red Hat Ansible Lightspeed は、ユーザーの設定に応じて [User] 設定または [Workspace] 設定で有効にすることができます。VS Code の [User] 設定と [Workspace] 設定の詳細については、 ドキュメントを参照してください。

Installing the Ansible Visual Studio Code extension

Ansible Visual Studio Code 拡張機能のインストール

  • エディターの左側にある VS Code アクティビティーバーで Ansible の「A」アイコンをクリックして、拡張機能を開きます。
  • [Connect] をクリックし、プロンプトに従って資格情報を使用して Red Hat アカウントにログインします。
  • 次に、[Authorize] をクリックして、VS Code 向け Ansible Lightspeed を承認します。
  • ブラウザーのプロンプトに従って VS Code に戻り、最後に VS Code 確認ダイアログボックスの [Open] をクリックします。
Log in using your Red Hat credentials

Red Hat 資格情報でログイン

お疲れさまでした。これで、VS Code で Ansible Lightspeed with watsonx Code Assistant を使用する設定ができました。

Red Hat Ansible Lightspeed が有効になっていることは、エディターウィンドウの下部にある VS Code ステータスバーで確認できます。

VS Code status bar showing that Ansible Lightspeed is enabled

Python 環境が選択されていること、および Ansible YAML ファイルが Ansible 言語に関連付けられていることを確認してください。VS Code 言語の詳細については、関連するドキュメントを参照してください。

Red Hat Ansible Lightspeed を使用して作成

Ansible Lightspeed に接続できたので、次は AI で強化されたコンテンツ作成を体験してみましょう。

サンプル Playbook を使用して、Red Hat Ansible Lightspeed で AI にタスクの推奨を生成させる手順を確認し、商用機能でできることも見ていくことにします。サンプル Playbook は、データベースホストグループのすべてのマシンに PostgreSQL をインストールし、設定します。

:サービスの継続的な改善の一環として、IBM と Red Hat は生成された推奨情報の品質を向上させるための更新を続けていく予定です。したがって、以下の手順で出力される Ansible タスクの内容がこの例とは異なる場合があります。

Red Hat Ansible Lightspeed で推奨情報を生成する方法

サンプル Playbook「configure_postgres.yml」の 1 番目の Playbook タスクを使用して、Ansible Lightspeed (および watsonx Code Assistant) で AI の推奨情報を生成させてみましょう。

  • タスクの説明「- name: Install postgresql-server」の末尾にカーソルを移動します。
  • Enter を押すと推奨情報が生成されます。
  • Tab を押して、生成された推奨情報を確定します。
Generating an Ansible task

Ansible タスクの生成

この例では、サービスに「postgresql-server」パッケージをインストールするよう指定しました。生成された推奨情報では、汎用 OS を管理する Ansible モジュールを参照するために完全修飾コレクション名 (FQCN)、つまり ansible.builtin.package が使用されています。

FQCN を使用することは推奨されるベストプラクティスであり、Red Hat Ansible Lightspeed サービスに組み込まれた数多くの独自の後処理機能の 1 つです。

次のタスクに進みましょう。

複数のタスクの推奨情報を生成させる方法

サービスに「Install postgresql-server」の推奨情報を生成させたので、次は PostgreSQL を設定するための追加の推奨情報をサービスに生成させます。

  • Run postgresql-setup command (postgresql-setup コマンドの実行)
  • Start and enable postgresql service (postgresql サービスの開始および有効化)
  • Allow the postgres traffic through the firewall (ファイアウォールを介して postgres トラフィックを許可する)

1 つのやり方は、上のセクションで行ったように、シングルタスクのメカニズムに従い、タスクの推奨情報を 1 つずつ生成させることです。

Ansible Lightspeed (および watsonx Code Assistant) の新しい商用機能に、マルチタスク生成があります。マルチタスク生成は Playbook 全体の生成に向けたロードマップの 1 ステップであり、タスクレベルの YAML コメントでアンパサンド (&) 記号を使用して複数のタスクの説明を連鎖させることで、単一のプロンプトエントリで複数のタスクを生成できます。

同じサンプル Playbook を使用して、サービスに複数タスクの推奨情報を生成させてみましょう。このファイルには、YAML コメントがすでに準備されています。12 行目を詳しく見ると、タスクレベルの YAML コメントでアンパサンド (&) を使用し、PostgreSQL を設定する複数のタスクを連鎖させていることがわかります。

  • YAML コメント「# Run postresql-setup command & Start and enable postgresql service & Allow the traffic」の行の末尾にカーソルを移動します。
  • Enter を押すと複数タスクの推奨情報が生成されます。
  • Tab を押して、生成された推奨情報を確定します。
Generating multiple Ansible tasks

複数の Ansible タスクの生成

同じ Playbook で、今度は「Run postgresql-command」(postgresql-setup コマンドを実行する)、「Start and enable postgresql service」(postgresql サービスを開始して有効にする)、「Allow the traffic」(トラフィックを許可する) という複数のタスクの推奨情報を要求しました。今度はサービスにより、3 つの Ansible タスクが返されました。

コンテキストを考慮する正確な Ansible のコンテンツ推奨の生成機能を利用することで、時間を節約し、効率的に作成することができます。Red Hat Ansible Lightspeed の強みの 1 つは、コンテキストです。最後のタスクのキューは「Allow the traffic」だけです。これは AI に対する要求としては正しくないように感じられるかもしれませんが、Red Hat Ansible Lightspeed サービスは対象の Ansible Playbook 全体を認識しているので、PostgreSQL のデフォルトのポート (5432) を指定するコードの推奨情報を返します。 

:これは、Ansible Lightspeed の機能を示すための例としてお見せしたものです。実際に Ansible コンテンツを作成する際には、誰でも簡単にその Ansible コンテンツを理解できるように、タスク名を明確に記述することをお勧めします。

次の機能に進みましょう。

組み込まれた透明性とともに採用:コンテンツ・ソース・マッチング

Ansible Lightspeed のもう 1 つの重要な機能は、コンテンツ・ソース・マッチングを使用した透明性とオープン性です。Red Hat では、生成された推奨情報で使用されているトレーニングデータについての提供元、作成者、コンテンツライセンスの情報を誰でもわかるように共有しています。コミュニティで信頼を築き、作成者やコントリビューターの関係をサポートすることは、Red Hat の DNA に組み込まれています。

Ansible Lightspeed Content Source Matching

Ansible Lightspeed のコンテンツ・ソース・マッチング

Ansible のベストプラクティスと正確な情報に基づく採用

Red Hat Ansible Lightspeed は自動化に特化しており、IT 自動化チームによって、IT 自動化チーム向けにカスタマイズされた、最適化された正確な生成 AI エクスペリエンスを提供します。広く受け入れられているベストプラクティスに準拠した後処理機能を使用しているため、自動化チームは自信をもって生成コンテンツを採用できます。

Red Hat Ansible Lightspeed の後処理機能は、IBM watsonx Code Assistant によって生成された Ansible コンテンツをベストプラクティスに沿うように強化します。たとえば、FQCN を使用すること、データの匿名化や変数の置換を行うこと、などがあります。

先述の「推奨情報を生成する方法」の項で示した例では、サービスの後処理機能による修正の 1 つとして FQCN が使用されていました。

保守:Ansible コードボット (サービスプレビュー版)

「コンテンツはあるけれども、次にどうすればいいかがわからない」とお客様に言われることがよくあります。サイロ化された自動化から移行するにはどうすればよいのでしょうか。また、コミュニティ・オブ・プラクティスを構築するにはどうすればよいでしょうか。

その答えは文化から始まります。インフラストラクチャのワークフローをソフトウェアのアセットとして扱うことで、エンタープライズレベルの自動化に必要なコラボレーティブなアプローチを促進できます。 

ただし、そのためにはバージョン管理、自動テスト、コードレビューなどの新しいスキルの学習が必要になる場合があります。Ansible コードボットの目的は、Ansible コンテンツの品質向上を、作成だけでなくワークフロー全体にまで拡張することです。

Ansible コードボットは、GitHub リポジトリでホストされている既存の Ansible Content Collections、ロール、Playbook をスキャンし、ベストプラクティスや品質改善の提案がある場合は常にプロアクティブにプルリクエストを作成します。ボットはプルリクエストをリポジトリに自動的に送信し、それによってコンテンツに推奨される変更についてのプロアクティブなアラートがリポジトリ所有者に送信されます。Ansible コードボットは、既存の Git リポジトリ (パブリックとプライベートの両方) をスキャンするように設定できます。

Ansible コードボットは Ansible lint を使用して、Ansible コンテンツの品質改善を推奨します。これは、バグを誘発しやすく、コンテンツの保守を難しくする一般的なエラーを回避しながら、実証済みのプラクティス、パターン、および動作を促進することを目的としています。Ansible コードボットは、設定されたルールに基づいてコンテンツをスキャンし、コンテンツが Ansible のベストプラクティスに準拠していることを確認します。

前提条件

  • Red Hat カスタマーポータルアカウント (組織にアタッチされているもの) がある
  • 組織に、有効な Ansible Lightspeed サブスクリプションがある

手順

  1. 組織に関連付けられたアカウントを使用して GitHub にログインします。
  2. 所属している組織の GitHub アプリケーションをインストールします。 
  3. GitHub の Ansible コードボットアプリケーションにアクセスします。
  4. Ansible コードボットをインストールするリポジトリを選択します。
  5. [Install & Authorize] をクリックします。
  6. プロンプトが表示されたら、Red Hat SSO アカウントにログインします。
Ansible Code bot in action

Ansible コードボットの動作

選択した Git リポジトリに Ansible コードボットをインストールしたら、Git リポジトリを定期的にスキャンするスケジュールを設定できます。Ansible コードボットのスキャンスケジュールを設定していない場合、またはスケジュールの次回スキャンを待たずにスキャンを行う場合は、「ansible-code-bot-scan」というトピックをリポジトリに追加して、Git リポジトリを手動でスキャンすることもできます。

:サービスプレビューは、クラウドサービスの最初のリリース「フェーズ」です。サービスプレビューは、社内外の指定の顧客からサービスに関する初期フィードバックを収集するために提供されますが、プロダクション環境での使用は想定されていません。また、フィールドトライアル、限定公開、一般公開の各フェーズで一部の機能を、プロダクション用途ではないことを示すためにサービスプレビューとすることもあります。

まとめ

これで、組織用に Ansible Lightspeed を設定することができました。また、いくつかのエキサイティングな新しい生成 AI 機能を、わずか数ステップで使えるようになりました。

Matrix の Ansible Lightspeed ルームへの参加をお勧めします。フィードバックを共有したり、最新ニュースを入手したり、自動化に取り組んでいる同業者や Red Hat チームから回答を得たりするための最適な場所です。  

次のステップとリソース

次のステップの詳細については、 Red Hat Ansible Lightspeed のホームページをご覧ください。Red Hat の既存のお客様と Ansible Automation Platform の試用に関心があるお客様向けのリンクがあります。 

Ansible と生成 AI についての詳細は、以下のリソースをご覧ください。

Ansible 方式で生成 AI を最大限に活用していただけるよう、このサービスの進化に合わせてブログや動画、その他のリソースを更新していく予定です。 

本ブログをご覧いただきありがとうございました。快適な自動化をお楽しみください。


About the author

Anshul is a Principal Marketing Manager at Red Hat, where he brings his software development and QE experience to increase Ansible Automation Platform's adoption experience for customers by producing technical content on all aspects of the product.

Read full bio