OCI CLI(EC2)

 

-- 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