Nutanixの月額利用ならClara Cloud
  • Clara Cloudとは
  • プラン・スペック
    • 専有プラン
    • LGプラン(共有)
    • オプション一覧
  • コスト比較
  • Nutanixとは
  • パートナープログラム
  • 資料ダウンロード
  • お問い合わせ
  • Search
  • Menu Menu

acli の結果を json で出力して jq で必要なデータを取り出す

2018年3月23日/in Nutanix (テクニカル) /by markting-member

こんにちは。クララオンラインの吉村です。

今日は、acli を json で出力して、さらに jq で操作するところをやります。

やりたい事

Prism から 仮想マシンやクラスターの情報を確認できますが、やはりLinuxでサクッと確認したいという時があります。

AWSなどにパブリッククラウドに慣れていると特にそう感じるのではないでしょうか。

今回はそのような環境を整えるまでの手順です。

acli の出力を json にする

acli を操作すると、デフォルトでは以下のような出力になります。

[bash]

$ acli net.list
Network name Network UUID Type Identifier Subnet
Management f489f2cf-45e7-4afa-93b1-7a2982cc7742 kBridged 0
network_test 9b4c9c30-ad14-4664-9daf-969f2e9476ae kBridged 755 xxx.xxx.xxx.xxx./24
network_test_local 62008052-4685-4351-b1bb-621ae13edd96 kBridged 737 xxx.xxx.xxx.xxx./24
nutanix-global 7c760a59-4823-4e8c-9e54-a30a105a7bfc kBridged 737
test-900 c44c305e-28d7-452f-a268-224eff2acc10 kBridged 900 10.0.10.0/24

[/bash]

一覧性はありますが、機能的ではない感じですね。

 

そこで、こちらを json 形式で出力してみます。

やり方は簡単で、acli のすぐ後に、-o json オプションを指定します。

$ acli -o json net.list
{"status": 0, "data": [{"id": 0, "subnet": null, "type": "kBridged", "name": "Management", "uuid": "f489f2cf-45e7-4afa-93b1-7a2982cc7742"}, {"id": 755, "subnet": "xxx.xxx.xxx.xxx/24", "type": "kBridged", "name": "network_test", "uuid": "9b4c9c30-ad14-4664-9daf-969f2e9476ae"}, {"id": 737, "subnet": "xxx.xxx.xxx.xxx/24", "type": "kBridged", "name": "network_test_local", "uuid": "62008052-4685-4351-b1bb-621ae13edd96"}, {"id": 737, "subnet": null, "type": "kBridged", "name": "nutanix-global", "uuid": "7c760a59-4823-4e8c-9e54-a30a105a7bfc"}, {"id": 900, "subnet": "10.0.10.0/24", "type": "kBridged", "name": "test-900", "uuid": "c44c305e-28d7-452f-a268-224eff2acc10"}], "error": null}

 

json 形式で出力されましたが、出ました横長。

jsonを整形しよう

上記の通り、このままでは視認性が良くないので、見やすく整形します。

CVMには、json_reformat コマンドがインストール済みで、こちらでも整形はできるみたいですが、やはり jq コマンドをインストールしましょう。

こちらの方がネットにいっぱい情報有りますし、aws cli などで使い慣れているのではないでしょうか。

※ nutanix サポートでは、CVMにいかなるソフトウェアのインストールも許されていないので、自己責任でお願いします。

[bash]

## PATHを確認

$ echo $PATH
/home/nutanix/ncc/panacea/bin:/usr/lib/jvm/jre
1.8.0/bin:/home/nutanix/ncc/bin:/home/nutanix/kvm/bin:/home/nutanix/prism/cli:/usr/local/nutanix/cluster/lib/sg3utils/bin:/usr/local/nutanix/minerva/bin:/usr/local/nutanix/cluster/bin:/usr/local/nutanix/zookeeper/bin:/usr/local/nutanix/apache-cassandra/bin:/usr/local/nutanix/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

## いっぱい出てきますが、無難に /usr/local/bin/ にします。
$ cd /usr/local/bin

## jq コマンドをダウンロード
## CVM で yum インストールはしないです
$ wget http://stedolan.github.io/jq/download/linux64/jq
$ chmod +x jq

## PATH が通っているか確認
$ which jq
/usr/local/bin/jq

[/bash]

 

これで準備完了です。

では、先ほどの結果を整形してみましょう。

$ acli -o json net.list | jq '.'
{
 "status": 0,
 "data": [
 {
 "id": 0,
 "subnet": null,
 "type": "kBridged",
 "name": "Management",
 "uuid": "f489f2cf-45e7-4afa-93b1-7a2982cc7742"
 },
 {
 "id": 755,
 "subnet": "xxx.xxx.xxx.xxx/24",
 "type": "kBridged",
 "name": "network_test",
 "uuid": "9b4c9c30-ad14-4664-9daf-969f2e9476ae"
 },
 {
 "id": 737,
 "subnet": "xxx.xxx.xxx.xxx/24",
 "type": "kBridged",
 "name": "network_test_local",
 "uuid": "62008052-4685-4351-b1bb-621ae13edd96"
 },
 {
 "id": 737,
 "subnet": null,
 "type": "kBridged",
 "name": "nutanix-global",
 "uuid": "7c760a59-4823-4e8c-9e54-a30a105a7bfc"
 },
 {
 "id": 900,
 "subnet": "10.0.10.0/24",
 "type": "kBridged",
 "name": "test-900",
 "uuid": "c44c305e-28d7-452f-a268-224eff2acc10"
 }
 ],
 "error": null
}

良くなりましたね。

では、もうちょっと踏み込んで、jq を使って任意のデータのみを抽出してみます。

## ネットワーク一覧から、ネットワーク名のみを抽出
$ acli -o json net.list | jq '.data[].name'
"Management"
"network_test"
"network_test_local"
"nutanix-global"
"test-900"

## ネットワーク名 nutanix-global に属しているVM名一覧を表示
$ acli -o json net.list_vms nutanix-global | jq '.'
{
 "status": 0,
 "data": [
 {
 "macAddress": "50:6b:8d:3d:cb:8f",
 "ipAddress": null,
 "uuid": "9721d49f-d7da-47cd-92af-d43cfc64123a",
 "name": "for-ntnx-clara"
 },
 {
 "macAddress": "50:6b:8d:05:97:27",
 "ipAddress": null,
 "uuid": "34520b97-8fb7-4a14-b602-d26d6c6eaca2",
 "name": "test_clara01"
 }
 ],
 "error": null
}

## 上記のVM一覧結果から VM名のみを抽出
$ acli -o json net.list_vms nutanix-global | jq '.data[].name'
"for-ntnx-clara"
"test_clara01"

このような感じでjsonを整形すれば、いろいろ作業が捗りそうですね。

それでは、以上です。

 

Tags: acli
0 0 markting-member https://cloud.clara.jp/cms/wp-content/uploads/2020/04/claracloud_logo.png markting-member2018-03-23 18:37:002018-03-23 18:37:00acli の結果を json で出力して jq で必要なデータを取り出す
You might also like
Nutanixのクラスタ内のすべてのホストに同じ操作をする

カテゴリー

  • Nutanix (イベント・セミナー) (3)
  • Nutanix (テクニカル) (7)
  • Nutanix (ビジネス) (22)
  • その他 (1)
  • イベント・セミナー (7)
  • 未分類 (6)
  • 社員インタビュー (1)
    • グループインタビュー (1)

最新情報

  • 【出展】Nutanix .NEXT Japan 2019に出展しました2019年9月27日 - 12:02 pm
  • 【.NEXT Japan 2019レポート】橋下元大阪府知事の講演!~創造的破壊~2019年9月27日 - 11:12 am
  • 【9/13開催】「Nutanix .NEXT Japan 2019」レポート!2019年9月27日 - 11:01 am
  • Nutanixの基本知識。仮想マシンとは?2019年5月7日 - 5:26 pm
  • Nutanixの基本知識。クラウドとは?2019年5月7日 - 5:18 pm

サービスについて

Clara Cloudとは

プラン・スペック
– 専有プラン
– LGプラン(共有)
– オプション一覧

よくあるご質問

Nutanixとは

コスト比較

検討中のお客さま

資料ダウンロード

お問い合わせ

パートナーについて

パートナープログラム

パートナー相談・申込

ブログ

イベント・セミナー情報

Nutanixブログ

  • 会社概要
  • 情報セキュリティ基本方針
  • 個人情報の取り扱いについて
  • 約款・規約
  • サポートポリシー

 powered by CLARA ONLINE

© CLARA ONLINE, Inc.

ncli で CVM に公開鍵を登録してSSHアクセスする方法 Prism の UI 設定でログイン画面やFaviconを変更する
Scroll to top