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
Parámetro |
Obligatorio |
Descripción |
---|---|---|
project_id |
Sí |
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 |
Sí |
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
Sí
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:
- Genere un valor de la sal cifrado.
1 2
[root@test linux]# python -c "import crypt, getpass, pwd;print crypt.mksalt()" $6$V6azyeLwcD3CHlpY
- 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
- 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
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. |
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. |
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 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.