Transição de gcutil para gcloud compute


Com a gcloud compute em disponibilidade geral, o Compute Engine recomenda que todos os utilizadores façam a transição para a ferramenta gcloud compute a partir da gcutil. gcloud compute é uma ferramenta de linha de comandos unificada que apresenta várias melhorias em relação ao gcutil, incluindo:

  • Preenchimento com tab
  • Atualização no local
  • Ajuda extensa no estilo de páginas de manual
  • Escolha de diferentes formatos de saída

Para ajudar os utilizadores a fazerem a transição do gcutil para o gcloud compute, este guia descreve brevemente as principais alterações entre as duas ferramentas. Para uma descrição detalhada da ferramenta gcloud compute, consulte a documentação gcloud compute.

Novos comandos gcloud

Todos os comandos gcutil existentes têm comandos equivalentes na ferramenta gcloud compute, com algumas exceções. Pode consultar uma lista completa dos comandos gcloudvisitando as páginas de referência ou executando gcloud compute --help. A tabela abaixo descreve resumidamente as alterações dos comandos populares do gcutil.

comando gcutil comando gcloud compute
gcutil addinstance INSTANCE
gcloud compute instances create INSTANCE
Notas

Cria uma instância.

  • Pode definir a zona/região predefinida. Caso contrário, o comando `gcloud compute` pede uma zona/região.
  • Cria máquinas virtuais com propriedades predefinidas, como:
    • machine-type: n1-standard-1
    • image: debian-10

Consulte o artigo Criar e iniciar uma instância.

comando gcutil comando gcloud compute
gcutil deleteinstance INSTANCE
gcloud compute instances delete INSTANCE \
       [--keep-disks {boot,all,none}]
Notas

Elimina instâncias. Consulte o artigo Eliminar uma instância.

comando gcutil comando gcloud compute
gcutil ... --cache_flag_values
gcloud configs set project PROJECT
gcloud configs set compute/zone ZONE
gcloud configs set compute/region REGION
Notas

Define os valores predefinidos para o projeto, a zona e a região. Consulte o artigo Definir uma zona e uma região predefinidas.

comando gcutil comando gcloud compute
gcutil push/pull
gcloud compute scp
Notas

Copia ficheiros entre um computador local e uma máquina virtual. Consulte o artigo Transfira ficheiros através da CLI do Google Cloud.

comando gcutil comando gcloud compute
gcutil deleteRESOURCE
gcloud compute RESOURCES delete
Notas

Elimina recursos, por exemplo:

gcloud compute instances delete example-instance
comando gcutil comando gcloud compute
gcutil getRESOURCES
gcloud compute RESOURCES describe
Notas

Descreve um único recurso, por exemplo:

gcloud compute instances describe example-instance

comando gcutil comando gcloud compute
gcutil listRESOURCES
gcloud compute RESOURCES list
Notas

Liste todos os recursos desse tipo. Por exemplo, para listar instâncias:

gcloud compute instances list

comando gcutil comando gcloud compute
gcutil setmetadata
gcloud compute instances add-metadata
gcloud compute instances remove-metadata
gcloud compute project-info add-metadata
gcloud compute project-info remove-metadata
Notas

O bloqueio otimista é agora feito pela ferramenta, pelo que não é necessário especificar uma impressão digital manualmente. Consulte o artigo Definir metadados de instâncias personalizadas.

comando gcutil comando gcloud compute
gcutil … --dump_request_response

Ainda não está disponível.

comando gcutil comando gcloud compute
gcutil … --log_level=DEBUG
gcloud … --verbosity debug
Notas

Além disso, os registos são armazenados em ficheiros para cada comando em ~/.config/gcloud/logs.

comando gcutil comando gcloud compute
gcutil ssh INSTANCE --ssh_user
gcloud compute ssh USER@INSTANCE
Notas

Consulte o artigo Associar-se a uma instância.

comando gcutil comando gcloud compute
gcutil … \
--image=projects/project-id/global/images/image
gcloud compute … --image image-name \
       --image-project image-project
Notas

Consulte o artigo Iniciar uma instância a partir de uma imagem.

comando gcutil comando gcloud compute
gcutil deleteinstances --[no]delete_pd
gcutil deleteinstances --[no]delete_boot_pd
gcloud compute instances delete … \
       --delete-disks {all,none,boot}
gcloud compute instances delete … \
       --keep-disks {all,none,boot}
Notas

Se um disco estiver marcado para eliminação automática, é eliminado automaticamente, a menos que seja especificado através da flag --keep-disks.

Predefinições da instância

A criação de uma instância no gcloud compute tem agora vários valores predefinidos fornecidos para a imagem e o tipo de máquina da sua máquina virtual. Pode optar por usar estes valores predefinidos omitindo os indicadores --image e --machine-type ou pode substituir as definições indicando os indicadores adequados. As predefinições da máquina virtual são:

  • Imagem predefinida: imagem mais recente do Debian 10
  • Tipo de máquina predefinido: n1-standard-1

Por exemplo, pode simplesmente executar:

gcloud compute instances create example-instance --zone us-central1-a

O comando gcloud compute cria a instância com a imagem e o tipo de máquina descritos acima.

Formatação da saída

A formatação de saída predefinida foi alterada e difere consoante o comando que executar. Por exemplo, se executar o comando describe para obter informações sobre um único recurso, a saída da resposta está no formato YAML. Pode devolver a resposta em diferentes formatos de saída, como JSON ou texto, usando a flag --format:

gcloud compute instances list --format {json,yaml,text}

A atualização de metadados é agora aditiva

Quando define ou atualiza metadados, já não precisa de fornecer uma impressão digital. Por predefinição, todas as alterações de metadados são consideradas aditivas. Pode adicionar entradas de metadados únicas ou atualizar entradas sem fazer uma atualização em lote de todos os metadados. Apenas as chaves de metadados transmitidas vão ser alteradas.

gcloud compute instances add-metadata example-instance \
         --metadata cookies=chocolate

Especificar projetos de imagens

Anteriormente, para especificar uma imagem exata, tinha de fornecer um URI de imagem parcial, que incluía o nome do projeto, da seguinte forma:

gcutil addinstance example-instance \
         --image=projects/debian-cloud/global/images/debian-9

Em gcloud compute, tem agora de especificar o projeto de imagem através de uma nova sinalização --image-project:

gcloud compute instances create example-instance \
         --image debian-9-stretch-vYYYMMDD
         --image-project debian-cloud

Também pode indicar o URI completo:

gcloud compute instances create example-instance \
         --image https://compute.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-9-stretch-vYYYMMDD