VMware ESXiのサポートログをAnsibleで取得する


AnsibleでESXiのサポートログが取得できると便利だと思いモジュールを作ったのでVMwareのCollectionにマージしてもらったのでログ取得モジュールの使い方について説明したいと思います。

ESXiのサポートログ取得モジュール

vmware_host_logbundle はESXiのサポートログを取得するモジュールです。
vmware_host_logbundle_infovmware_host_logbundle で取得する対象のログのmanifest情報を取得するモジュールです。

利用シーンのイメージ

ログ取りの作業って結構めんどかったり台数に比例して結構時間がかかったりと不要な時間の消費になっちゃうんですよね。
例えば複数のシステムがVMware環境で構築されていてvCenter毎に分かれたりすると、結構大変です。
GUIでポチポチしようとすると

  • vCenter(またはESXi)にログインして
  • 対象のESXi選択して
  • ログダウンロードして
  • また、別のvCenterにログインして
  • (略

みたいな感じになると思います。
これをAnsibleで自動化するとこんなイメージになります。

このように複数のvCenterで管理されてるESXiからサポートログのダウンロードが一気に出来ると作業間短縮になって便利かなと思います(またはESXi直で) 🙂
ログダウンロード用のPlaybookテンプレートを作っていてAnsible TowerやAWXに登録しておけば、オペレーターの人でも簡単に且つ一気に対象のESXiのログが効率よく取得できます。

ESXiのサポートログ取得方法

最新版のVMware Collectionを使ってESXiのサポートログを取得するやり方について説明します。

環境

項目 バージョン
Ansible 2.10.0.dev0
VMware Collection 最新版
Python 3.6.8

リポジトリのクローン

AnsibleとVMware Collectionのリポジトリをクローンします。

Ansibleの有効化

venvを作ってAnsible(2.10.0.dev0)を使えるようにします。

Playbookの作成

次のPlaybookを作成します。
ここでは、manifestを指定せずにデフォルトの状態でログを取得してみます。

パラメーター 説明
esxi_hostname サポートログを取得するESXi
dest サポートログを保存するパスとファイル名

Inventoryの作成

インベントリを作成します。
以下のインベントリ例は次の通りです。

  • system01グループ
    • esxi-08.localesxi-12.local のESXiホストが所属しています
    • このESXiは vcenter04.local で管理しているので、その認証情報を変数で指定しています
  • system02グループ
    • esxi-test-01.localesxi-test-02.local のESXiホストが所属しています
    • このESXiは vcenter-test01.local で管理しているので、その認証情報を変数で指定しています

※ESXiはAnsibleを実行するホストから名前解決できる必要があります

サポートログ取得の実行

これを実行してみます。

サポートログが取得できました 🙂

manifestについて

次にログの種類を指定して取得してみたいと思います。

manifestとは?

サポートログのmanifestは以下の赤枠で囲っている部分です。

ESXiのサポートログを取得したことある人であれば知ってると思います。
vmware_host_logbundle でmanifestを指定することで取得対象のログの範囲を決めることができます。
指定できるmanifestはESXi/vCenterのバージョンによって異なるため vmware_host_logbundle_info で確認します。

manifest playbook作成

manifest情報を取得するplaybookを作成します。

manifest取得の実行

これを実行してみます。

manifestの確認

取得したmanifest情報を確認します。

ここで確認する部分は id です。
例えばSystemのBaseを取得対象としたい場合は System:Base となります。

manifestを指定したplaybookの作成

以下のように manifests パラメーターに取得するサポートログに含めたい対象をリストで指定します。

これを実行すると指定したmanifestのみが含まれたサポートログのアーカイブが取得できます。
manifestはESXi/vCenterのバージョンで異なるので、それぞれのバージョンにあったPlaybookをテンプレートとして作っておくといいかと思います。

ちなみに、カンのいい人は既に分かったかもしれませんが、manifestはGUI上からも確認できます。
System:Base System:CoreDumps など以下画像にもありますね。

最後に補足ですがvCenter経由ではなくESXiを直接指定したい場合は hostname username password にESXi情報を指定してください 🙂

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください