重装裸金属服务器操作系统
功能介绍
重装裸金属服务器的操作系统。快速发放裸金属服务器支持裸金属服务器数据盘不变的情况下,使用原镜像重装系统盘。重装操作系统支持密码或者密钥注入。
约束
- 使用私有镜像创建的裸金属服务器,请确保已经安装了Cloud-init(Linux镜像)或Cloudbase-init(Windows镜像)。如使用未安装Cloud-init或Cloudbase-init的镜像,该接口不能注入密钥或密码。公共镜像默认已安装Cloud-init或Cloudbase-init。
- 执行重装操作系统任务时,请勿并行执行其他任务,否则可能会引起重装操作系统失败。
- 关机状态或者重装操作系统失败的裸金属服务器,才能执行重装操作。
- 目前Windows镜像不支持注入密码,Linux镜像的user_data为加密后的密码。
调试
您可以在API Explorer中调试该接口。
URI
POST /v1/{project_id}/baremetalservers/{server_id}/reinstallos
参数 |
是否必选 |
描述 |
---|---|---|
project_id |
是 |
项目ID。 获取方式请参见获取项目ID。 |
server_id |
是 |
裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)API获取。 |
请求消息
- 请求参数
参数
是否必选
参数类型
描述
os-reinstall
是
Object
标记为重装裸金属服务器操作。详情请参见表2。
表2 os-reinstall字段数据结构说明 参数
是否必选
参数类型
描述
adminpass
否
String
裸金属服务器管理员帐号的初始登录密码。
其中,Linux管理员帐户为root,Windows管理员帐户为Administrator。
建议密码复杂度如下:
- 长度为8-26位。
- 密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种。
- 密码不能包含用户名或用户名的逆序。
说明:- 对于Windows裸金属服务器,不能包含用户名中超过两个连续字符的部分。
- 对于Linux裸金属服务器也可使用user_data字段实现密码注入,此时adminpass字段无效。
- adminpass和keyname不能同时有值。
- adminpass和keyname如果同时为空,此时,metadata中的user_data属性必须有值。
keyname
否
String
密钥名称。
密钥可以通过创建和导入SSH密钥(OpenStack原生)API创建,或者使用查询SSH密钥列表(OpenStack原生)API查询已有的密钥。
userid
否
String
用户ID(登录管理控制台,进入我的凭证,即可看到“用户ID”)。
metadata
否
Object
重装裸金属服务器的元数据。详情请参见表3。
表3 metadata字段数据结构说明 参数
是否必选
参数类型
描述
user_data
否
String
重装裸金属服务器过程中待注入的Linux镜像root密码,用户自定义初始化密码。
注:修改密码脚本需经base64编码。
建议密码复杂度如下:
- 长度为8-26位。
- 密码至少必须包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符(!@$%^-_=+[{}]:,./?)中的三种。
示例:
- 使用明文密码(存在安全风险),以密码cloud.1234为例:
1 2
#!/bin/bash echo 'root:Cloud.1234' | chpasswd ;
- 使用密码:
1 2
#!/bin/bash echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig/GpOkLcOhab9smJoLKYm/Tf9Hcwa6DpiPDhdHfGEAPajFmLZa0YDd910' | chpasswd -e
- 此脚本需经base64编码方式编码。
其中,$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig为密文密码,生成方法如下:
- 生成加密盐值
1 2
[root@test linux]# python -c "import crypt, getpass, pwd;print crypt.mksalt()" $6$V6azyeLwcD3CHlpY
- 根据盐值生成密文密码
1 2
[root@test linux]# python -c "import crypt, getpass, pwd;print crypt.crypt('Cloud.1234','\$6\$V6azyeLwcD3CHlpY')" $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig/GpOkLcOhab9smJoLKYm/Tf9Hcwa6DpiPDhdHfGEAPajFmLZa0YDd910
- 密文生成之后,修改密码脚本需经base64编码方式编码。
- 请求样例
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" } } }
响应消息
请参考任务Id的响应。
错误码
请参考错误码。
