2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Red Hat Lightspeed MCPを使ってAIエージェントからRHELサーバー群のCVE対応状況を管理する

2
Last updated at Posted at 2026-03-04

はじめに

2025年10月、Red Hat Lightspeed(旧称:Red Hat Insights)の情報をAIチャットから参照できる Red Hat Lightspeed MCP (旧称:insights-mcp)のDeveloper Previewが公開されました。本記事では、 「VSCode + GitHub CopilotからRHEL上のMCPサーバー経由でRed Hat Lightspeedに登録されているRHELサーバー群のCVE対応状況を管理する」 手順を紹介します。

参考

Red Hat Lightspeed - リリースノート - 2025年10月

Red Hat Lightspeedとは?

旧来の Red Hat Insights は、OSにインストールされたクライアントがシステム情報を吸い上げ、Red HatのInsightsサイトに送付し、システムのリスク予兆検知や、該当するセキュリティの脆弱性(CVE)などをWebUIを通して可視化するものでした。
現在は、Red Hat Lightspeed へと名前を変え、単なる「検知」から「問題解決」へと役割を広げていっています。

Red Hat Lightspeed MCP

1. 構成イメージ

insight-mcp_image.jpg

  • 管理対象
    Red Hat Lightspeedに登録済みのRHELサーバー群
  • MCPのホスト
    RHEL9(VMware Workstation Pro上)
  • コンテナ基盤
    ルートレスPodman + Quadlet
  • クライアント
    Windows11 (VSCode + GitHub Copilot)

2. Red Hat Hybrid Cloud Consoleでの準備

MCPがInsights APIにアクセスするためのサービスアカウントを作成します。

  • console.redhat.comにログインする
  • :gear:(設定メニュー)から、「Service Accounts」を選択する
    Pasted image 20260106233556.png
  • 「Createtive service account」ボタンからサービスアカウントを作成する
    例:「mcp-account」
    Pasted image 20260106233630.png
    Pasted image 20260106233821.png

Client ID と Client Secret を必ずメモしてください。

  • 「User Access」-「Groups」メニュー、「Create Group」ボタンからグループを作成する
    例:「mcp-service-accounts」
    Pasted image 20260106234113.png
    Pasted image 20260106234209.png
  • ウィザードに従って、ロール割当てやサービスアカウントのグループ追加などを実施しても良いがうまくいかない場合もあるため、ここではグループの作成だけ行う
  • 作成したグループを選択し、「Roles」タブの「Add role」ボタンから必要なロールを割り当てる(今回は参照系のみ)
    • 「Inventory Hosts viewer」(登録されているホストの参照権限)
    • 「RHEL Advisor viewer」(RHEL向けのアドバイザリ参照権限)
    • 「Vulnerability viewer」(脆弱性情報の参照権限)

Pasted image 20260107000017.png

  • 「Service Accounts」タブの「Add service account」ボタンから、グループにサービスアカウントを追加する
    Pasted image 20260107000313.png
    Pasted image 20260107000616.png

3. RHELサーバー側の構築(ルートレスPodman + Quadlet)

GitHubのVSCode用サンプルでは、type: stdioのMCPとして、podman run コマンドが例示されていますが、今回は別のRHEL上で自動開始するようにQuadletでサービス化します。

専用ユーザーの作成と永続化

セキュリティのためルートレス環境で実行し、ユーザーがログアウトしてもコンテナが動き続けるよう設定します。

# ユーザー作成
sudo useradd insights-mcp
sudo loginctl enable-linger insights-mcp # ユーザープロセスの永続化

# セッションの切り替え(XDG_RUNTIME_DIRを正しく継承するためmachinectlを利用)
sudo machinectl shell --uid=insights-mcp

標準では、machinectlを使わず、普通にログインしたり、suでスイッチしても環境変数(XDG_RUNTIME_DIR)は用意されません。machinectlを使わない場合は、自身で.bashrcなどで用意しましょう。

Quadletによるサービス定義

Quadletを使用すると、定義ファイルからsystemdユニットが自動生成されます。

Podman v4.6以降では、Quadletの利用が推奨されています。(実装はv4.4あたりから)それまでは、podman generate systemdが使われていました。

mkdir -p ~/.config/containers/systemd/
vi ~/.config/containers/systemd/insights-mcp.container

以下の内容を記述します。Execオプションで、コンテナをHTTPサーバーとして動作させ、外部接続を許可しています。

insights-mcp.container
[Container]
Image=ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest
PublishPort=8000:8000
ContainerName=insights-mcp
# 取得したサービスアカウント情報を設定
Environment=LIGHTSPEED_CLIENT_ID=<YOUR_CLIENT_ID>
Environment=LIGHTSPEED_CLIENT_SECRET=<YOUR_CLIENT_SECRET>
# HTTPモードで起動し、全インターフェースからの接続を許可
Exec=http --host 0.0.0.0

[Install]
WantedBy=default.target

<YOUR_CLIENT_ID><YOUR_CLIENT_SECRET>には、サービスアカウントを作成した際にメモした内容を入れてください

サービスの起動とFirewallのポート開放

systemctl --user daemon-reload
systemctl --user enable --now insights-mcp.service

# Windowsから接続するため、8000番ポートを開放(root権限で実施)
sudo firewall-cmd --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

もし、ソースネットワーク条件も含めたアクセス制限をfirewalldで実施したいのでしたら、マルチゾーン構成をオススメします

4. VSCode + GitHub Copilotの設定

Windows側のVSCodeから、RHEL上で動いているMCPサーバーを登録します。

設定の追加

GitHubの公式リポジトリにあるサンプル では stdio 形式(ローカル実行)になっていますが、今回はネットワーク経由で接続するため、以下のように http 形式に変更して記述します。

  1. VSCodeのMCP設定(mcp.json)を開きます
  2. servers セクションに以下を追記します
mcp.json
{
    "servers": {
        "lightspeed-mcp": {
            "type": "http",
            "url": "http://<RHELのIPアドレス>:8000/mcp"
        }
    }
}

MCPサーバーを外出しにした場合、red-hat-lightspeed-mcpコンテナとの接続はHTTPになりますので、セキュリティ要件によっては、前段にリバースプロキシ(コンテナ構成含む)等を挟んでHTTPS化を検討してください

GitHub Copilotからの利用

正しく接続できれば、VSCodeのチャット欄(GitHub Copilot)から、Insightsの情報を呼び出せるようになります。
Pasted image 20260107232053.png

1. プロンプトの実行例

Pasted image 20260118162135.png

2. :tools: Skills登録

利用するにあたっては、Skills登録をした方がより使いやすくなるかと思います。
Skillsについては、こちらをはじめ紹介記事がたくさんあるかと思いますのでそちらを参照してください。

参考までに、私が生成したSkills(抜粋)を挙げておきます。もし、SKillsを使われていないのでしたら、最初にSkillsを生成するためのSkillsを登録することをオススメします。

SKILL.md
---
name: lightspeed_mcp
description: "Red Hat Lightspeed MCPでインベントリ分析、脆弱性診断、原因説明、是正提案を進めるためのスキルです。"
---

# 目的
Red Hat Lightspeed MCPを使ったインベントリ分析・脆弱性診断・是正提案を、短時間で再現可能かつ安全に実施するための指針です。

# 基本方針
- まず「何を知りたいか」を明確化し、最小のAPI呼び出しで確認してください
- 取得結果は「対象」「件数」「重要度」「次アクション」に分けて要約してください
- 影響範囲の広い操作(プレイブック作成など)は、対象CVE・対象ホストを必ず再確認してください
- 回答時は、取得できたURL(Insights/CVE/Errata/Red Hat)を優先して提示してください

# 初動チェック
- 対象がRHELかどうか、調査対象の範囲(全体/特定ホスト/特定CVE)を確認してください
- 一覧取得系のツールは、まずデフォルト件数で呼び出して全体像を把握してください
- 結果にURL(Insights/CVE/Errata)が含まれる場合は、必ず回答に含めてください
- ホスト判断時は `last_upload` / `updated` を確認し、古い場合は「再チェックイン後に再判定」を案内してください

# ツール選定ガイド

## まずインベントリ全体を把握したい
- 必要に応じて `activate_host_inventory_tools` を呼び出してください
- ホスト数・更新時刻・RHELバージョン分布を先に確認し、診断対象を明確化してください

## どのサーバが影響を受けているか知りたい
- `mcp_lightspeed-mc_vulnerability__get_systems` を使用し、`cve_count` が多いホストから確認してください
- 回答にはホスト名・UUID・Insights URLを含めてください

## パッチ不要ホストを知りたい
- `mcp_lightspeed-mc_vulnerability__get_systems` の結果から `cve_count = 0` のホストを抽出してください
- 回答には「現時点判定」であることと、最終更新時刻を明記してください

## なぜ影響しているか知りたい
- `mcp_lightspeed-mc_vulnerability__explain_cves` を使用し、影響パッケージとErrataを取得してください
- 回答には「affected_packages」「errata」「理由(reasons)」を含めてください

## Advisor観点で優先課題を見たい
- 必要に応じて `activate_advisor_recommendation_tools` を呼び出してください
- `mcp_lightspeed-mc_advisor__get_recommendations_statistics` で全体傾向を把握してください
- 個別深掘りは `mcp_lightspeed-mc_advisor__get_rule_details` を使って、影響・対処・根拠情報を確認してください

## 代表的な診断フロー
- 1) `mcp_lightspeed-mc_vulnerability__get_systems` で影響ホストを把握
- 2) 対象ホスト + CVEで `mcp_lightspeed-mc_vulnerability__explain_cves` を実行
- 3) 必要に応じて `mcp_lightspeed-mc_remediations__create_vulnerability_playbook` を作成
- 4) Advisor推奨事項を `mcp_lightspeed-mc_advisor__get_recommendations_statistics` / `mcp_lightspeed-mc_advisor__get_rule_details` で補完

# 回答テンプレート(推奨)
- 判定: 未対応CVEの有無(あり/なし)
- 対象: 影響ホスト数、代表ホスト
- 詳細: 主要CVE、重要度、影響パッケージ、Errata
- 参照: Insights URL、Red Hat CVE URL、Errata URL
- 次アクション: explain取得 / playbook作成の提案

# ホスト側再確認コマンド(正確性重視)
- 最新状態の送信は `insights-client --checkin` を使用してください
- 例:
	- `sudo insights-client --checkin`
	- `sudo tail -n 100 /var/log/insights-client/insights-client.log`
	- `sudo dnf updateinfo list cves`
	- `sudo dnf updateinfo list --security`
	- `sudo dnf updateinfo list --cve <CVE-ID>`
- `journalctl -u insights-client` は環境依存で取得できないことがあるため、ログファイル確認を優先してください

# RBAC注意点
- Vulnerability系の参照には、少なくとも `Vulnerability viewer``Inventory Hosts viewer` が必要です
- Advisor参照には `RHEL Advisor viewer` が必要です
- 権限不足が疑われる場合は、例: **Vulnerability viewer が不足しています** のように太字で明示し、管理者への依頼を案内してください

# 完了条件
- 「未対応CVEの有無」「影響対象」「修正可能性(Errata有無)」が明確であること
- 主要な参照URL(Insights/CVE/Errata)が提示されていること
- 利用者が次に取るべき手順(詳細調査 / 是正 / Advisor確認)を選べる状態になっていること

:pencil: まとめ

Windows上のVSCode + GitHub Copilotという手慣れた環境から、Red Hat Lightspeed のインベントリ情報へ直接アクセスできるようになりました。しかし、まだこれはスタートラインです。ここから、CVEの影響を受けるホスト用にセキュリティパッチ適用のansible Playbookを作成してもらい適用したりということが可能になっていきます。(本記事ではサービスアカウントに参照権限のみ付けているので、そのあたりの見直しが必要になります)

参考


We Are Hiring!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?