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.
Atualizado em 2023-03-20 GMT+08:00

Reinstalação do SO do BMS

Função

Essa API é usada para reinstalar o SO do BMS. O SO dos BMSs que suportam o provisionamento rápido pode ser reinstalado usando a imagem original sem qualquer alteração nos discos de dados. A injeção de senha e par de chaves é suportada durante a reinstalação do SO.

Para verificar se um BMS é provisionado rapidamente, use a API do Consulta de detalhes sobre flavors e informações estendidas sobre flavors.

Esta API é uma API assíncrona. Chamar a API com sucesso indica que a tarefa foi entregue com sucesso. Para verificar se a tarefa foi bem-sucedida, use a API do Consulta do status de tarefas.

Restrições

  • Para BMSs criados a partir de imagens privadas, certifique-se de que o Cloud-Init (para Linux) ou o Cloudbase-Init (para Windows) tenha sido instalado para a imagem. Se uma imagem sem Cloud-Init ou Cloudbase-Init for usada, essa API não poderá injetar um par de chaves ou senha. Cloud-Init ou Cloudbase-Init foi instalado para imagens públicas por padrão.
  • Você não tem permissão para realizar outras operações ao reinstalar o SO. Caso contrário, a reinstalação do SO falhará.
  • Você pode reinstalar o SO apenas em um BMS que está parado ou para o qual a reinstalação do SO falhou.
  • As imagens do Windows não suportam injeção de senha. Uma senha criptografada será usada como o valor de user_data para imagens do Linux.

URI

POST /v1/{project_id}/baremetalservers/{server_id}/reinstallos

A Tabela 1 lista os parâmetros.
Tabela 1 Descrição do parâmetro

Parâmetro

Obrigatório

Descrição

project_id

Sim

Especifica o 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 o ID do BMS.

Você pode obter o ID do BMS no console do BMS ou usando a API do Consulta de BMSs (API OpenStack nativo).

Solicitação

  • Parâmetros de solicitação

    Parâmetro

    Obrigatório

    Tipo

    Descrição

    os-reinstall

    Sim

    Object

    Especifica a operação de reinstalação do SO do BMS. Para mais detalhes, consulte Tabela 2.

    Tabela 2 Descrição da estrutura de dados do campo os-reinstall

    Parâmetro

    Obrigatório

    Tipo

    Descrição

    adminpass

    Não

    String

    Especifica a senha de logon inicial da conta de administrador do BMS.

    O administrador do Linux é root e o administrador do Windows é Administrator.

    Os requisitos de complexidade de senha recomendados são os seguintes:

    • A senha contém 8 a 26 caracteres.
    • Contém pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, letras minúsculas, dígitos e caracteres especiais !@$%^-_=+[{}]:,./?
    • A senha não pode conter o nome de usuário ou o nome de usuário ao contrário.
    NOTA:
    • Para os BMSs do Windows, a senha não pode conter mais de dois caracteres consecutivos no nome de usuário.
    • Para BMSs do Linux, user_data pode ser usado para injetar uma senha. Neste caso, adminpass é inválido.
    • O adminpass ou o keyname podem ser definidos.
    • Se adminpass e keyname estiverem vazios, user_data em metadados deve ser definido.

    keyname

    Não

    String

    Especifica o nome do par de chaves.

    Você pode criar um par de chaves usando a API de Criação e importação de um par de chaves SSH (API OpenStack nativo) ou consultar pares de chaves existentes usando a API de Consulta de pares de chaves SSH (API OpenStack nativo).

    userid

    Não

    String

    Especifica o ID do usuário. Você pode obter o ID do usuário em My Credential no console de gerenciamento.

    metadata

    Não

    Object

    Especifica os metadados do BMS. Para mais detalhes, consulte Tabela 3.

    Tabela 3 Descrição da estrutura de dados do campo metadata

    Parâmetro

    Obrigatório

    Tipo

    Descrição

    user_data

    Não

    String

    Especifica a senha raiz da imagem do Linux injetada durante a reinstalação do SO do BMS. É uma senha inicial definida pelo usuário.

    Observação: o script de alteração de senha deve ser codificado usando Base64.

    Os requisitos de complexidade de senha recomendados são os seguintes:

    • Contém de 8 a 26 caracteres.
    • Contém pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, letras minúsculas, dígitos e caracteres especiais !@$%^-_=+[{}]:,./?

    Um exemplo é o seguinte:

    • Usar uma senha de texto não criptografado (arriscada em segurança), por exemplo, cloud.1234.
      1
      2
      #!/bin/bash 
      echo 'root:Cloud.1234' | chpasswd ;
      
    • Usar uma senha.
      1
      2
      #!/bin/bash 
      echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig/GpOkLcOhab9smJoLKYm/Tf9Hcwa6DpiPDhdHfGEAPajFmLZa0YDd910' | chpasswd -e
      
    • Este script deve ser codificado usando Base64.

    onde, $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig é a senha do texto cifrado, que pode ser gerada da seguinte forma:

    1. Gerar um valor de salt criptografado.
      1
      2
      [root@test linux]# python -c "import crypt, getpass, pwd;print crypt.mksalt()" 
      $6$V6azyeLwcD3CHlpY
      
    2. Gerar uma senha de texto cifrado com base no valor de salt.
      1
      2
      [root@test linux]# python -c "import crypt, getpass, pwd;print crypt.crypt('Cloud.1234','\$6\$V6azyeLwcD3CHlpY')" 
       $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig/GpOkLcOhab9smJoLKYm/Tf9Hcwa6DpiPDhdHfGEAPajFmLZa0YDd910
      
    3. Depois que o texto cifrado é gerado, o script de alteração de senha deve ser codificado usando Base64.
  • Exemplo de solicitação
    1
    POST https://{BMS Endpoint}/v1/bbf1946d374b44a0a2a95533562ba954/baremetalservers/cf2a8b97-b5c6-47ef-9714-eb27adf26e5b/reinstallos
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
        "os-reinstall": {
            "keyname": "KeyPair-350b", 
            "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
            "metadata": {
                  "user_data":  "IyEvYmluL2Jhc2gKZWNobyAncm9vdDokNiR0Y0pZamUkNGhhUHlNZFR4VWVHc2dTMWFmL1NsMm4vbXZzdy5wSFdjbTVBc084OWFhUFhGNXUvVnJ5OXJiYmZZSW45SmZac2k3SlRmd2Z6djJPbTBHRFZUZTd6RDEnIHwgY2hwYXNzd2QgLWU7"
            }
        }
    }
    

Resposta

  • Parâmetros de resposta
Tabela 4 Resposta normal

Parâmetro

Tipo

Descrição

job_id

String

Especifica o ID de tarefa retornada após a emissão de um comando de tarefa. O ID da tarefa pode ser usado para consultar o status de execução da tarefa.

Para obter detalhes sobre como consultar o status de execução da tarefa com base em job_id, consulte Consulta do status de tarefas.

Tabela 5 Resposta anormal

Parâmetro

Tipo

Descrição

error

Estrutura de dados do dicionário

Especifica o erro retornado quando um envio de tarefa encontra uma exceção. Para mais detalhes, consulte Tabela 6.

Tabela 6 Estrutura de dados de error

Parâmetro

Tipo

Descrição

message

String

Especifica a mensagem de erro.

code

String

Especifica o código de erro.

Exemplo de resposta

  • Resposta normal
{ 
    "job_id": "70a599e0-31e7-49b7-b260-868f441e862b" 
} 

Valores retornados

Valores normais

Valores retornados

Descrição

200

A solicitação foi processada com sucesso.

Para obter detalhes sobre outros valores retornados, consulte Códigos de status.

Códigos de erro

Consulte Códigos de erro.