用户数据
在Equinix Metal™ 上配置服务器时,您可以选择包含用户数据,这些数据可用于在服务器准备就绪后执行各种自动化任务,例如执行常用脚本、安装包或触发其他更高级的配置过程。
使用方法
Equinix Metal 用户数据基于 [开源项目 cloudbase-init,并正式支持两种用户数据格式。
用户数据脚本
脚本用于执行 shell 脚本,以 #! 开头表示 [Linux shell,或以 #ps1 开头表示 [Windows PowerShell。
- Debian/Ubuntu
- Windows
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get upgrade -y
apt-get install nginx -y
#ps1
New-Item C:/Users/Admin test.txt
Set-Content C:/Users/Admin/test.txt "Hello world"
$password = ConvertTo-SecureString "P@55w0rd!" -AsPlainText -Force
New-LocalUser -Name "user01" -Password $password
云配置数据
云配置数据 必须使用有效的 YAML 语法,并且以 #cloud-config 开头。
#cloud-config
package_upgrade: true
packages:
- nginx
对 #!<script> 和 #cloud-config 以外的格式的支持尚处于实验阶段。
使用用户数据进行配置
- Console
- CLI
- API
从 Metal 控制台配置服务器时,展开“可选设置”来添加用户数据。 > 用户数据选项卡。

将脚本粘贴到相应字段中。点击“立即部署”。脚本将在服务器配置过程中读取并执行。
从 CLI 配置服务器时,请使用 metal device create 命令,并使用 -u, --userdata 包含您的用户数据脚本,或者使用 -u, --userdata 包含指向本地计算机上包含用户数据脚本的文件的路径。
--userdata-file。
metal device create --project-id <project_UUID> --plan <server_type> --metro <metro_code> --operating-system <os_code> --userdata-file <local_file_path>
在 API 中进行配置时,向 projects/{id}/devices 端点发送 POST 请求,并在请求正文中使用 "userdata" 参数包含您的用户数据脚本。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>"
"userdata": <string>
}'
根据脚本的长度,在看到服务器处于“活动”状态后,留出一些时间让服务器配置过程执行。
管理用户数据
- Console
- CLI
- API
服务器的用户数据可以在服务器的“设置”选项卡下的“用户数据”中找到。

要从 CLI 检索服务器的用户数据,请使用 metal device get 命令,并指定 -o、--output 标志来检索完整的 json 输出,其中将包含 "userdata" 字段中的用户数据。
metal device get -i <device_id> -o json
要从 API 检索服务器的用户数据,请向 /devices/{id}/userdata 端点发送 GET 请求。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/devices/{id}/userdata
您还可以通过服务器的元数据端点访问用户数据。使用 SSH 连接到服务器并向 https://metadata.platformequinix.com/userdata 发送请求。
验证服务器上的用户数据
要验证存储在服务器上的用户数据,请在 /var/lib/cloud/instance/user-data.txt 处检查。
用户数据的服务器日志可在/var/log/cloud-init.log和/var/log/cloud-init-output.log处查看。
在配置后添加用户数据
在配置过程中,用户数据会在服务器首次启动时执行。您可以向已配置的服务器添加用户数据,但必须先重新安装服务器才能执行新的用户数据。
重新安装会造成中断,并且可能导致数据删除。请谨慎操作。
- Console
- CLI
- API
在服务器的“设置”选项卡下的“用户数据”中更新用户数据字段。

点击保存。新的用户数据将立即写入服务器并出现在服务器的元数据中,但只有在您执行服务器重新安装后才会生效。
要更新用户数据,请使用 metal device update 命令,并使用 -u, --userdata 包含您更新后的用户数据脚本,或者使用 --userdata-file 包含指向本地计算机上包含您更新后的用户数据脚本的文件的路径。
metal device update --project-id <project_UUID> --plan <server_type> --metro <metro_code> --operating-system <os_code> --userdata-file <local_file_path>
新的用户数据将被写入服务器并立即出现在服务器的元数据中,但直到您执行服务器重新安装后才会执行。
在 API 中进行配置时,向 projects/{id}/devices 端点发送 PUT 请求,并在请求正文中使用 "userdata" 参数包含更新后的用户数据脚本。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"userdata": <string>
}'
新的用户数据将被写入服务器并立即出现在服务器的元数据中,但直到您执行服务器重新安装后才会执行。