Ansible x AI = AIOps

本記事は Ansible Advent Calendar 2025 の4日目の記事です。

1日目の記事がAnsibleというよりEmacsの話になってしまったのでもう一本投稿します。

はじめに

最近のAIの発展の勢いは目覚ましく、日々の業務に活用している方も多いのではないでしょうか。

これは Ansible を用いたインフラ構築や運用も例外ではなく、様々なAIと組み合わせた活用が行われています。いくつか代表的な方法を確認してみます。

  1. AI で Playbook を生成(ChatGPT, CoPilot, Ansible Lightspeed, etc)
  2. AI からAnsible を実行(AI Agent, MCP, etc)
  3. Ansible から AI へプロンプトを送信する(今回の記事で取り上げます)

1は Playbook の開発に便利で、多くの方に利用されていると思います。2はこれから発展や応用が期待される分野で、AI の判断を元にして AI Agent や MCP を通して、Ansible の Playbook を実行します。

そして、今回は3の「Ansible から AI へプロンプトを送信」するに焦点を当てます。これは従来は AIBot に対して人間がチャットを通してプロンプトを送信していた部分をAnsibleに自動化させるというものです。一見すると大したことが無いように見えます(実際にPlaybookとしては簡単です)が、使ってみると想像以上に便利です。

では、これより本題です。

AI にプロンプトを投げるPlaybook

非常に簡単です。ほとんどのAIはAPIでリクエストを受け付けてくれますので、それをPlaybookから叩くだけです。

例えばこんな感じです。

https://github.com/irixjp/aap-demos/blob/main/aiops/ask_to_chatgps.yaml

    - name: Create prompt
      set_fact:
        gpt_prompt: |
          これは {{ error_source }} です。
          ログから原因の推定と、調査方法、可能であればエラーへの対処方法を教えて下さい
          (markdown形式で出力)

          {{ error_logs }}

    - name: send prompt
      ansible.builtin.uri:
        url: "{{ ai_api_endpoint }}"
        method: POST
        headers:
          Content-Type: "application/json"
          Authorization: "Bearer {{ lookup('env', 'gpt_token') }}"
        body:
          model: "{{ ai_model }}"
          messages:
            - role: user
              content: "{{ gpt_prompt }}"
        body_format: json
        return_content: true
        timeout: 300
      register: ai_ret

この Playbook では最初のタスクでAIへ送信するプロンプトを作成し、次のタスクでプロンプトをAIへ送信しています。AIの回答は変数に格納されます。実に簡単なPlaybookです。

これだけですとチャットで人間が指示するものを置き換えているだけですが、ここに「サーバーから分析対象の情報を取得するPlaybook」「AIからの回答をチケットに書き込むPlaybook」などのPlaybookを組み合わせると利便性が大きく向上します。

例えば以下のような自動化が行えるようになります。

  1. 対象のサーバーやネットワーク機器からログや状態を取得する get_linux_logs.yaml
  2. 取得した状態をプロンプトをAIへ送信する ask_to_chatgpt.yaml
  3. AIからの回答をチケットへ書き込む redmine_create_issue.yaml

これは障害対応などの初動の動きを自動化してくれます。シンプルですが非常に便利です。更に監視システムと連携させれば、障害に連動して初動の分析までを自動で実施できます。

応用

この方法はシンプルで単純が故に広く応用が効きます。例えば以下のようにして使うことも可能です。

ステップ 応用
情報の取得 Ansibleが操作できるサーバーやネットワーク機器であれば、どんな情報でも取得し、複数台から同時に収集が可能
送信するプロンプト構築 単純な原因分析から、対策の方法の問い合わせ、潜在的な設定不備やセキュリティ上のリスク見、 複数台のログから類似の事象を見つける、など多岐にわたる
AIへのプロンプト送信 API連携可能なAIであれば何でも使用可能
結果の通知 チケット作成・追記、Chatやメールへの送信など、API連携可能なものであれば何でも通知可能

そしてこれらを Event-Driven Ansibleに組み込んで、監視システムやObservabilityツールやデータ分析ツールと連携させることで、様々な事象に対応する「自動レスポンス」の仕組みを構築出来ます。

AIOpsの将来像

更にこの仕組みを発展させ、冒頭に挙げたAIとAnsibleを組み合わせて以下のシステムを実現することができます。

  1. 監視システムやObservabilityツールからイベントを送信
  2. Event-Driven Ansible でイベントを受信し、Playbook を起動
  3. Ansible からログや状態を取得して、AIへプロンプト送信
  4. AIからの回答をチケットやチャットに送信して通知
  5. AIからの回答を使って「対策を行うPlaybook」を生成
  6. AIが生成したPlaybookを自動で実行して問題に対処

この仕組みはシステムから発生するイベントを捉えて、AIを使って自動で原因を分析し、解決までを自動で実施してくれます。

もちろんこのシステムを実現するには課題もまだまだあります。システムのイベントをどれだけ正確に捉えることができるか、AIの出す回答、AIの生成するPlaybookの精度などです。しかし、AIの進歩は目覚ましく正確性の問題もいずれ解決していくでしょう。また複数の異なるAIを使うことで精度を挙げたり、Ansible の Policy Enforcement のようにAIの挙動にガードレールを設けて安全性を向上させるなど、様々な工夫も行われています。そう遠くない将来に、AIが当たり前にシステム運用の一部に組み込まれる時代が来ると思います。

おわりに

今回はAI と Ansible を組み合わせた例をご紹介しました。この例でのAnsibleの活用方法は、操作の自動化という側面も持ちながらも、もっと広い役割を果たしています。それは、「データ(イベント)」と「アクション(操作)」をつなげるという役割です。

AIの時代においては、AIの判断をどのように現実に反映させるかが重要になります。なぜならば、AIがどんな高度で正確な判断をしても、それを現実のインフラ(サーバーやネットワーク機器)に反映させるために人間が介入しては意味がないからです。

このように、AIが発展すればするほどAnsibleの役割は変化しつつも重要になっていきます。ぜひ、この記事をきっかけに Ansible の新しい側面にも目を向けて貰えれば幸いです。