{"id":285,"date":"2021-01-26T23:03:00","date_gmt":"2021-01-26T23:03:00","guid":{"rendered":"https:\/\/adrianotanaka.com.br\/?p=285"},"modified":"2021-02-09T14:59:46","modified_gmt":"2021-02-09T14:59:46","slug":"comandos-uteis-para-o-oci-cli-instancias","status":"publish","type":"post","link":"https:\/\/adrianotanaka.com.br\/index.php\/2021\/01\/26\/comandos-uteis-para-o-oci-cli-instancias\/","title":{"rendered":"Comandos uteis para o oci-cli &#8211; Inst\u00e2ncias"},"content":{"rendered":"\n<p>Uma das ferramentas que mais gosto de trabalhar \u00e9 o oci-cli, e principalmente agora com a op\u00e7\u00e3o do Cloud Shell que autentica de forma autom\u00e1tica no seu tenancy, fica f\u00e1cil de levar os comandos para qualquer ambiente.<\/p>\n\n\n\n<p>Por isso resolvi compartilhar com voc\u00eas alguns comandos que utilizo no meu dia-a-dia para facilitar meu trabalho, nesse post vou concentrar os comandos para inst\u00e2ncias.<\/p>\n\n\n\n<p>Para facilitar sua vida, sugiro que exporte o ocid do compartimento onde voc\u00ea vai executar os comandos:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">export OCI_COMPARTMENT=ocid.xxxxx<\/pre>\n\n\n\n<p>Tamb\u00e9m recomendo rodar os comandos sem chamar o jq para ver quais campos ele retorna e assim ajustar \u00e0s suas necessidades.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Todas as inst\u00e2ncias do compartimento<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">oci compute instance list -c ${OCI_COMPARTMENT} <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Retornar a inst\u00e2ncia que possem o shape Standard.E2<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">oci compute instance list -c ${OCI_COMPARTMENT} | jq -r '.data[] | select(.\"shape\"|contains(\"VM.Standard.E2\"))' | jq -r '\"VM: \" + .\"display-name\" +\" Shape: \"+ .\"shape\"'<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Sa\u00edda<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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\"'\nVM: SRV-TEST-DISK Shape: VM.Standard.E2.4\nVM: openvp-srv Shape: VM.Standard.E2.1.Micro\nVM: srv-test-disk-intel Shape: VM.Standard.E2.1.Micro\nadriano_ta@cloudshell:~ (sa-saopaulo-1)$ <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Inst\u00e2ncia com seu respectivo IP<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">oci compute instance list-vnics -c ${OCI_COMPARTMENT} | jq -r '.data[] | [(.\"display-name\", .\"private-ip\")] | @tsv'\n<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Sa\u00edda<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">adriano_ta@cloudshell:~ (sa-saopaulo-1)$ oci compute instance list-vnics -c ${OCI_COMPARTMENT} | jq -r '.data[] | [(.\"display-name\", .\"private-ip\")] | @tsv'\nsrv-test-disk-intel     10.0.1.3\nSRV-TEST-DISK   10.0.1.2\nopenvpn-srv     10.0.1.4\nadriano_ta@cloudshell:~ (sa-saopaulo-1)$ <\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Inst\u00e2ncia de determinado SO<\/h3>\n\n\n\n<p>Para esse item, temos que primeiro gerar uma lista de ocids baseado no SO, nesse exemplo pego todas que possuam Oracle no nome:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">export IMGS=$(oci compute image list -c ${OCI_COMPARTMENT} | jq -r '.data[] | select(.\"operating-system\"|contains(\"Oracle\")) | (.id)')<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Gero isso em um arquivo:<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo \"$IMGS\" > imgs.txt<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">E o utilizo como par\u00e2metro:<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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'<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">E temos como sa\u00edda:<\/h5>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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'  \nSRV-TEST-DISK   RUNNING\nsrv-test-disk-intel     RUNNING\nadriano_ta@cloudshell:~ (sa-saopaulo-1)$ <\/pre>\n\n\n\n<p>As vezes a Oracle n\u00e3o exporta todas as imagens(para gerar o arquivo), ent\u00e3o recomendo sempre dar uma validada ou caso queira, voc\u00ea pode consultar <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.oracle.com\/en-us\/iaas\/images\/\" target=\"_blank\">aqui <\/a>os ocids dispon\u00edveis.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">For\u00e7ar o reinicio de uma inst\u00e2ncia<\/h3>\n\n\n\n<p>Tome bastante cuidado com esse comando pois ele \u00e9 o equivalente a puxar o cabo de energia da VM:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">oci compute instance action --action RESET --instance-id ocid1.XXXXXX<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Listar todas as inst\u00e2ncias com seu respectivo shape e configura\u00e7\u00f5es<\/h3>\n\n\n\n<p>Esse \u00e9 um dos que eu mais gosto, geralmente uso para listar as VMS e ter uma no\u00e7\u00e3o da configura\u00e7\u00e3o de CPU e mem\u00f3ria das VMs, tamb\u00e9m retorno o tipo de shape(Intel, AMD, Flex) para caso precise calcular o custo dela.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">oci compute instance list -c ${OCI_COMPARTMENT} | jq -r '.data[] | [(.\"display-name\",.\"shape\",.\"shape-config\".\"ocpus\",.\"shape-config\".\"memory-in-gbs\",.\"lifecycle-state\")] | @csv'<\/pre>\n\n\n\n<p>A sa\u00edda desse comando pode ser copiada e colada direto no Excel para uma analise mais detalhada.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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'\n\"SRV-TEST-DISK\",\"VM.Standard.E2.4\",4,32,\"RUNNING\"\n\"openvp-srv\",\"VM.Standard.E2.1.Micro\",1,1,\"RUNNING\"\n\"srv-test-disk-intel\",\"VM.Standard.E2.1.Micro\",1,1,\"RUNNING\"\nadriano_ta@cloudshell:~ (sa-saopaulo-1)$ <\/pre>\n\n\n\n<p><a href=\"https:\/\/medium.com\/appsflyer\/how-can-hello-world-program-effect-the-way-you-think-about-programing-3be5cefdaf8c\">Featured image from this page<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma das ferramentas que mais gosto de trabalhar \u00e9 o oci-cli, e principalmente agora com a op\u00e7\u00e3o do Cloud Shell que autentica de forma autom\u00e1tica no seu tenancy, fica f\u00e1cil de levar os comandos para qualquer ambiente. Por isso resolvi compartilhar com voc\u00eas alguns comandos que utilizo no meu dia-a-dia para facilitar meu trabalho, nesse [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":294,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"material-hide-sections":[],"footnotes":""},"categories":[8,6,1],"tags":[29],"class_list":["post-285","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oci","category-oracle","category-uncategorized","tag-cloud"],"_links":{"self":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/285","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=285"}],"version-history":[{"count":10,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/285\/revisions"}],"predecessor-version":[{"id":297,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/285\/revisions\/297"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/media\/294"}],"wp:attachment":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}