はじめに
Playbooksについて仕組み、利用用途、注意点について整理します。
Playbooksとは
運用自動化ツールです。Prism CentralのIntelligent Operationsの機能として提供されています。
仕組み
以下の要素で成り立っています。
トリガー
- 自動化処理(アクション)を行うための契機を定義します。現在は6種類あります。
- 外部のシステムと連携させたい場合はWebhook、特定のアラートが発生した場合はAlerts Matching Criteriaを使用するのが良いでしょう。検証ではManualをよく使用します。
アクション
トリガーを元にどういった処理を実行するのか定義します。
次のような操作が可能です。
- VMへの操作
・VMへのリソース追加(CPU、メモリ、ディスク(拡張を含む))
・VMのリソース削除(CPU、メモリ)
・VMの電源ON、電源OFF、再起動
・VMのクローン
・VMのリカバリポイントの取得、リストア
・VMで任意のコマンドやスクリプトを実行
・CD-ROMからディスクを外す - 運用機能
・VM、ホスト、クラスターの情報取得
・メトリックの取得
・レポートの作成
・Forecastの作成 - クラスター外部のサーバへのアクセス
・IPアドレス指定でSSH接続(Linux OSを使用したサーバなど)
・IPアドレス指定でWinRM接続(Windows Serverなど) - 連携機能
・出力結果の一部を変数を用いて取得、任意のフォーマットで通知
・Eメール、Teams、Slackを使用可能 - アラートの作成や解決
・アラートの自動解決
・カスタムアラートの作成
・PagerDutyやServicenowへアラートを通知 - 自動化ツールへの連携
・Ansible TowerやPuppetのワークフローへ連携 - カテゴリの追加や削除
- Rest APIとの連携
・パーサー(String Parser)による成形も可能 - 指定された日数だけ次のアクションまで待機
・一日
・一週間
・一ヶ月
また、条件式に基づいた処理の分岐も可能です。
これ以外にもアクションがあります。
Playbooksの移植
作成したPlaybookはエクスポート及びインポートが可能なので、他のPrism Centralへの移植が容易です。
具体的な使用例
例えば、次のような運用を自動化することが可能です。
- VMのリソース増強や削減。サーバの管理者からの依頼でVMのCPU、メモリ、ディスクの増強を依頼された場合に、指定された日時でPlaybookを実行。リソース追加後のVMの詳細情報についてはTeamsの専用チャネルへ通知。Eメールで関係者にも実行結果やVMの詳細情報を連携。
- メンテナンス用のスクリプトを実行するCLIコマンドをSSH経由で毎週実行。実行結果と標準出力をSlackで連携。
- 特定のアラートが発生した場合に、任意のスクリプトやコマンドを実行。実行結果と標準出力をEメールで連携。
- アラートをPagerDutyなどの運用管理製品へ連携。
- Rest APIを用いたPrism Centralの各種操作。APIv4から非常に広範な操作が可能(※)。
- VMのI/Oが閾値を超過した場合にカテゴリを付与。そのカテゴリが付与されているStorage Policyが自動的に適用されることでI/Oの出力を抑制。VMのI/Oが閾値を下回った場合にはカテゴリを削除。
次のようにアクションで取得した情報は関数化されているので、Eメールなどで連携する場合に任意の情報のみを抜き出すことが可能です。
※APIv4については、https://www.nutanix.dev/api-reference-v4/を確認してください。
注意点
- 電源をONにしたままCPUやメモリを追加(hot-plug)する場合はOSの対応可否を事前に確認してください。
- CPUやメモリを削減する場合は、必ずVMの電源をOFFにする必要があります。
- VMのCPUには2種類のパラメータ(CPU、Cores per CPU)があります。Playbookで追加できるのはCPUのみです。
- AHVのベストプラクティスに書かれている通り、CPU、Cores per CPUのどちらを利用しても性能面は変わりません。そのためか知らないですが、Prism CentralはCores per CPUは1のまま、CPUを増やす仕様になっています(※)。
- カテゴリを削除する場合、Flow Network Securityで使用しているものは削除できません。
- CVM特有のコマンドはclusterコマンド、acliコマンドは実行可能です。使用ユーザーは前者はnutanix、後者はadminとなります。
- その他のコマンド(allssh,hostssh,ncliなど)はSSH接続では使用不可です。REST APIを使用しましょう。
(※)について、acli vm.getで確認してみました。
num_cores_per_vcpu: 1 num_threads_per_core: 1 num_vcpus: 14 num_vnuma_nodes: 0
その他
VMの設定面では、デフォルトでhot-plugが可能ですが、任意のVMに対して無効化することも可能です。
Nutanix Support & Insights
Nutanix Support & Insights
コメント