NutanixのX-Playはこんな自動化機能だ～RPA出身者が語る～

こんにちは！NutanixでSEをしている中畑です。

- どうしたらIT基盤の運用を楽にできる？
- Nutanixで運用を効率化するには？
- X-Playってなに？

上記のような疑問にお答えします。

私は前職でRPAやAIによる業務自動化をしてきました。

現在も自動化の経験とNutanixのソリューションを駆使し運用の効率化を支援しています。

この経験からNutanixの自動化ソリューションであるX-Playについて解説しますよ。

参考にしてくださいね。

## 求められる業務効率化
世は正に業務効率化時代。

業務の自動化やデジタル化をあらゆる技術を駆使し実現しようとしています。

一般社団法人である[JUAS](https://juas.or.jp/)の調査によるとIT投資で1番解決したい課題は**業務プロセスの効率化**であると明らかにしました。

またIT予算の増加理由も**業務のデジタル化対応**がトップです。
![スクリーンショット 2024-12-06 103116.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/46509472-96ca-cbae-b7d4-e79818484f90.png)
参考：[企業IT動向調査報告書2024](https://juas.or.jp/library/research_rpt/)

業務の無駄を省き時間を創出、そして飲みに行く時間をどれだけ捻出できるかが現代の主テーマと言えるでしょう。

## 自動化によるメリット
業務を自動化できるとこんな良いことがあります。

- 生産性の向上
- 人件費の削減
- 従業員負荷の軽減
- 人的ミスの軽減
- 属人化の解消
### 生産性の向上
決まった時間でどれだけの成果をあげられるか。

定型的な作業は自動化して時間を作ればいいですよね。
### 人件費の削減
業務を自動化すれば残業せず帰れます。

自動化によって創出した時間でやることを全部終わらせればいいのです。

ただし残業代を稼ぎたい人は別です。

### 従業員負荷の軽減
反復的でつまらない作業が自動化できればもっと楽しい作業にシフトできますね。
### 人的ミスの軽減
自動化によって毎度決まったプロセスで勝手にやってくれます。

自動化は疲れ知らずですね。
### 属人化の解消
これも決まったプロセスなので誰が見ても誰がやっても同じプロセスで実行されます。

業務の引継ぎも簡単ですね。
## Nutanixの自動化ソリューション
Nutanixの管理ツールは効率化できる仕組みがいっぱい備わっています。

その中でもザ・自動化って感じのX-Playに焦点を当てましょう。

### X-Playとは
Nutanixクラスターの運用タスクを自動化できる機能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/76a83e25-a6ea-accb-bb81-ac5357964fb1.png)

トリガーとアクションさえ設定すれば自動化フローの完成です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/5c2af5f4-57c9-e5af-c6be-1657d7325ca5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/99eaa31c-6db1-1943-e48e-8b1661b0c8b9.png)
参考：[アクションの一覧](https://portal.nutanix.com/page/documents/details?targetId=Intelligent-Operations-Guide-vpc_2024_2:mul-playbook-actions-pc-r.html)

この作業フローを自動化してみたいと感じたらまずはX-Playからと思いましょう。

Prism Centralの左上プルダウンからCloud Manager>Intelligent Operations>Playbooksからいけます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/135e6bd8-2f6d-db5d-769c-46ff7ec119e3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/efeea1d2-cdb3-eb85-35cb-2b267fe8915a.png)
参考：[Task Automation - Playbooks](https://portal.nutanix.com/page/documents/details?targetId=Intelligent-Operations-Guide-vpc_2024_3:mul-automation-management-pc-c.html)
### X-Playのこんな良いこと
RPA出身からするとこんなことを思ってしまいます。
- すぐに始めたい
- 学習するのだるい
- 難しい開発ならしたくない

自動化したら楽だよなと思いつつも開発をするのは面倒と思うもの。

日頃の業務で忙しいですし。

けどNutanixのX-Playであればすぐに始められてすぐに自動化を実行させられます。

- インストール不要
- ほぼノーコード
- テンプレで即自動化

#### インストール不要
X-PlayはPrism Centralの機能として組み込まれています。

Nutanixを利用しているのであればPrsm Centralがすでに展開されているはずです。

追加で何かをインストールせずともすぐに始められますよ。

重い腰が少し軽くなりますね。
#### ほぼノーコード
画面操作で自動化のフローを開発できます。

RPAと全く一緒です。

自動化させたい作業を上から順に並べていくだけですよ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/97457c2f-7f65-4b17-f0c7-4be2c1cb092f.png)
クリックするだけ！

直感的な操作で開発できるので事前にガッツリ学習しなくてもよいのです。
#### テンプレで即自動化
開発すら煩わしいと思う人向けにテンプレートが用意されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/2fc3feb6-a195-10af-2896-c4459ec1dd0a.png)
上から
1. リソースが枯渇しそうな時にレポーティング
2. 過剰にメモリが割り当てらた仮想マシンからメモリを減設
3. 過剰にCPUが割り当てらた仮想マシンからメモリを減設
4. メモリ不足の仮想マシンにメモリを増設
5. CPU不足の仮想マシンにメモリを増設

例えば4つ目のテンプレだとこんな内容で仕上がっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/0ef18dbb-1018-484a-3a9e-7f6aba8fb0af.png)

上記の内容で自動化したい場合はちょこっと修正する程度で開発完了です。
### X-Playの自動化例
Nutanixのクラスター操作であれば基本なんでも自動化できます。

ですので運用管理をしている中でこの作業なら自動化できそうってのがあればX-Playで自動化を試してみましょう。

簡単なフローから試してみるのが成功の秘訣です。

イメージが出てこない人向けに例えばこんな自動化があったり。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/31eecfcd-6908-faa0-ffe4-76293073946a.png)

仮想マシンのリソースが過剰に割り当てられているとPrismからアラートされたタイミングでダッシュボードから該当の仮想マシンを確認します。

リソースの減設が必要と判断した場合にPlaybookを実行する事例ですね。

仮想マシンからCPUやメモリを減設する際は仮想マシンをOFFにして作業する必要があります。

しかし業務時間中はシステムを止められず、夜間や休日に実施しなくてはなりません。

そんな時にX-Playです。

X-Playであれば夜間や休日の特定の時間になったタイミングでPlaybookを実行させることができます。

担当者は減設作業をX-Playに任せて退勤。

実行結果を翌日の出勤時にメールやスラックで確認するだけでよいのです。
### X-Playで自動化してみる

上記の自動化事例を参考にPlaybookを作ってみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/31eecfcd-6908-faa0-ffe4-76293073946a.png)

せっかくなのでアラートのSlack通知、実行すべきかどうか判断するフェーズ、Slackによる実行完了通知も追加で自動化フローに組み込みます。

まずはトリガーの設定からやりましょう。

Alert PolicyはVM CPU Constrainedを選択し、目標VMは任意の項目を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/d5b60616-3677-486b-cd2d-236ca72453c8.png)

お次にSlackアクションを左のパネルに配置しTokenや通知を飛ばしたいチャンネル名、メッセージを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/45266eb8-fa5c-fc43-7254-db463162d937.png)

メッセージにあるSource Entityとは変数のことです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/fc727bfd-ba19-0e36-cdef-5af91d6dda4f.png)

いま作っているPlaybookの例だとAlertに引っかかった仮想マシンの名前をSource Entity Nameに入れてくれますよ。

Source Entityはパラメータから選択するだけなので難しい操作は要りません。

またSlackのToken作成方法はこちらをご参照ください。
参考：[Slackでアプリケーションを作成し、OAuth Tokenを発行するまで](https://qiita.com/kobayashi_ryo/items/a194e620b49edad27364)

通知はこんな感じで飛んできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/617d22c8-dd0d-2eeb-556c-e9ce84d61cf7.png)


Wait for Some Timeアクションをパネルに配置しWait forは任意の時間を設定（ここではデフォルト）、And ThenはStopにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/a37aeb38-037a-bb6d-ac26-81f8a929e5e9.png)

これで管理者が実行再開のボタンを押さない限り後続の自動化処理が走らないよう設定できました。

その間に管理者が該当の仮想マシンの様子を見て実行すべきかどうか判断できますね。

実行の再開はプレイブック>Playsの一覧からStatusがPausedになっているプレイブックを選択すると再開のボタンが見えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/0da5689c-40f3-fe61-efde-4e0f1868fdd7.png)
右上のボタン

ちなみにこの設定だと1440分の間で実行再開のボタンを押さないと自動化処理は中止されます。

Wait until Day Of Weekアクションをパネルに配置します。

ここでは休日にシステムを止められると想定してWait untilはSunday、Timeはなんとなく5:00 pmにしAnd ThenはResumeにしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/df1686ff-0d79-423f-f5b5-7652a980a3cd.png)

これでPlaybookは日曜の4:59pmまで実行を待機し5:00pmになったら後続の自動化処理を再開してくれます。

一応VM Recovery Pointアクションを追加しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/82d7a5db-179d-ce50-6744-72cc0552576c.png)

これでもし仮想マシンの減設作業をしている最中に何か問題が起きたとしても実行前の状態に復元できます。

Power Off VMアクションを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/6c079989-1830-c5c1-165a-c619e7486abd.png)

VM Reduce CPUアクションを追加しReduce byはPercentageかNumber、ここではNumberで2に設定しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/41f88956-713e-5a9a-c5d7-83ef2fdf6904.png)

Minimum Number of vCPUsも任意で。

ここでは4に設定しているので最低限この仮想マシンは4vCPUを持つことが保証されます。

Power On VMアクションを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/0ca6d941-2327-4041-223e-96564bb21f66.png)

最後にSlackアクションを追加しさっきと同様の設定をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/895ef85c-8fce-f5c1-7444-8d7b52372982.png)

月曜の朝にSlackの通知を確認しましたがしっかり実行されていましたね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3658714/1a280e65-f929-f3f4-1fdf-65463b58d042.png)

# 最後に
最後までご覧いただきありがとうございました。

要約です。

- 業務の効率化が求められる時代だよ
- 業務の自動化にはいろんなメリットがあるよ
- Nutanixも自動化ソリューションX-Playを持っているよ

Nutanixの自動化に興味がある人はお近くの営業やパートナさんにお声がけください。

それでは！