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.
Centro de ayuda> Elastic Cloud Server> Referencia de la API> API (recomendado)> Gestión de estado> Cambio de un SO de ECS (Uso de una imagen con Cloud-Init instalado)
Actualización más reciente 2022-11-08 GMT+08:00

Cambio de un SO de ECS (Uso de una imagen con Cloud-Init instalado)

Función

Esta API se utiliza para cambiar un SO de ECS. Durante la reinstalación del disco del sistema utilizando una nueva imagen, los discos de datos del ECS permanece sin cambios.

Después de llamar a esta API, el sistema desinstala el disco del sistema, usa la nueva imagen para crear un disco del sistema y lo conecta al ECS. De esta manera, se cambia el SO.

Restricciones

  • Solo puedes usar una imagen con Cloud-Init o Cloudbase-Init instalados. Si la imagen no tiene Cloudbase-Init ni Cloudbase-init instalados, utilice la API descrita en Cambio de un SO de ECS (Uso de una imagen sin Cloud-Init instalado).
  • Solo un ECS con un disco del sistema admite el cambio de SO.
  • No se le permite realizar otras operaciones al cambiar el SO. De lo contrario, cambiar el SO fallará.

URI

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

Tabla 1 describe los parámetros en el URI.
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, consulte Obtención de un ID de proyecto.

server_id

Especifica el ID de ECS.

Solicitud

Tabla 2 describe los parámetros de solicitud.
Tabla 2 Parámetros de solicitud

Parámetro

Obligatorio

Tipo

Descripción

os-change

Object

Cambia un SO de ECS. Para más detalles, consulte Tabla 3.

Tabla 3 Descripción del campo os-change

Parámetro

Obligatorio

Tipo

Descripción

adminpass

No

String

Especifica la contraseña inicial del administrador de ECS.

El nombre de usuario del administrador de Windows es Administrator y el nombre de usuario del administrador de Linux es root.

La contraseña debe cumplir los siguientes requisitos:

  • 8 a 26 caracteres
  • La contraseña debe contener al menos tres de los siguientes tipos de caracteres: letras mayúsculas, minúsculas, dígitos y caracteres especiales (!@$%^-_=+[{}]:,./?~#*).
NOTA:
  • La contraseña de ECS Windows no puede contener el nombre de usuario, el nombre de usuario al revés o más de dos caracteres en la misma secuencia que aparecen en el nombre de usuario.
  • Los ECS de Linux pueden usar user_data para inyectar contraseñas. En tal caso, adminpass no está disponible.
  • Se establece adminpass o keyname.
  • Si tanto adminpass como keyname están vacíos, se debe establecer user_data en metadatos.
  • Si utiliza este campo para cambiar el SO de un ECS con Cloud-Init instalado, la región en la que se implementa ECS no admite el cambio de SO autenticado por contraseña. En tal caso, utilice la autenticación de pares de claves.

keyname

No

String

Especifica el nombre del par de claves.

Las claves se pueden crear usando la API de creación de claves (Creación e importación de un par de claves SSH) u obtener usando la API de consulta de claves SSH (Consulta de pares de claves de SSH).

userid

No

String

Especifica el ID de usuario. Cuando se especifica el parámetro keyname, el valor de este parámetro se usa preferentemente. Si este parámetro se deja en blanco, el ID de usuario en el token se utiliza de forma predeterminada.

imageid

String

Especifica el ID de la nueva imagen en formato UUID.

Puede obtener el ID de la imagen desde la consola o siguiendo las instrucciones proporcionadas en "Consulta de imágenes" en Referencia de API de Image Management Service.

metadata

No

Object

Specifies the metadata of the ECS for which the OS is to be changed.

For more information, see Tabla 4.

mode

No

String

Especifica si ECS admite cambios de SO cuando se está ejecutando el ECS.

Si el valor del parámetro es withStopServer, ECS admite esta característica. El sistema detiene automáticamente el ECS y luego cambia su SO.

Tabla 4 Descripción del campo metadata

Parámetro

Obligatorio

Tipo

Descripción

user_data

No

String

Especifica los datos de usuario que se inyectarán en el ECS durante la creación. Se pueden inyectar archivos de texto y texto.

NOTA:
  • El contenido de user_data debe estar codificado con base64.
  • El tamaño máximo del contenido a inyectar (antes de la codificación) es de 32 KB.

Para obtener más información, consulte Inyección de datos de usuario en ECS.

Ejemplos

Antes de la codificación base64:

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

Después de la codificación base64:

  • Linux
    IyEgL2Jpbi9iYXNoDQplY2hvIHVzZXJfdGVzdCAmZ3Q7Jmd0OyAvaG9tZS91c2VyLnR4dA==
  • Windows
    cmVtIGNtZAplY2hvIDExMSA+IGM6XGFhYS50eHQ=

Respuesta

Consulte Respuestas (tarea)

Ejemplo de la solicitud

  • Ejemplo de solicitud de URL
    POST https://{endpoint}/v2/{project_id}/cloudservers/{server_id}/changeos
  • Ejemplo de solicitud 1 (usar una contraseña para iniciar sesión remotamente en un ECS con SO cambiado)
    {
        "os-change": {
            "adminpass": "1qazXSW@", 
            "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
            "imageid": "e215580f-73ad-429d-b6f2-5433947433b0",
            "mode": "withStopServer"
        }
    }
  • Ejemplo de solicitud 2 (usar una clave para iniciar sesión remotamente en un ECS con SO cambiado)
    {
        "os-change": {
            "keyname": "KeyPair-350b", 
            "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
            "imageid": "e215580f-73ad-429d-b6f2-5433947433b0"
        }
    }

Ejemplo de la respuesta

Consulte Respuestas (tarea)

Códigos de error

Consulte Códigos de error