Oracle Cloud Infrastructure(OCI)上に作成したインスタンスについて、自インスタンスの基本的な情報を確認する方法。(検証してる時とか便利。unameとかと同じノリで使う)
コマンド
$ curl -L http://169.254.169.254/opc/v1/instance/
# IPアドレスは変えなくてOK
出力例(computeインスタンスで実施)
[opc@testinstance ~]$ curl -L http://169.254.169.254/opc/v1/instance/
{
"availabilityDomain" : "gype:PHX-AD-1",
"faultDomain" : "FAULT-DOMAIN-1",
"compartmentId" : "ocid1.compartment.oc1..XXXXXXXXXXX",
"displayName" : "testinstance",
"id" : "ocid1.instance.oc1.phx.XXXXXXXXXXX",
"image" : "ocid1.image.oc1.phx.XXXXXXXXXXX",
"metadata" : {
"ssh_authorized_keys" : "ssh-rsa XXXXXXX== XXXXXXX@XXXXXXX\n"
},
"region" : "phx",
"canonicalRegionName" : "us-phoenix-1",
"shape" : "VM.Standard2.1",
"state" : "Running",
"timeCreated" : 1534770022275
}
説明
- 「169.254.0.0/16」はOracle Cloudが内部で使うために予約してるIP
- 「169.254.169.254」はインスタンスのメタデータ取得用のIPアドレス
- Windowsの場合はブラウザで確認
- curlの「-L」オプションは、リダイレクトされても対応するよ、というやつ(つけなくても通る)
-L, --location
(HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX
response code), this option will make curl redo the request on the new place. If used together with -i, --include or -I, --head, headers from
all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl
to a different host, it won't be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the
amount of redirects to follow by using the --max-redirs option.
When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the
HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmod‐
ified method.
おまけ
- URLの後ろに項目指定するとそれだけ取れる
[opc@testinstance ~]$ curl http://169.254.169.254/opc/v1/instance/region
phx
- 'jq'コマンド(json出力をいい感じにいじるコマンド)を使っても同じことができる
[opc@testinstance ~]$ curl http://169.254.169.254/opc/v1/instance/ -s | jq -r '.region'
phx
※jqの"-r"オプションは、引用符("")を除いてrawで出力させるオプション
※curlの"-s"オプションは、進捗とかエラーメッセージとかを出力させないサイレントオプション
これをつけないと余計な出力が出ちゃう
[opc@testinstance ~]$ curl http://169.254.169.254/opc/v1/instance/ | jq -r '.region'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1027 100 1027 0 0 582k 0 --:--:-- --:--:-- --:--:-- 1002k
phx
参考
OCIマニュアル「Getting Instance Metadata」
https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/gettingmetadata.htm
以上