RHEL Lightspeed を搭載したコマンドラインアシスタントとの対話
RHEL Lightspeed を搭載したコマンドラインアシスタントの AI ベースの専門知識を RHEL の設定、管理、トラブルシューティングに活用する
概要
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 RHEL システム向け RHEL Lightspeed の概要
RHEL Lightspeed のインテリジェントな機能は、RHEL の経験が少ない場合でも、すでに経験がある場合でも、システム環境をより利用しやすい方法で管理するのに役立ちます。
1.1. RHEL Lightspeed を搭載したコマンドラインアシスタント
RHEL Lightspeed を搭載したコマンドラインアシスタントは、RHEL コマンドラインインターフェイス内で利用できるオプションの AI ツールです。このツールには、Knowledge Centered Service (KCS) の記事、RHEL ドキュメント、その他の Red Hat リソースからの Red Hat ナレッジ情報が組み込まれています。アシスタントを使用すると、次のようなアクティビティーに関するサポートを受けることができます。
- RHEL 関連の質問への回答
- 問題のトラブルシューティングと修正のサポート
- ログファイルの理解
- 推奨事項の要求
RHEL Lightspeed を搭載したコマンドラインアシスタントを使用すると、対話型のワークフローで問題を解決したり、新しい RHEL 機能を実装したり、情報を検索したりすることができます。たとえば、コマンドを実行してからコマンドラインアシスタントを使用して、出力と次のステップを理解することができます。または、SSH に関する質問をして、提案を受け取り、さらに別の質問をして問題の診断を続けることもできます。
標準のコマンドラインインターフェイスを使用する場合のように複雑なコマンドを使用せずに、わかりやすい言葉を使用して、RHEL Lightspeed を搭載したコマンドラインアシスタントと対話できます。
RHEL Lightspeed を搭載したコマンドラインアシスタントでは、直接のインターネット接続は必要ありません。これは、すべての RHEL システムをインターネット経由でサービスに直接接続せずに、インターネットに接続された 1 つのプロキシーシステムを介して RHEL システムからのすべての要求を代理できる場合に役立ちます。
RHEL Lightspeed コマンドラインアシスタントは、RHEL のライフサイクルに従います。サポートされているバージョンと関連ポリシーの詳細は、Red Hat Enterprise Linux のライフサイクル を参照してください。
コマンドラインアシスタントは、実行中のシステムに関する情報に直接アクセスすることはできません。ただし、入力したメッセージと LLM プロバイダーに送信される環境に、環境に関する情報を含めることができます。たとえば、このアシスタントは、ツールを実行しているシステム上の使用可能な空きメモリーに関する回答を提供することができません。代わりに、コマンドラインアシスタントは、空きメモリーの量を確認するために実行できるコマンドに関する情報を返します。
RHEL Lightspeed による生成 AI 機能の使用
RHEL Lightspeed は WatsonX AI API LLM (Large Language Model) を使用します。このモデルは、SaaS 外部インフラストラクチャーとしてデプロイされます。
1.2. コマンドラインアシスタントのデータ処理方法
コマンドラインアシスタントインターフェイスを使用する場合は、お使いの環境に設定した LLM プロバイダーにコマンドラインアシスタント変換と送信するメッセージを入力してください。このメッセージには、お客様の環境の要素に関する情報が含まれる場合があります。
LLM プロバイダーへの送信を希望しない情報は、コマンドラインアシスタントインターフェイスに入力しないでください。
RHEL Lightspeed を搭載したコマンドラインアシスタントを使用すると、LLM プロバイダーと交換するすべてのメッセージを Red Hat が使用する場合があることに同意したことになります。この機能は個人情報を処理することを目的としたものではありません。お客様は、RHEL Lightspeed を搭載したコマンドラインアシスタントを使用すると、コマンドラインアシスタントの使用中に個人情報を含めないことに同意したことになります。AI 機能のサポートは、Red Hat が提供するコンポーネントに対してのみ提供されます。
第2章 RHEL Lightspeed を搭載したコマンドラインアシスタントのインストール
RHEL Lightspeed を搭載したコマンドラインアシスタントは、公式の RHEL 9 リポジトリーから利用できるオプションのツールです。
2.1. RHEL Lightspeed を搭載したコマンドラインアシスタントのインストール
RHEL Lightspeed を搭載したコマンドラインアシスタントを使用するには、公式の RHEL リポジトリーからインストールする必要があります。コマンドラインアシスタントは、次のアーキテクチャーでサポートされています。
- AMD および Intel 64 ビット (x86_64)
- ARM64 (aarch64)
- IBM Z (s390x)
- IBM POWER systems (ppc64)
RHEL Lightspeed を搭載したコマンドラインアシスタントを利用するには、RHEL リポジトリーを使用してインストールします。pip install command-line-assistant
は使用しないでください。Red Hat はこのインストール方法をサポートしていません。
前提条件
- サブスクライブ済みの RHEL システムがある。詳細は、RHEL システム登録のスタートガイド ドキュメントを参照してください。
手順
RHEL システムで、次のコマンドを実行します。
sudo dnf install command-line-assistant
$ sudo dnf install command-line-assistant
Copy to Clipboard Copied!
検証
コマンドラインアシスタントを実行して、インストールしたものが動作することを確認します。以下に例を示します。
c "How to install python?"
$ c "How to install python?"
Copy to Clipboard Copied! 出力は次の例のようになります。
+*+ Asking RHEL Lightspeed To install python....
+*+ Asking RHEL Lightspeed To install python....
Copy to Clipboard Copied! コマンドラインアシスタントでカラー出力を無効にします。以下に例を示します。
NO_COLOR=1 c “How to install python?”
$ NO_COLOR=1 c “How to install python?”
Copy to Clipboard Copied!
2.2. Red Hat Satellite を使用した RHEL デプロイメントへのコマンドラインアシスタントのプロビジョニング
Red Hat Satellite に登録されているホストに、RHEL Lightspeed を搭載したコマンドラインアシスタントをインストールできます。そのため、Satellite に登録されている RHEL システムが、Satellite Server を使用してコマンドラインアシスタントをプロキシーできるように、コマンドラインアシスタントエンドポイントを更新します。
前提条件
- システムは Insights for Red Hat Enterprise Linux に登録されている。
- 6.17 以降のバージョンの Satellite Server に登録されているホストでコマンドラインアシスタントを使用している。
- Satellite Server がインターネットに接続されている。
- コマンドラインアシスタントをインストールできるように、ホストで AppStream リポジトリーを有効にした。
手順
登録済みのホストに、RHEL Lightspeed を搭載したコマンドラインアシスタントをインストールします。
sudo dnf install command-line-assistant
$ sudo dnf install command-line-assistant
Copy to Clipboard Copied! -
/etc/xdg/command-line-assistant/config.toml
ファイルを見つけて開きます。 config.toml
ファイルで、エンドポイント設定オプションを、Satellite または Capsule のホスト名を参照するように置き換えます。次に例を示します。#The endpoint points to an API server. endpoint = "https://satellite.example.server.com/api/lightspeed/v1"
#The endpoint points to an API server. endpoint = "https://satellite.example.server.com/api/lightspeed/v1"
Copy to Clipboard Copied! -
変更を
config.toml
ファイルに保存します。 コマンドラインアシスタントデーモン (
clad
) を再起動して、変更を有効にします。sudo systemctl restart clad
$ sudo systemctl restart clad
Copy to Clipboard Copied!
第3章 RHEL システムでの RHEL Lightspeed を搭載したコマンドラインアシスタントの使用
RHEL Lightspeed を搭載したコマンドラインアシスタントは、経験の少ないユーザーでも経験豊富なユーザーでも、コマンドラインインターフェイスを使用して RHEL を操作できるように設計されています。コマンドラインアシスタントは、RHEL 関連の質問への回答、トラブルシューティングの支援、ログエントリーの解読の支援など、さまざまなタスクに役立ちます。
AI ツールの結果に頼らずに、人手によるレビューを行ってください。生成された提案を使用する前に、必ず AI と LLM によって生成された応答の正確性を確認してください。
3.1. コマンドラインアシスタントに質問する
RHEL Lightspeed を搭載したコマンドラインアシスタントを使用するには、“c” コマンドの後に引用符で囲んだ質問を続けます。以下に例を示します。
c + “質問” という構文を使用して質問します。以下に例を示します。
c “What is RHEL”
$ c “What is RHEL”
Copy to Clipboard Copied!
コマンドラインアシスタントを使用するときは、次の種類のデータを入力しないでください。このアシスタントは、次のようなデータを処理することを目的としていません。
- 個人情報
- ビジネス上の重要な情報
- 機密情報
- システムデータ情報
以下は、RHEL システムの使用時にコマンドラインアシスタントと対話するために使用できるプロンプトの例です。
問題のトラブルシューティング方法に関する情報を要求します。
c “how to troubleshoot sshd failing to start”
$ c “how to troubleshoot sshd failing to start”
c “how do I find all the files in the /ect that have been modified in the last hour”
$ c “how do I find all the files in the /ect that have been modified in the last hour”
3.2. コマンドラインアシスタントにファイルを質問に添付する
RHEL Lightspeed を搭載したコマンドラインアシスタントには、ファイルを添付できます。これを行うと、アシスタントがそのファイルに基づいてカスタマイズした応答を提供できます。
たとえば、ボリュームグループ、論理ボリューム、およびファイルシステムを別のシステムにレプリケートする必要がある場合は、ストレージ情報を含むファイルを作成してからコマンドラインアシスタントを実行します。すると、その特定のストレージパーティションを別のシステムにレプリケートするのに必要な手順に関する情報を取得できます。以下に例を示します。
c --attachment <storage_info>
$ c --attachment <storage_info>
必要に応じて、短縮形の attachment
コマンドを使用します。以下に例を示します。
$ c -a <storage_info>
# $ c -a <storage_info>
添付ファイルを質問と組み合わせることもできます。
$ c --attachment <storage_info> "how can I replicate the storage configuration in another system
# $ c --attachment <storage_info> "how can I replicate the storage configuration in another system
3.3. コマンドラインアシスタントを使用した履歴の相互作用の確認
RHEL Lightspeed を搭載したコマンドラインアシスタントとの会話履歴にアクセスします。
すべてのユーザー履歴を取得します。以下に例を示します。
c history --all
$ c history --all
Copy to Clipboard Copied! 履歴の最初の会話にアクセスします。以下に例を示します。
c history --first
$ c history --first
Copy to Clipboard Copied! 履歴から最後の会話にアクセスします。以下に例を示します。
c history --last
$ c history --last
Copy to Clipboard Copied! 会話履歴をフィルタリングして用語を検索すると、その用語に関連するすべての質問と回答が表示されます。以下に例を示します。
c history --filter “podman”
$ c history --filter “podman”
Copy to Clipboard Copied! すべてのユーザー履歴を消去します。
c history --clear
$ c history --clear
Copy to Clipboard Copied!
3.4. コマンドの出力のコマンドラインアシスタントへのリダイレクト
理解したい情報が含まれているログファイルを使用するには、そのログファイルの出力を、RHEL Lightspeed を搭載したコマンドラインアシスタントにリダイレクトします。
cat <log_file.log> | c
$ cat <log_file.log> | c
コマンドラインアシスタントに提供したエラーまたはログに十分な情報が含まれていない場合は、リダイレクトの出力と質問を組み合わせることができます。次に例を示します。
cat <log_file_error.log> | c "how do I solve this?"
$ cat <log_file_error.log> | c "how do I solve this?"
質問をリダイレクトすることもできます。
echo "how do I solve this?" | c -a <log_file_error.log>"
$ echo "how do I solve this?" | c -a <log_file_error.log>"
3.5. コマンドラインアシスタントを有効にしてターミナルのアクティビティーをキャプチャーする
RHEL Lightspeed を搭載したコマンドラインアシスタントには、以前に実行したコマンドを参照できるオプションの機能があります。
リクエストにターミナルコンテキストを追加しており、以前にキャプチャーされたコマンドがない場合、コマンドは失敗します。キャプチャーモードが有効になっている間は、ターミナルからのみコンテキストを追加できます。
現在のターミナルセッションのターミナルキャプチャーを有効にします。以下に例を示します。
c shell --enable-capture
$ c shell --enable-capture
Copy to Clipboard Copied! 以前のコマンドを参照する前に、少なくとも 1 つのコマンドを実行します。
キャプチャーを有効にすると、以前に実行したコマンドの出力を参照できます。たとえば、最後のコマンドを参照するには、以下を実行します。
c -w 1 "what_is_this"
$ c -w 1 "what_is_this"
Copy to Clipboard Copied! 最後から 2 番目のコマンドを参照するには、以下を実行します。
c -w 2 "what_is_this"
$ c -w 2 "what_is_this"
Copy to Clipboard Copied! ターミナルキャプチャーを停止するには、キーボードで次のキーを押します。
Press Ctrl + D
$ Press Ctrl + D
Copy to Clipboard Copied!
3.6. コマンドラインアシスタントの応答に関するフィードバックを送信する
RHEL Lightspeed 搭載のコマンドラインアシスタントを操作したときに受け取った応答に関するフィードバックを送信できます。
c feedback
$ c feedback
第4章 コマンドラインアシスタントを使用したシステムの問題のデバッグまたはトラブルシューティング
RHEL Lightspeed を搭載したコマンドラインアシスタントを使用して、システムで発生する問題のトラブルシューティング方法に関する情報を要求できます。
以下は、システムのトラブルシューティングを行うために尋ねることができる質問の例です。c + "question" という構文を使用して質問に問い合わせます。以下に例を示します。
-
$ c “how to troubleshoot network errors”
-
$ c “I cannot access my server with SSH. Can you give me a list of things to troubleshoot?”
-
$ c "I am failing to start sssd process"
-
$ c “I need to boot into a different kernel”
-
$ c “how to troubleshoot SSHD failing to start”
-
$ c “how do I find all the files in the /etc that have been modified in the last hour”
-
$ c "I am failing to start sssd process"
4.1. コマンドラインアシスタントを使用した SSHD サービスの起動失敗のトラブルシューティング
次の例は、コマンドラインアシスタントの次の機能を使用して、起動に失敗した SSHD サービスのトラブルシューティングを行う方法を示しています。
- コマンドラインアシスタントのオプションのターミナルキャプチャー機能。これはコマンドラインアシスタントと対話するときに、以前のコマンドの出力を参照するための機能です。
- コマンドラインアシスタントにデータをパイプする機能。
前提条件
- コマンドラインアシスタントを有効にした。
- システムへの root アクセス権がある。
手順
SSHD のステータスを確認し、再起動します。
sudo systemctl status ssh sudo systemctl restart ssh
$ sudo systemctl status ssh $ sudo systemctl restart ssh
Copy to Clipboard Copied! コマンドラインアシスタントのオプションのターミナルキャプチャー機能を有効にします。
c shell --enable-capture
$ c shell --enable-capture
Copy to Clipboard Copied! 最後に実行したコマンドの出力を含めるには、
-w 1 "your-question"
オプションを使用します。c -w 1 "what_is_this"
$ c -w 1 "what_is_this"
Copy to Clipboard Copied! - 2 を指定すると、2 つ前までのコマンドの出力が参照されます。他の数字を指定した場合も、同様に出力が参照されます。
また、実行するプロンプトをコマンドと一緒に指定し、“help me understand the output” (出力を説明してください) と尋ねて、エラーを含む出力を参照することもできます。これにより、コマンドアシスタントは、ユーザーがエラーの詳細を尋ねていることを理解します。
コマンドラインアシスタントが要求を処理していくつかの解決策を提供するまでに、しばらく時間がかかります。この例では、提案を使用して
journalctl -xeu
コマンドを実行し、sshd.service
を使用してログファイルを確認できます。
その
journalctl
コマンドを実行します。最後の 30 行を取得する tail コマンドを追加し、その出力をコマンドラインアシスタントにパイプして、エラーの説明を求める質問を追加します。journalctl -xeu sshd.service | tail -n 30 | c “here are the logs, please help me understand this”
$ journalctl -xeu sshd.service | tail -n 30 | c “here are the logs, please help me understand this”
Copy to Clipboard Copied! コマンドラインアシスタントがログファイルをチェックし、考えられる問題 (
config
ファイル内のタイプミス) をいくつか示します。コマンドラインアシスタントに、この入力エラーを修正するためのコマンドを生成するよう求めます。
c “what is the command that I can use to change “Porrt ”to “Port” in the /etc/ssh/sshd_config file?”
$ c “what is the command that I can use to change “Porrt ”to “Port” in the /etc/ssh/sshd_config file?”
Copy to Clipboard Copied! コマンドラインアシスタントによって提案されたコマンドを使用します。
コマンドラインアシスタントによって提案されたコマンドを実行します。以下に例を示します。
sed -i s/Porrt/Port/g /etc/ssh/sshd_config
$ sed -i s/Porrt/Port/g /etc/ssh/sshd_config
Copy to Clipboard Copied! 出力に、そのファイルを編集するアクセス権が拒否されたというエラーが表示されます。前のコマンドを sudo ユーザーとして再実行します。
sudo sed -i s/Porrt/Port/g /etc/ssh/sshd_config
$ sudo sed -i s/Porrt/Port/g /etc/ssh/sshd_config
Copy to Clipboard Copied! SSHD サービスを再起動し、SSHD のステータスを確認します。
sudo systemctl restart sshd sudo systemctl status sshd
$ sudo systemctl restart sshd $ sudo systemctl status sshd
Copy to Clipboard Copied!
4.2. コマンドラインアシスタントを使用した SELinux の問題のトラブルシューティング
次の例は、コマンドラインアシスタントを使用して SELinux の問題をトラブルシューティングする手順を示しています。
前提条件
- コマンドラインアシスタントを有効にした。
- システムへの root アクセス権がある。
手順
ターミナルで次のコマンドを入力して、システムにインストールされている
httpd
パッケージのバージョンをリスト表示します。sudo rpm -qa httpd
$ sudo rpm -qa httpd httpd-2.4.62-2.fc40.x86_64
Copy to Clipboard Copied! httpd.conf
ファイルの内容を表示します。sudo cat /etc/httpd/conf/httpd.conf This is the main Apache HTTP server configuration file. It contains the configuration directives that give the server its instructions. See <URL:http://httpd.apache.org/docs/2.4/> for detailed information. In particular, see<URL:http://httpd.apache.org/docs/2.4/mod/directives.html> for a discussion of each configuration directive.
$ sudo cat /etc/httpd/conf/httpd.conf # This is the main Apache HTTP server configuration file. It contains the # configuration directives that give the server its instructions. # See <URL:http://httpd.apache.org/docs/2.4/> for detailed information. # In particular, see<URL:http://httpd.apache.org/docs/2.4/mod/directives.html> # for a discussion of each configuration directive.
Copy to Clipboard Copied! すべての
httpdq
パッケージを検索します。sudo rpm -qa httpdq
$ sudo rpm -qa httpdq
Copy to Clipboard Copied! Web サーバーが着信リクエストを受け入れるポートを特定します。
cat /etc/httpd/conf/httpd.conf | grep Listen Listen: Allows you to bind Apache to specific IP addresses and/or Change this to Listen on a specific IP address, but note that if #Listen 12.34.56.78:80 Listen 80
$ cat /etc/httpd/conf/httpd.conf | grep Listen # Listen: Allows you to bind Apache to specific IP addresses and/or # Change this to Listen on a specific IP address, but note that if #Listen 12.34.56.78:80 Listen 80
Copy to Clipboard Copied! httpd
サービスを再起動します。systemctl restart httpd
$ systemctl restart httpd Job for httpd. Service failed because the control process exited with error code. See “systemctl status httpd.service" and “journalctl -xeu httpd.service” for details.
Copy to Clipboard Copied! journalctl
コマンドを実行して、失敗したサービスの詳細を確認します。sudo journalctl -xeu httpd.service
$ sudo journalctl -xeu httpd.service
Copy to Clipboard Copied!
コマンドラインアシスタントを使用して問題のトラブルシューティングを行い、サービスが失敗する理由を質問します。
sudo c “why did httpd fail to start”
$ sudo c “why did httpd fail to start”
Copy to Clipboard Copied! アシスタントが提案をいくつか提示します。その 1 つは、
ausearch
ツールを使用して監査ログを検索し、メッセージタイプパラメーターにAVC
およびUSER_AVC
値を使用することです。これを行うには、次のコマンドを実行します。sudo ausearch -m AVC,USER_AVC -ts recent
$ sudo ausearch -m AVC,USER_AVC -ts recent
Copy to Clipboard Copied! コマンドラインアシスタントに
selinux httpd
ポートについて質問します。c “selinux httpd port”
$ c “selinux httpd port”
Copy to Clipboard Copied! アシスタントが、次のように
sestatus
コマンドを使用して、現在の SELinux ステータスと httpd サービスの内容を確認することを提案します。sudo sestatus
$ sudo sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 33
Copy to Clipboard Copied! 次のコマンドを実行して、httpd サービスの特定の SELinux ポリシーを表示します。
sudo cat /usr/share/selinux/targeted/contexts/httpd_var_run_t No such file or directory
$ sudo cat /usr/share/selinux/targeted/contexts/httpd_var_run_t No such file or directory
Copy to Clipboard Copied! コマンドラインアシスタントにコンテキストについて質問します。
c “i don't have a httpd_var_run_t contexts”
$ c “i don't have a httpd_var_run_t contexts”
Copy to Clipboard Copied! コマンドラインアシスタントが要求を処理するまでに、しばらく時間がかります。処理が終わると、提案がいくつか提供されます。
コンテキストがない可能性があるため、次のコマンドでコンテキストを設定する必要があるという指示が表示されます。
sudo chcon -R -t httpd_var_run_t
$ sudo chcon -R -t httpd_var_run_t
Copy to Clipboard Copied! コマンドラインアシスタント (CLA) にポートについて質問します。
c “selinux won't let httpd listen on port 12345”
$ c “selinux won't let httpd listen on port 12345”
Copy to Clipboard Copied! 次の提案を試して、コマンドを実行します。
sudo semage port -a -t httpd_port_t -p tcp 12345
$ sudo semage port -a -t httpd_port_t -p tcp 12345 ValueError: Type httpd_port_t is invalid, must be a port type
Copy to Clipboard Copied! 出力に表示されたエラーについて CLA に質問します。
c “how do I fix ValueError: Type httpd_port_t is invalid, must be a port type”
$ c “how do I fix ValueError: Type httpd_port_t is invalid, must be a port type”
Copy to Clipboard Copied!
CLA によって提供された手順を実行します。
sudo getenforce setenforce 0 sudo systemctl restart httpd sudo systemctl status httpd sudo ls -Z /usr/sbin/httpd chcon -t httpd_exec_t /usr/sbin/httpd sudo setenforce 1
$ sudo getenforce Enforcing $ setenforce 0 $ sudo systemctl restart httpd $ sudo systemctl status httpd $ sudo ls -Z /usr/sbin/httpd system_u:object_r:httpd_exec_t:s0 /usr/sbin/httpd $ chcon -t httpd_exec_t /usr/sbin/httpd $ sudo setenforce 1
Copy to Clipboard Copied! httpd
サービスを再起動し、httpd.service
のステータスを確認します。sudo systemctl restart httpd sudo systemctl status httpd.service
$ sudo systemctl restart httpd Job failed $ sudo systemctl status httpd.service Failed to start the Apache Server
Copy to Clipboard Copied!
httpd
がport
12345 で待ち受けできるようにする方法について、CLA に質問します。c “how do I enable httpd to listen on port 12345 selinux”
$ c “how do I enable httpd to listen on port 12345 selinux”
Copy to Clipboard Copied! CLA によって提案されたコマンドを実行します。
sudo setsebool -P httpd_can_network_connect=1
$ sudo setsebool -P httpd_can_network_connect=1
Copy to Clipboard Copied!
httpd
サービスを再起動し、httpd.service
のステータスを再度確認します。sudo systemctl status htppd sudo systemctl restart httpd
$ sudo systemctl status htppd $ sudo systemctl restart httpd Job failed, see journalctl
Copy to Clipboard Copied! journalctl
サービスを確認します。journalctl -xeu httpd
$ journalctl -xeu httpd Output: An ExecStart= process belonging to unit httpd.service has exited.
Copy to Clipboard Copied! 出力を使用して CLA にトラブルシューティングを実行するよう求めます。
c “An ExecStart= process belonging to unit httpd.service has exited.”
$ c “An ExecStart= process belonging to unit httpd.service has exited.”
Copy to Clipboard Copied! CLA の応答で返されるコマンドを実行します。
sudo ausearch -m AVC,USER_AVC -ts recent
$ sudo ausearch -m AVC,USER_AVC -ts recent Output: “avc: denied {name_bind} for pid=7184 comm=”httpd” src=12345 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r: unreserved_port_t:s0 tclas=tcp_socket permissive=0"
Copy to Clipboard Copied! 前のコマンドの出力をコピーします。
sudo c ““avc: denied {name_bind} for pid=7184 comm=”httpd” src=12345 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r: unreserved_port_t:s0 tclas=tcp_socket permissive=0”
$ sudo c ““avc: denied {name_bind} for pid=7184 comm=”httpd” src=12345 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r: unreserved_port_t:s0 tclas=tcp_socket permissive=0”
Copy to Clipboard Copied! “SELinux is preventing Apache Server (httpd) from binding to port 12345” というエラーを解決するために、次のコマンドを実行します。
sudo semage port -a -t http_port_t -p tcp 12345
$ sudo semage port -a -t http_port_t -p tcp 12345
Copy to Clipboard Copied!
httpd サービスを再起動し、
httpd.service
のステータスを確認します。sudo systemctl restart httpd sudo systemctl status httpd.service
$ sudo systemctl restart httpd No error $ sudo systemctl status httpd.service
Copy to Clipboard Copied! サーバーが設定されて起動し、
port 443
、port 12345
で待ち受けるようになります。
第5章 RHEL Lightspeed を搭載したコマンドラインアシスタントのトラブルシューティング
RHEL Lightspeed を搭載したコマンドラインアシスタントをインストールして使用する際の問題を診断して解決します。このリストは網羅的なものではないことに注意してください。
Could not find the TLS certificate file, invalid path: /etc/pki/consumer/cert.pem
コマンドラインアシスタントに質問したときに、無効なパスが原因で TLS 証明書ファイルが見つからないためにアシスタントが失敗した場合、システムが登録されていない可能性があります。
このエラーを解決するには、システムを登録してください。次の手順に従ってください。
システムが登録されているかどうかを確認します。
subscription-manager identity
# subscription-manager identity
システムが登録されていない場合は、次のコマンドを使用してシステムを登録します。
subscription-manager register --username <username> --password <password>
# subscription-manager register --username <username> --password <password>
サーバーとの通信エラー
システムで c
コマンドを実行しようとすると、次のエラーが発生して失敗します。
🙁 Communication error with the server: HTTPSConnectionPool(host='cert.console.redhat.com', port=443): Max retries exceeded with url: /api/lightspeed/v1/infer (Caused by ProtocolError('Connection aborted.', PermissionError(13, 'Permission denied'))). Please try again in a few minutes.
🙁 Communication error with the server: HTTPSConnectionPool(host='cert.console.redhat.com', port=443): Max retries exceeded with url: /api/lightspeed/v1/infer (Caused by ProtocolError('Connection aborted.', PermissionError(13, 'Permission denied'))). Please try again in a few minutes.
このエラーを解決するには、コマンドラインアシスタントデーモン (clad) を再起動し、c
コマンドを再実行します。
systemctl restart clad c “<Your_question>”
$ systemctl restart clad
$ c “<Your_question>”
ファイルを添付する際の警告
c
コマンドを実行してファイルを添付しようとすると、次の警告が表示されます。
"Error: The total size of your question and context (478.46 KB) exceeds the limit of 2.00 KB. Trimming it down to fit in the expected size, you may lose some context."
これは、アシスタントがクライアントに対して 2 KB の制限を設けているために発生します。
clad が更新された証明書を正しく再ロードしない
clad
を非 root ユーザーとして実行しようとすると、clad
が更新された証明書を正しく再ロードしません。/etc/pki/consumer
の下の証明書は、root によって所有されている必要があります。clad は、root のみが読み取り可能なファイルにアクセスする必要があるためです。
このエラーを解決するには、key.pem
の権限を root に変更し、clad
コマンドを root として実行します。
sudo ls -l /etc/pki/consumer/ sudo chown $(whoami):$(id -gn) /etc/pki/consumer/${KEY_NAME}
$ sudo ls -l /etc/pki/consumer/
$ sudo chown $(whoami):$(id -gn) /etc/pki/consumer/${KEY_NAME}
第6章 付録: コマンドラインアシスタントの設定の変更
コマンドラインアシスタントデーモン (clad
) は、RHEL Lightspeed を搭載したコマンドラインアシスタントの中核であり、ユーザー履歴管理などの RHEL Lightspeed サービスとの通信を管理します。clad
は dbus
によってアクティブ化されるデーモンです。たとえば c
コマンドを入力するなど、コマンドラインアシスタントを操作すると、デーモンがアクティブになります。
たとえば、プロキシーを使用する場合や別のデータベースに接続する場合、コマンドラインアシスタントの設定を変更できます。これらの設定は任意であることに注意してください。
6.1. プロキシー設定のセットアップ
インターネットアクセスにプロキシーが必要な場合は、config.toml
設定ファイルで次の変更を加えることで、プロキシー設定をセットアップできます。
前提条件
- RHEL Lightspeed を搭載したコマンドラインアシスタントがインストールされている。
手順
-
/etc/xdg/command-line-assistant/config.toml
設定ファイルを開いて、プロキシー設定にアクセスします。 config.toml
ファイルで次のブロックを見つけて変更します。Backend settings for communicating with the external API. proxies = { http = "http://example-host:8002", https = "https://example-host:8002" }
# Backend settings for communicating with the external API. [backend] ... # proxies = { http = "http://example-host:8002", https = "https://example-host:8002" }
Copy to Clipboard Copied! proxies
キーのコメントを解除し、http
またはhttps
プロキシーホストを定義します。[backend] … # For a https proxy host proxies = { https = "https://<your-https-proxy-host:1234>"}
[backend] … # For a https proxy host proxies = { https = "https://<your-https-proxy-host:1234>"}
Copy to Clipboard Copied! 変更を加えたら、変更を有効にするために
clad
を再起動します。sudo systemctl restart clad
$ sudo systemctl restart clad
Copy to Clipboard Copied! 注記clad
からの http または https トラフィックを指定のプロキシーにルーティングする場合は、http
値とhttps
キーによる制御を使用できます。ただし、プロトコルはプロキシータイプの選択に影響せず、https トラフィックに http プロキシーを使用する設定にすることもできます。以下に例を示します。https = "http://<your-https-proxy-host:1234>"
https = "http://<your-https-proxy-host:1234>"
Copy to Clipboard Copied!
コマンドラインアシスタントデーモンによるデータベースの管理
コマンドラインアシスタントデーモン (clad
) は、情報を保存し、ユーザーが履歴データベースにアクセスできるように、暗号化されていない SQLite データベースをデフォルトで使用します。PostgreSQL や MySQL などの別のデータベースバックエンドをインストールして接続することもできます。これらのデータベースは、システムに不要な依存関係が追加されないように、clad にはデフォルトでは組み込まれていません。
6.2. 設定ファイルでのデフォルトデータベースの変更
暗号化されていない SQLite データベースを使用すると、情報を保存し、コマンドラインアシスタントから履歴データベースにアクセスできます。
前提条件
- コマンドラインアシスタントをインストールした。
手順
選択したデータベースをインストールします。
MySQL をインストールするには、次のように入力します。
dnf install python3-PyMySQL
# dnf install python3-PyMySQL
Copy to Clipboard Copied! PostgreSQL をインストールするには、次のように入力します。
dnf install python3-psycopg2
# dnf install python3-psycopg2
Copy to Clipboard Copied!
-
/etc/xdg/command-line-assistant/config.toml
にあるデータベース設定ファイルにアクセスします。 デフォルト設定を見つけてコメントアウトします。以下に例を示します。
[database] # type = "sqlite" # connection_string = "/var/lib/command-line-assistant/history.db"
[database] # type = "sqlite" # connection_string = "/var/lib/command-line-assistant/history.db"
Copy to Clipboard Copied! 選択したデータベースを設定します。以下の情報は
/etc/xdg/command-line-assistant/config.toml
でも参照できます。-
データベースの種類を設定します。
<db_type>
に、mysql
またはpostgresql
を指定します。 データベースの詳細を設定します。
type = <db_type> host = "<hostname_or_ip_address>" port = "5432" username = "<database_user_name>" password = "<password>" database = "<database_name>"
type = <db_type> host = "<hostname_or_ip_address>" port = "5432" username = "<database_user_name>" password = "<password>" database = "<database_name>"
Copy to Clipboard Copied!
-
データベースの種類を設定します。
データベースの種類を変更した後、変更を適用するために
clad
デーモンを再起動します。sudo systemctl restart clad
$ sudo systemctl restart clad
Copy to Clipboard Copied!
6.3. 保存された systemd-creds
パスワードを使用したデータベースへの接続
systemd-creds
ツールを使用して暗号化された認証情報をセキュアに保存し、systemd-creds
に保存されたシークレットを使用して、選択したデータベース (PostgreSQL、SQLite、または MySQL) に接続できます。
前提条件
- コマンドラインアシスタント。
- データベース設定ファイルへのアクセス。
手順
-
/etc/xdg/command-line-assistant/config.toml
にあるデータベース設定ファイルにアクセスします。 [database]
セクションからusername
およびpassword
パラメーターを削除します。次に例を示します。[database] type = "postgresql" host = "localhost" port = "5432" database = "history"
[database] type = "postgresql" host = "localhost" port = "5432" database = "history"
Copy to Clipboard Copied! 注記ユーザー名とパスワードを設定ファイルに残しておくと、これらの認証情報が
systemd-creds
ツールよりも優先されます。暗号化されたユーザー名またはパスワードの認証情報を生成します。次の例では、
systemd-ask-password
コマンドを使用します。名前がdatabase-username
およびdatabase-password
のスキーマに従っている必要があります。従っていない場合、clad
が認証情報を正しくロードしません。暗号化されたユーザー名を生成するには、次のコマンドを実行します。
systemd-ask-password -n | ( echo "[Service]" && systemd-creds encrypt --name=<database-username> -p - - ) >/etc/systemd/system/clad.service.d/<username>.conf
$ systemd-ask-password -n | ( echo "[Service]" && systemd-creds encrypt --name=<database-username> -p - - ) >/etc/systemd/system/clad.service.d/<username>.conf
Copy to Clipboard Copied! 暗号化されたパスワードを生成するには、次のように入力します。
systemd-ask-password -n | ( echo "[Service]" && systemd-creds encrypt --name=<database-password> -p - - ) >/etc/systemd/system/clad.service.d/<password>.conf
$ systemd-ask-password -n | ( echo "[Service]" && systemd-creds encrypt --name=<database-password> -p - - ) >/etc/systemd/system/clad.service.d/<password>.conf
Copy to Clipboard Copied!
データベースの認証情報を更新した後、
systemd
を再ロードし、clad
デーモンを再起動して変更を適用します。sudo systemctl restart clad
$ sudo systemctl restart clad
Copy to Clipboard Copied!
第7章 ユーザーデータのセキュリティーに関するよくある質問
コマンドラインアシスタントはどのようなシステム情報に直接アクセスできますか?
コマンドラインアシスタントは、システムの情報に直接アクセスすることはできません。たとえば、コマンドラインアシスタントに "how much free memory does this system have?" (このシステムには空きメモリーがどれくらいあるか) などの質問をしても、コマンドラインアシスタントはシステムから直接この情報を収集することはできません。代わりに、コマンドラインアシスタントでは、システムの空きメモリー量を表示するコマンドを確認できます。次のようなさまざまな方法を使用して、コマンドラインアシスタントに情報を提供できます。
- プロンプトまたは質問に情報を含める
-
--attachment
オプションを使用してコマンドラインアシスタントにファイルを添付する - シェルパイプラインを使用してコマンドの出力をコマンドラインアシスタントに渡す
-
--with-output
オプションを使用する
コマンドラインアシスタントの入力と出力のプロセスフローは?
コマンドラインアシスタントが質問を入力として受け取ります。
コマンドラインアシスタントは、ユーザーとコマンドラインアシスタント間の会話の完全なトランスクリプトをログに記録して保存します。これには以下の情報が含まれます。
- ユーザーからのクエリー。
- 設定された大規模言語モデル (LLM) プロバイダーに送信される完全なメッセージ。これには、システム手順、参照ドキュメント、およびユーザーの質問が含まれます。
- LLM プロバイダーからの完全な応答。
- 入力がバックエンドによって処理されます。
- コマンドラインアシスタントが質問に関連する適切な情報を検索します。
- コマンドラインアシスタントが、質問、関連する情報、その他の指示を受け取り、AI 推論に送信します。
- コマンドラインアシスタントからの出力が応答として表示されます。
コマンドラインアシスタントは個人情報を処理することを目的としたものではありません。お客様は、入力に個人情報を含めないことに同意するものとします。
コマンドラインアシスタントとの対話は、チャット履歴にアクセスできるように、お使いのシステム上にローカルに記録されます。この対話はサービスのログにも記録され、Red Hat の製品やサービスの改善に使用される場合があります。