-- NSG
https://docs.oracle.com/ja-jp/iaas/Content/Network/Concepts/networksecuritygroups.htm#Network_Security_Groups
https://qiita.com/ryotkato/items/654fdd1a1e802c55ebbb
oci network nsg list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
oci network nsg create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--vcn-id ocid1.vcn.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--display-name nsg01
oci network nsg list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"display-name"==`'nsg01'`].id | [0]' \
--raw-output
oci network nsg rules list \
--nsg-id ocid1.networksecuritygroup.oc1.iad.000000000000000000000000000000000000000000000000000000000000
oci network nsg rules add --generate-full-command-json-input
oci network nsg rules add \
--nsg-id ocid1.networksecuritygroup.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--security-rules '[
{
"description": "nsgr01",
"direction": "INGRESS",
"isStateless": false,
"source": "0.0.0.0/0",
"protocol": "6",
"tcpOptions": {
"destinationPortRange": {
"max": 22,
"min": 22
}
}
},
{
"description": "nsgr02",
"direction": "EGRESS",
"isStateless": false,
"destination": "0.0.0.0/0",
"protocol": "all"
}
]'
oci network nsg rules list \
--nsg-id ocid1.networksecuritygroup.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--query 'data.id' \
--raw-output
oci network nsg rules remove \
--nsg-id ocid1.networksecuritygroup.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--security-rule-ids '[
"A9XE96",
"E9119C"
]'
oci network nsg delete \
--nsg-id ocid1.networksecuritygroup.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
-- キーペアはリソースとして管理されていない模様
-- ネットワークインターフェースはリソースとして管理されていない模様
-- プレイスメントグループはフォルトドメインが概念として近い
-- ブート・ボリューム
https://docs.oracle.com/ja-jp/iaas/Content/Block/Concepts/bootvolumes.htm
プラットフォーム・イメージまたはカスタム・イメージに基づいて
仮想マシン(VM)またはベア・メタル・インスタンスを起動すると、
そのインスタンスに対する新しいブート・ボリュームが同じコンパートメント内に作成されます。
oci iam availability-domain list
oci bv boot-volume list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci bv boot-volume list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?contains("display-name",`vm01`)].id | [0]' \
--raw-output
oci bv boot-volume create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--source-boot-volume-id ocid1.bootvolume.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--display-name bootvol01
oci bv boot-volume list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"display-name"==`'bootvol01'`].id | [0]' \
--raw-output
oci bv boot-volume delete \
--boot-volume-id ocid1.bootvolume.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
-- ブート・ボリュームのバックアップ
https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/backingupabootvolume.htm
oci bv boot-volume-backup list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci bv boot-volume-backup create \
--boot-volume-id ocid1.bootvolume.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--display-name bootvol01backup01
oci bv boot-volume-backup list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"display-name"==`'bootvol01backup01'`].id | [0]' \
--raw-output
oci bv boot-volume-backup delete \
--boot-volume-backup-id ocid1.bootvolumebackup.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
-- ブロック・ボリューム
https://docs.oracle.com/ja-jp/iaas/Content/Block/Concepts/overview.htm
oci bv volume list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci bv volume create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--size-in-gbs 50 \
--display-name vol01
oci bv volume list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"display-name"==`'vol01'`].id | [0]' \
--raw-output
oci bv volume delete \
--volume-id ocid1.volume.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
削除しても同一名称で残存する
oci compute volume-attachment list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000
ボリュームのアタッチ
oci compute volume-attachment attach \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--type paravirtualized \
--volume-id ocid1.volume.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--display-name vol01vm01
oci compute volume-attachment list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"display-name"==`'vol01vm01'`].id | [0]' \
--raw-output
ボリュームのデタッチ
oci compute volume-attachment detach \
--volume-attachment-id ocid1.volumeattachment.oc1.iad.anuwcljsv2q4x6qct7qvpmvyz5cyjggmdyzjhcc7fskyqeizdh4ckeigxe5a \
--force
-- ボリュームのバックアップ
https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/backingupavolume.htm
oci bv backup list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci bv backup create \
--volume-id ocid1.volume.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--display-name vol01backup01
oci bv backup list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"display-name"==`'vol01backup01'`].id | [0]' \
--raw-output
oci bv backup delete \
--volume-backup-id ocid1.volumebackup.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
-- インスタンス
imageIDの取得
oci compute image list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--all \
--query 'data.{"operating-system":"operating-system","operating-system-version":"operating-system-version","display-name":"display-name"}' \
--output=table
oci compute image list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--all \
--query 'data[?"display-name"==`'Oracle-Linux-9.2-2023.12.08-0'`].id | [0]' \
--raw-output
shapeの取得
oci compute shape list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--image-id ocid1.image.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--query 'sort_by(data, &"ocpus").{"shape":"shape","ocpus":"ocpus","memory-in-gbs":"memory-in-gbs"}' \
--output=table
oci compute instance list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci compute instance launch --generate-full-command-json-input
インスタンス起動
oci compute instance launch \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--subnet-id ocid1.subnet.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--assign-public-ip true \
--boot-volume-size-in-gbs 50 \
--display-name vm01 \
--fault-domain FAULT-DOMAIN-1 \
--image-id ocid1.image.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--nsg-ids '[
"ocid1.networksecuritygroup.oc1.iad.000000000000000000000000000000000000000000000000000000000000" \
]' \
--shape VM.Standard.E2.1 \
--ssh-authorized-keys-file "$HOME/.ssh/id_rsa.pub"
oci compute instance list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"display-name"==`'vm01'`].id | [0]' \
--raw-output
ssh -i $HOME/.ssh/id_rsa opc@192.0.2.1
oci compute instance list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"display-name"==`'vm01'`]."lifecycle-state" | [0]' \
--raw-output
インスタンス停止
oci compute instance action \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--action stop
インスタンス起動
oci compute instance action \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--action start
インスタンス削除
oci compute instance terminate \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
-- カスタム・イメージ
https://docs.oracle.com/en-us/iaas/tools/oci-cli/3.37.1/oci_cli_docs/cmdref/compute/image.html
oci compute image list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--all \
--query 'data.{"operating-system":"operating-system","operating-system-version":"operating-system-version","display-name":"display-name"}' \
--output=table
oci compute image create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--display-name image01 \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000
oci compute image list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--all \
--query 'data[?"display-name"==`'image01'`]."id" | [0]' \
--raw-output
oci compute image delete \
--image-id ocid1.image.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force