LoginSignup
1
1

More than 3 years have passed since last update.

Oracle Cloud [OCI]: oci-cliを使いVMの一覧をタグで絞り込み出力する

Posted at

Cloudの様々なリソースに対して、タグ付けを行い管理を行うことがあるかと思います。
今回はOCIのComputeにFreeform-tagを付与した後、"--query"オプションを用いて特定のタグの値のインスタンスの情報のみをoci-cliで出力する方法を記載します。

"--query"オプションは、JMESPathのクエリを使うことで、出力結果をフィルタリングするオプションで、
下記のサイトがとてもわかりやすいです。

JMESPATH式

今回はAlways Free環境で試しました。

■参考にさせて頂いた記事
コマンドライン(CLI)でOCIを操作する - Oracle Cloud Infrastructureアドバンスド

Oracle Cloud(OCI)のcliのinput/outputで使うjsonに慣れる

作業手順

1.Computeインスタンスにタグを付与
2.付与したタグの確認
3.動作確認

今回使用したサービスと技術

・OCI Compute
・OCI Tagging
・oci-cli

著者の環境

Mac OS X 10.15.7
Oracle Cloud Always Free環境

1.Computeインスタンスにタグを付与

今回はOracle Cloud Always Free環境にて、2つのインスタンスを作成し、
各インスタンスとタグ・ネームスペース、タグ・キー、値を下表のように設定します。

インスタンス作成時に「CreatedBy」タグと「CreatedOn」タグが自動生成されますが、
今回はフリーフォーム・タグを使用して、絞り込み出力を行います。

インスタンス名 タグ・ネームスペース タグ・キー
FreeVM1 なし(フリーフォーム・タグ) Project test
FreeVM2 なし(フリーフォーム・タグ) Project dev

タグの追加方法
インスタンスの詳細画面上部にある「他のアクション」ボタンをクリックします。
「タグの追加」が表示されますので、選択します。
compute-tag1.jpg

このリソースに1つ以上のタグを追加 ダイアログボックスが表示されます。
タグ・ネームスペースを選択し、タグ・キー、値を入力後、「タグの追加」をクリックします。
compute-tag2.jpg

■Computeインスタンスの作成方法
今回は作成方法を割愛いたしましたが、こちらの記事がとてもわかりやすいです。
【OCI】oracle cloud -仮想マシン(Compute)作成編-【初心者向け】

2.追加したタグの確認

インスタンスの詳細画面で、画面上部に表示される「タグ」タブを選択します。
デフォルト表示では「定義されたタグ」が表示されているため、「フリーフォーム・タグ」タブを選択します。
前項で追加したタグ・キーと値が表示されていることを確認します。

compute-tag3.jpg 

3.動作確認

ターミナルから下記コマンドを入力します。
値はバッククォートで囲む必要があります。

シングルクォートで囲んだ場合は「Query returned empty result, no output to show.」と表示されてしまい、情報を取得することができませんのでご注意ください。

oci compute instance list --query 'data[?"freeform-tags".Project == `test`]'

2つのインスタンスのうち、Projectタグの値がtestとなっている、FreeVM1のみが出力されていることを確認します。

[
  {
    "agent-config": {
      "is-management-disabled": false,
      "is-monitoring-disabled": false
    },
    "availability-config": {
      "recovery-action": "RESTORE_INSTANCE"
    },
    "availability-domain": "ToKy:US-ASHBURN-AD-1",
    "compartment-id": "ocid1.tenancy.oc1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "dedicated-vm-host-id": null,
    "defined-tags": {
      "Oracle-Tags": {
        "CreatedBy": "oracleidentitycloudservice/ipaccho@xxx.xxx",
        "CreatedOn": "2020-07-30T01:03:03.890Z"
      }
    },
    "display-name": "FreeVM1",
    "extended-metadata": {},
    "fault-domain": "FAULT-DOMAIN-3",
    "freeform-tags": {
      "Project": "test"
    },
    "id": "ocid1.instance.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "image-id": "ocid1.image.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "instance-options": {
      "are-legacy-imds-endpoints-disabled": false
    },
    "ipxe-script": null,
    "launch-mode": "PARAVIRTUALIZED",
    "launch-options": {
      "boot-volume-type": "PARAVIRTUALIZED",
      "firmware": "UEFI_64",
      "is-consistent-volume-naming-enabled": true,
      "is-pv-encryption-in-transit-enabled": false,
      "network-type": "PARAVIRTUALIZED",
      "remote-data-volume-type": "PARAVIRTUALIZED"
    },
    "lifecycle-state": "RUNNING",
    "metadata": {
      "ssh_authorized_keys": "ssh-rsa xxxxxxxxxxxxxxxxxxxxx== ipaccho@MacBook-Pro.local"
    },
    "region": "iad",
    "shape": "VM.Standard.E2.1.Micro",
    "shape-config": {
      "gpu-description": null,
      "gpus": 0,
      "local-disk-description": null,
      "local-disks": 0,
      "local-disks-total-size-in-gbs": null,
      "max-vnic-attachments": 1,
      "memory-in-gbs": 1.0,
      "networking-bandwidth-in-gbps": 0.48,
      "ocpus": 1.0,
      "processor-description": "2.0 GHz AMD EPYC\u2122 7551 (Naples)"
    },
    "source-details": {
      "boot-volume-size-in-gbs": null,
      "image-id": "ocid1.image.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "kms-key-id": null,
      "source-type": "image"
    },
    "system-tags": {
      "orcl-cloud": {
        "free-tier-retained": "true"
      }
    },
    "time-created": "2020-07-30T01:03:04.754000+00:00",
    "time-maintenance-reboot-due": null
  }
]

参考

■oci-cli公式マニュアル
OCI CLI Command Reference 2.21.1 list

■OCI公式ドキュメント
タグ付けの概要

■jmespath公式サイト
JMESPath

再掲

■参考にさせて頂いた記事
コマンドライン(CLI)でOCIを操作する - Oracle Cloud Infrastructureアドバンスド

Oracle Cloud(OCI)のcliのinput/outputで使うjsonに慣れる

JMESPATH式

【OCI】oracle cloud -仮想マシン(Compute)作成編-【初心者向け】

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1