Comandos uteis para o oci-cli – Instâncias

Uma das ferramentas que mais gosto de trabalhar é o oci-cli, e principalmente agora com a opção do Cloud Shell que autentica de forma automática no seu tenancy, fica fácil de levar os comandos para qualquer ambiente.

Por isso resolvi compartilhar com vocês alguns comandos que utilizo no meu dia-a-dia para facilitar meu trabalho, nesse post vou concentrar os comandos para instâncias.

Para facilitar sua vida, sugiro que exporte o ocid do compartimento onde você vai executar os comandos:

export OCI_COMPARTMENT=ocid.xxxxx

Também recomendo rodar os comandos sem chamar o jq para ver quais campos ele retorna e assim ajustar às suas necessidades.

Todas as instâncias do compartimento

oci compute instance list -c ${OCI_COMPARTMENT} 

Retornar a instância que possem o shape Standard.E2

oci compute instance list -c ${OCI_COMPARTMENT} | jq -r '.data[] | select(."shape"|contains("VM.Standard.E2"))' | jq -r '"VM: " + ."display-name" +" Shape: "+ ."shape"'
Saída
adriano_ta@cloudshell:~ (sa-saopaulo-1)$ oci compute instance list -c ${OCI_COMPARTMENT} | jq -r '.data[] | select(."shape"|contains("VM.Standard.E2"))' | jq -r '"VM: " + ."display-name" +" Shape: "+ ."shape"'
VM: SRV-TEST-DISK Shape: VM.Standard.E2.4
VM: openvp-srv Shape: VM.Standard.E2.1.Micro
VM: srv-test-disk-intel Shape: VM.Standard.E2.1.Micro
adriano_ta@cloudshell:~ (sa-saopaulo-1)$ 

Instância com seu respectivo IP

oci compute instance list-vnics -c ${OCI_COMPARTMENT} | jq -r '.data[] | [(."display-name", ."private-ip")] | @tsv'
Saída
adriano_ta@cloudshell:~ (sa-saopaulo-1)$ oci compute instance list-vnics -c ${OCI_COMPARTMENT} | jq -r '.data[] | [(."display-name", ."private-ip")] | @tsv'
srv-test-disk-intel     10.0.1.3
SRV-TEST-DISK   10.0.1.2
openvpn-srv     10.0.1.4
adriano_ta@cloudshell:~ (sa-saopaulo-1)$ 

Instância de determinado SO

Para esse item, temos que primeiro gerar uma lista de ocids baseado no SO, nesse exemplo pego todas que possuam Oracle no nome:

export IMGS=$(oci compute image list -c ${OCI_COMPARTMENT} | jq -r '.data[] | select(."operating-system"|contains("Oracle")) | (.id)')
Gero isso em um arquivo:
echo "$IMGS" > imgs.txt
E o utilizo como parâmetro:
oci compute instance list -c ${OCI_COMPARTMENT} | jq -r --argjson ids "$(jq -R . imgs.txt | jq -s .)" '.data[] | select(."image-id" as $id | $ids | index($id)) | [."display-name",."lifecycle-state"]| @tsv'
E temos como saída:
adriano_ta@cloudshell:~ (sa-saopaulo-1)$ oci compute instance list -c ${OCI_COMPARTMENT} | jq -r --argjson ids "$(jq -R . imgs.txt | jq -s .)" '.data[] |   select(."image-id" as $id | $ids | index($id)) | [."display-name",."lifecycle-state"]| @tsv'  
SRV-TEST-DISK   RUNNING
srv-test-disk-intel     RUNNING
adriano_ta@cloudshell:~ (sa-saopaulo-1)$ 

As vezes a Oracle não exporta todas as imagens(para gerar o arquivo), então recomendo sempre dar uma validada ou caso queira, você pode consultar aqui os ocids disponíveis.

Forçar o reinicio de uma instância

Tome bastante cuidado com esse comando pois ele é o equivalente a puxar o cabo de energia da VM:

oci compute instance action --action RESET --instance-id ocid1.XXXXXX

Listar todas as instâncias com seu respectivo shape e configurações

Esse é um dos que eu mais gosto, geralmente uso para listar as VMS e ter uma noção da configuração de CPU e memória das VMs, também retorno o tipo de shape(Intel, AMD, Flex) para caso precise calcular o custo dela.

oci compute instance list -c ${OCI_COMPARTMENT} | jq -r '.data[] | [(."display-name",."shape",."shape-config"."ocpus",."shape-config"."memory-in-gbs",."lifecycle-state")] | @csv'

A saída desse comando pode ser copiada e colada direto no Excel para uma analise mais detalhada.

adriano_ta@cloudshell:~ (sa-saopaulo-1)$ oci compute instance list -c ${OCI_COMPARTMENT} | jq  -r '.data[] | [(."display-name",."shape",."shape-config"."ocpus",."shape-config"."memory-in-gbs",."lifecycle-state")] | @csv'
"SRV-TEST-DISK","VM.Standard.E2.4",4,32,"RUNNING"
"openvp-srv","VM.Standard.E2.1.Micro",1,1,"RUNNING"
"srv-test-disk-intel","VM.Standard.E2.1.Micro",1,1,"RUNNING"
adriano_ta@cloudshell:~ (sa-saopaulo-1)$ 

Featured image from this page

chevron_left
chevron_right