Especificar a imagem do SO da VM de um job

Nesta página, descrevemos como especificar a imagem do sistema operacional (SO) para as instâncias de máquina virtual (VM) em que um job é executado. Se você também quiser personalizar outras propriedades dos discos de inicialização do job, consulte Criar e executar um job que use discos de inicialização personalizados.

Para saber mais sobre as imagens do SO da VM e quais delas podem ser usadas, consulte Visão geral do ambiente do SO da VM.

Antes de começar

Criar e executar um job que usa uma imagem específica do SO da VM

Especifique a imagem do SO da VM ao criar um job selecionando um dos seguintes métodos:

  • Usar um modelo de instância do Compute Engine que especifique uma imagem do SO da VM. Se você quiser usar um modelo de instância de VM ao criar esse job, especifique a imagem do SO da VM no modelo de instância de VM. Para instruções, consulte Definir recursos do job usando um modelo de instância de VM.
  • Use o campo de imagem do SO da VM. Conforme as instruções a seguir explicam, é possível especificar a imagem do SO da VM no campo image usando a CLI gcloud ou a API Batch.

gcloud

  1. Crie um arquivo JSON que especifique os detalhes de configuração do job. Para especificar a imagem do SO da VM para o job, inclua o campo image.

    Por exemplo, para criar um job de script básico que use uma imagem específica do SO da VM, crie um arquivo JSON com o seguinte conteúdo:

    {
        "taskGroups": [
            {
                "taskSpec": {
                    "runnables": [
                        {
                            "script": {
                                "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                            }
                        }
                    ]
                },
                "taskCount": 3,
                "parallelism": 1
            }
        ],
        "allocationPolicy": {
          "instances": [
            {
              "policy": {
                "bootDisk": {
                  "image": "VM_OS_IMAGE_URI"
                }
              }
            }
          ]
        },
        "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    

    Substitua VM_OS_IMAGE_URI por um nome de recurso relativo da imagem do SO da VM. Use uma das seguintes opções:

    • Especifique um prefixo do Batch OS. Para usar a imagem mais recente de um SO em lote específico, use o seguinte formato:

      BATCH_OS_PREFIX
      

      Substitua BATCH_OS_PREFIX por um dos prefixos de imagem do SO da VM em lote. Por exemplo, batch-debian é o prefixo do SO Debian em lote.

    • Especificar uma família de imagens. Para usar a imagem mais recente de uma família de imagens específica, use o seguinte formato:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Substitua:

      • IMAGE_PROJECT_ID: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifique batch-custom-image.
      • IMAGE_FAMILY: a família de imagens, que inclui uma ou mais imagens específicas e representa o tipo e a versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO da VM do Batch, acesse uma lista de imagens do SO da VM.
    • Especifique uma versão de imagem. Para usar uma versão específica de uma imagem do SO da VM, use o seguinte formato:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Substitua:

      • IMAGE_PROJECT_ID: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifique batch-custom-image.
      • IMAGE_NAME: o nome da imagem, que representa uma versão específica de uma imagem do SO da VM. Por exemplo, para ver todas as versões de imagem do SO da VM do Batch, acesse uma lista de imagens do SO da VM.
  2. Para criar o job, execute o seguinte comando gcloud batch jobs submit:

    gcloud batch jobs submit JOB_NAME \
        --location LOCATION \
        --config JSON_CONFIGURATION_FILE
    

    Substitua:

    • JOB_NAME: o nome deste job.
    • LOCATION: o local deste job.
    • JSON_CONFIGURATION_FILE: o caminho para o arquivo JSON com os detalhes de configuração do job.

API

Para criar um job usando a API Batch, use o método jobs.create e especifique os detalhes de configuração do job. Para especificar a imagem do SO da VM para o job, inclua o campo image. Por exemplo, para criar um job de script básico que use uma imagem específica do SO da VM, faça a seguinte solicitação POST:

POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME

{
    "taskGroups": [
        {
            "taskSpec": {
                "runnables": [
                    {
                        "script": {
                            "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                        }
                    }
                ]
            },
            "taskCount": 3,
            "parallelism": 1
        }
    ],
    "allocationPolicy": {
      "instances": [
        {
          "policy": {
            "bootDisk": {
              "image": "VM_OS_IMAGE_URI"
            }
          }
        }
      ]
    },
    "logsPolicy": {
    "destination": "CLOUD_LOGGING"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto.
  • LOCATION: o local deste job.
  • JOB_NAME: o nome deste job.
  • VM_OS_IMAGE_URI: um nome de recurso relativo da imagem do SO da VM. Use uma das seguintes opções:

    • Especifique um prefixo do Batch OS. Para usar a imagem mais recente de um SO em lote específico, use o seguinte formato:
    BATCH_OS_PREFIX
    

    Substitua BATCH_OS_PREFIX por um dos prefixos de imagem do SO da VM em lote. Por exemplo, batch-debian é o prefixo do SO Debian em lote.

    • Especificar uma família de imagens. Para usar a imagem mais recente de uma família de imagens específica, use o seguinte formato:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Substitua:

      • IMAGE_PROJECT_ID: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifique batch-custom-image.
      • IMAGE_FAMILY: a família de imagens, que inclui uma ou mais imagens específicas e representa o tipo e a versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO da VM do Batch, acesse uma lista de imagens do SO da VM.
    • Especifique uma versão de imagem. Para usar uma versão específica de uma imagem do SO da VM, use o seguinte formato:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Substitua:

      • IMAGE_PROJECT_ID: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifique batch-custom-image.
      • IMAGE_NAME: o nome da imagem, que representa uma versão específica de uma imagem do SO da VM. Por exemplo, para ver todas as versões de imagem do SO da VM do Batch, acesse uma lista de imagens do SO da VM.

A seguir