Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Elastic Cloud Server/ Referência de API/ As API (recomendado)/ Gerenciamento de status/ Alteração de um SO de ECS (usando uma imagem com o Cloud-Init instalado)
Atualizado em 2022-11-08 GMT+08:00

Alteração de um SO de ECS (usando uma imagem com o Cloud-Init instalado)

Função

Esta API é usada para alterar um SO de ECS. Durante a reinstalação do disco do sistema usando uma nova imagem, os discos de dados do ECS permanecem inalterados.

Depois que essa API é chamada, o sistema desinstala o disco do sistema, usa a nova imagem para criar um disco do sistema e a anexa ao ECS. Desta forma, o SO é alterado.

Restrições

  • Você só pode usar uma imagem com o Cloud-Init ou o Cloudbase-Init instalado. Se a imagem não tiver Cloudbase-Init ou Cloudbase-init instalado, use a API descrita em Alteração de um SO de ECS (usando uma imagem sem o Cloud-Init instalado).
  • Apenas um ECS com um disco do sistema suporta a alteração do sistema operacional.
  • Você não tem permissão para executar outras operações ao mudar o sistema operacional. Caso contrário, a alteração do sistema operacional falhará.

URI

POST /v2/{project_id}/cloudservers/{server_id}/changeos

Tabela 1 descreve os parâmetros no URI.
Tabela 1 Descrição do parâmetro

Parâmetro

Obrigatório

Descrição

project_id

Sim

Especifica a ID do projeto.

Para obter detalhes de como conseguir o ID de domínio, consulte Obtenção de um ID de projeto.

server_id

Sim

Especifica a ID de ECS.

Solicitação

Tabela 2 descreve os parâmetros de solicitação.
Tabela 2 Parâmetros de solicitação

Parâmetro

Obrigatório

Tipo

Descrição

os-change

Sim

Object

Muda um OS de ECS. Para mais detalhes, consulte Tabela 3.

Tabela 3 descrição do campo os-change

Parâmetro

Obrigatório

Tipo

Descrição

adminpass

Não

String

Especifica a senha inicial do administrador de ECS.

O nome de usuário do administrador do Windows é Administrator e o nome de usuário do administrador do Linux é root.

A senha deve atender aos seguintes requisitos:

  • 8 a 26 caracteres
  • A senha deve conter pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, minúsculas, dígitos e caracteres especiais (!@$%^-_=+[{}]:,./?~#*).
NOTA:
  • A senha do ECS de Windows não pode conter o nome de usuário, o nome de usuário inverso ou mais de dois caracteres na mesma sequência que aparecem no nome de usuário.
  • Os ECSs do Linux podem usar user_data para injetar senhas. Nesse caso, o adminpass não está disponível.
  • Ou adminpass ou keyname está definido.
  • Se adminpass e keyname estiverem vazios, user_data em metadados deve ser definido.
  • Se você usar esse campo para alterar o sistema operacional de um ECS com o Cloud-Init instalado, a região na qual o ECS está implantado não suportará a alteração do sistema operacional autenticado por senha. Nesse caso, use autenticação de par de chaves.

keyname

Não

String

Especifica o nome do par de chaves.

As chaves podem ser criadas usando a API de criação de chaves (Criação e importação de um par de chaves SSH) ou obtidas usando a API de consulta de chaves SSH (Consulta de pares de chaves SSH).

userid

Não

String

Especifica o ID do usuário. Quando o parâmetro keyname está sendo especificado, o valor deste parâmetro é usado preferencialmente. Se esse parâmetro for deixado em branco, o ID do usuário no token será usado por padrão.

imageid

Sim

String

Especifica a ID da nova imagem no formato UUID.

Você pode obter o ID da imagem no console ou seguindo as instruções fornecidas em "Consultando imagens" na Referência de API do Image Management Service.

metadata

Não

Object

Especifica os metadados do ECS para o qual o sistema operacional deve ser alterado.

Para obter mais informações, consulte Tabela 4.

mode

Não

String

Especifica se o ECS suporta a alteração do SO quando o ECS estiver em execução.

Se o valor do parâmetro for withStopServer, o ECS oferecerá suporte a esse recurso. O sistema interrompe automaticamente o ECS e, em seguida, altera seu sistema operacional.

Tabela 4 descrição do campo de metadata

Parâmetro

Obrigatório

Tipo

Descrição

user_data

Não

String

Especifica os dados do usuário a serem injetados no ECS durante a criação. Texto e arquivos de texto podem ser injetados.

NOTA:
  • O conteúdo de user_data deve ser codificado com base64.
  • O tamanho máximo do conteúdo a ser injetado (antes da codificação) é de 32 KB.

Para obter mais detalhes, consulte Injetando dados do usuário nos ECS.

Exemplos

Antes da codificação base64:

  • Linux
    #! /bin/bash
    echo user_test >> /home/user.txt
  • Windows
    rem cmd
    echo 111 > c:\aaa.txt

Após a codificação base64:

  • Linux
    IyEgL2Jpbi9iYXNoDQplY2hvIHVzZXJfdGVzdCAmZ3Q7Jmd0OyAvaG9tZS91c2VyLnR4dA==
  • Windows
    cmVtIGNtZAplY2hvIDExMSA+IGM6XGFhYS50eHQ=

Resposta

Consulte Respostas (Tarefa).

Exemplo de solicitação

  • Exemplo de solicitação de URL
    POST https://{endpoint}/v2/{project_id}/cloudservers/{server_id}/changeos
  • Exemplo de solicitação 1 (usando uma senha para efetuar login remotamente em um ECS com o SO alterado)
    {
        "os-change": {
            "adminpass": "1qazXSW@", 
            "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
            "imageid": "e215580f-73ad-429d-b6f2-5433947433b0",
            "mode": "withStopServer"
        }
    }
  • Exemplo de solicitação 2 . (usando uma chave para efetuar login remotamente em um ECS com o SO alterado)
    {
        "os-change": {
            "keyname": "KeyPair-350b", 
            "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
            "imageid": "e215580f-73ad-429d-b6f2-5433947433b0"
        }
    }

Exemplo de resposta

Consulte Respostas (Tarefa).

Valores retornados

Consulte Valores retornados para solicitações gerais.

Códigos de erro

Consulte Códigos de erro.