Skip to content

Instantly share code, notes, and snippets.

@oehrlis
Last active July 20, 2022 16:56
Show Gist options
  • Save oehrlis/6d85e7f2d1825ab91c29dfed14f21c0e to your computer and use it in GitHub Desktop.
Save oehrlis/6d85e7f2d1825ab91c29dfed14f21c0e to your computer and use it in GitHub Desktop.
Miscellaneous oci cli commands

Below you find a couple of oci cli commands and examples. Query syntax http://jmespath.org/examples.html#filters-and-multiselect-lists

list all activ compartments

oci iam compartment list --all --output table --compartment-id-in-subtree true \
--query "data [?\"lifecycle-state\" =='ACTIVE'].{Name:name,OCID:id}"

list all inactive compartments

oci iam compartment list --all --output table --compartment-id-in-subtree true \
--query "data [?\"lifecycle-state\" !='ACTIVE'].{Name:name,OCID:id}"

image list

oci compute image list --output table --query "data[*]".{"ocid:id,name:\"display-name\""} --compartment-id $ocid

Get OCID by Name Contains

oci compute instance list --query "data[?contains(\"display-name\",'kafka')]".{"ocid:id"} --compartment-id $ocid 

Get Public IP By Instance ID

oci compute instance list-vnics --query "data[*]"."{\"public-ip\":\"public-ip\"}" --instance-id $ocid

List running resources across tenant

oci search resource free-text-search --text RUNNING --query "data[].{Name:\"display-name\",state:\"lifecycle-state\",id:id}"

List Public IP for all Jumphosts

oci compute instance list-vnics --all --compartment-id $COMPARTMENT_OCID --output table --query "data[?contains(\"hostname-label\",'jump')].{\"Name\":\"hostname-label\",\"IP\":\"public-ip\"}"

List Compute instance in compartment (name, state)

oci compute instance list --compartment-id $COMPARTMENT_OCID --output table --query "data[].{\"Name\":\"display-name\",\"State\":\"lifecycle-state\"}"

Get Compartment OCID

export TRAINING_NAME="O-AI"
oci iam compartment list \
    --compartment-id-in-subtree true --all \
    --raw-output --query "data [?name == '${TRAINING_NAME}'].id|[0]"

List Compute instance in compartment (name, state)

export TRAINING_NAME="O-AI"
oci compute instance list --compartment-id $(oci iam compartment list \
    --compartment-id-in-subtree true --all --raw-output --query "data [?name == '${TRAINING_NAME}'].id|[0]") \
    --output table --query "data[].{\"Name\":\"display-name\",\"State\":\"lifecycle-state\"}"

Get OCI Stacks in Compartment

export TRAINING_NAME="O-SEC-EUS"
oci resource-manager stack list --compartment-id $(oci iam compartment list \
    --compartment-id-in-subtree true --all \
    --raw-output --query "data [?name == '${TRAINING_NAME}'].id|[0]")
    
export TRAINING_NAME="O-SEC-EUS"
oci resource-manager stack list --compartment-id $(oci iam compartment list \
    --compartment-id-in-subtree true --all \
    --raw-output --query "data [?name == '${TRAINING_NAME}'].id|[0]") --query-text "query all resources where (    \
               freeformTags.key   = ZipOrigin1'"

Initiate OCI Stack destroy job

oci resource-manager job create-destroy-job --execution-plan-strategy AUTO_APPROVED --stack-id $stack_ocid

List OCI Stack Job Information

oci resource-manager job get --job-id ocid1.ormjob.oc1.eu-zurich-1.aaaaaaaaqyoysezik4lmvlwfzkanzgq6zyvs4nyb2t3pbfjoguz4exf3xkoq

Delete OCI Stack

oci resource-manager stack delete --stack-id $stack_ocid

Search for OCI Stacks with DeleteDay Tag

oci search resource structured-search \
--query-text "query OrmStack resources where (definedTags.namespace = 'Schedule' && definedTags.key = 'DeleteDay')" \
--query "data.items[].{Name:\"display-name\",OCID:identifier,DeleteDay:\"defined-tags\".Schedule.DeleteDay}"
@swiftclouddbs
Copy link

Thank you! Just getting started with the cli. This gives a clue as to where things can go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment