Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-03-20 GMT+08:00

Reinstalación del SO de BMS

Función

Esta API se utiliza para reinstalar el SO de BMS. El SO de los BMS que soportan el aprovisionamiento rápido se puede volver a instalar usando la imagen original sin ningún cambio en los discos de datos. Se admite la inyección de contraseña y par de claves durante la reinstalación del SO.

Para comprobar si un BMS se aprovisiona rápidamente, usa la API de Consulta de detalles sobre variantes y la información de las variantes extendidas.

Esta API es una API asíncrona. Invocar a la API correctamente indica que la tarea se ha entregado correctamente. Para comprobar si la tarea es correcta, usa la API de Consulta de estados de tareas.

Restricciones

  • Para los BMS creados a partir de las imágenes privadas, asegúrese de que Cloud-Init (para Linux) o Cloudbase-Init (para Windows) se haya instalado para la imagen. Si se utiliza una imagen sin Cloud-Init o Cloudbase-Init, esta API no puede inyectar un par de claves o una contraseña. Cloud-Init o Cloudbase-Init se han instalado de forma predeterminada para las imágenes públicas.
  • No se le permite realizar otras operaciones al reinstalar el SO. De lo contrario, se producirá un error al reinstalar el SO.
  • You can reinstall the OS only on a BMS that is stopped or for which OS reinstallation has failed.
  • Las imágenes de Windows no admiten la inyección de contraseña. Se usará una contraseña cifrada como el valor de user_data para las imágenes de Linux.

URI

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

Tabla 1 enumera los parámetros.
Tabla 1 Descripción del parámetro

Parámetro

Obligatorio

Descripción

project_id

Especifica el ID del proyecto.

Para obtener más información sobre cómo obtener el ID del proyecto, consulte Obtención de un ID de proyecto.

server_id

Especifica el ID de BMS.

Puede obtener el ID de BMS desde la consola de BMS o usando la API de Consulta del BMS (API nativa de OpenStack).

Solicitud

  • Parámetros de solicitud

    Parámetro

    Obligatorio

    Tipo

    Descripción

    os-reinstall

    Object

    Especifica la operación de reinstalar el SO de BMS. Para obtener más información, véase Tabla 2.

    Tabla 2 Descripción de la estructura de datos de campo os-reinstall

    Parámetro

    Obligatorio

    Tipo

    Descripción

    adminpass

    No

    String

    Especifica la contraseña de inicio de sesión inicial de la cuenta de administrador de BMS.

    El administrador de Linux es root y el administrador de Windows es Administrator.

    Los requisitos de complejidad de contraseña recomendados son los siguientes:

    • La contraseña contiene de 8 a 26 caracteres.
    • Contiene al menos tres de los siguientes tipos de caracteres: letras mayúsculas, minúsculas, dígitos y characters especiales !@$%^-_=+[{}]:,./?
    • La contraseña no puede contener el nombre de usuario o el nombre de usuario al revés.
    NOTA:
    • Para los BMS de Windows, la contraseña no puede contener más de dos caracteres consecutivos en el nombre de usuario.
    • Para los BMS de Linux, se puede usar user_data para inyectar una contraseña. En este caso, adminpass no es válido.
    • Puede configurarse adminpass o keyname.
    • Si tanto adminpass como keyname están vacíos, se debe establecer user_data en metadatos.

    keyname

    No

    String

    Especifica el nombre del par de claves.

    Puedes crear un par de claves usando la API de Creación e importación de un par de claves de SSH (API nativa de OpenStack) o consultar los pares de claves existentes usando la API de Consulta de pares de claves de SSH (API nativa de OpenStack).

    userid

    No

    String

    Especifica el ID de usuario. Puede obtener el ID de usuario de My Credential en la consola de gestión.

    metadata

    No

    Object

    Especifica los metadatos del BMS. Para obtener más información, véase Tabla 3.

    Tabla 3 Descripción de la estructura de datos de campo metadata

    Parámetro

    Obligatorio

    Tipo

    Descripción

    user_data

    No

    String

    Especifica la contraseña de raíz de la imagen de Linux inyectada durante la reinstalación del SO de BMS. Es una contraseña inicial definida por el usuario.

    Note: El script de cambio de contraseña debe estar codificado con Base64.

    Los requisitos de complejidad de contraseña recomendados son los siguientes:

    • Contiene de 8 a 26 caracteres.
    • Contiene al menos tres de los siguientes tipos de caracteres: letras mayúsculas, minúsculas, dígitos y characters especiales !@$%^-_=+[{}]:,./?

    Un ejemplo es el siguiente:

    • Utilice una contraseña de texto sin formato (riesgo en la seguridad), por ejemplo, Cloud.1234.
      1
      2
      #!/bin/bash 
      echo 'root:Cloud.1234' | chpasswd ;
      
    • Use una contraseña.
      1
      2
      #!/bin/bash 
      echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig/GpOkLcOhab9smJoLKYm/Tf9Hcwa6DpiPDhdHfGEAPajFmLZa0YDd910' | chpasswd -e
      
    • Este script debe estar codificado usando Base64.

    donde, $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig es la contraseña de texto cifrado, que se puede generar de la siguiente manera:

    1. Genere un valor de la sal cifrado.
      1
      2
      [root@test linux]# python -c "import crypt, getpass, pwd;print crypt.mksalt()" 
      $6$V6azyeLwcD3CHlpY
      
    2. Genere una contraseña de texto cifrado basada en el valor de la sal.
      1
      2
      [root@test linux]# python -c "import crypt, getpass, pwd;print crypt.crypt('Cloud.1234','\$6\$V6azyeLwcD3CHlpY')" 
       $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig/GpOkLcOhab9smJoLKYm/Tf9Hcwa6DpiPDhdHfGEAPajFmLZa0YDd910
      
    3. Después de generar el texto cifrado, el script de cambio de contraseña debe codificarse usando Base64.
  • Ejemplo de la solicitud
    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"
            }
        }
    }
    

Respuesta

  • Parámetros de respuesta
Tabla 4 Respuesta normal

Parámetro

Tipo

Descripción

job_id

String

Especifica el ID de tarea devuelto después de ejecutar un comando de tarea. El ID de tarea se puede utilizar para consultar el estado de ejecución de la tarea.

Para obtener más información acerca de cómo consultar el estado de ejecución de la tarea basado en job_id, consulte Consulta de estados de tareas.

Tabla 5 Respuesta anormal

Parámetro

Tipo

Descripción

error

Dictionary data structure

Especifica el error devuelto cuando un envío de tareas encuentra una excepción. Para obtener más información, véase Tabla 6.

Tabla 6 Estructura de datos de error

Parámetro

Tipo

Descripción

message

String

Especifica el mensaje de error.

code

String

Especifica el código de error.

Ejemplo de la respuesta

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

Valores devueltos

Valores normales

Valores devueltos

Descripción

200

La solicitud se ha procesado correctamente.

Para obtener más información sobre otros valores devueltos, consulte Códigos de estado.

Códigos de error

Véase Códigos de error.