自定义数据
最近更新时间:2025-02-20 19:17:12
操作场景
User Data(用户自定义数据)是云服务器实例初始化阶段的核心配置能力,允许用户通过注入预设参数或自动化脚本实现系统级定制。该功能基于 Cloud-init 组件实现自动化配置解析,支持以下两种数据格式:
- 推荐方案:采用 #cloud-config 声明式YAML格式(支持多阶段任务编排与结构化配置)
- 兼容方案:标准Shell脚本格式(适用于快速执行命令序列)
通过User Data机制,用户可在创建云服务器时自动完成包括主机名设置、软件包安装、服务部署、文件生成等初始化操作,显著提升批量实例配置效率与一致性。
操作步骤
- 登录 云服务器控制台。
- 在左侧导航树,选择“服务器”,跳转到云服务器列表页面。接着继续点击 “新建”。
- 跳转至云服务器购买页面,选择所需镜像后,在页面最下方的“高级定义”选项中展开,即可输入自定义数据,最大支持32KB。

YAML格式(推荐)
#cloud-config
# 必须包含的文件头声明
# 基础系统配置
hostname: my-server
fqdn: my-server.example.com
# 用户管理
users:
- name: admin
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC...your-public-key
sudo: ['ALL=(ALL) NOPASSWD:ALL']
# 软件包管理
package_update: true
package_upgrade: true
packages:
- nginx
- docker-ce
# 文件写入
write_files:
- path: /etc/motd
content: |
Welcome to QingCloud Cloud Server
Managed via Cloud-init
# 执行命令
runcmd:
- [ systemctl, enable, docker ]
- [ docker, run, -d, -p, 80:80, nginx ]
Shell脚本格式
#!/bin/sh
# 标准Shell脚本(支持bash/sh等解释器)
# 设置主机名
hostnamectl set-hostname my-server
# 安装软件包
apt-get update && apt-get install -y nginx
# 写入文件
cat > /etc/motd <<EOF
Welcome to QingCloud Cloud Server
Managed via UserData Script
EOF
# 启动服务
systemctl enable docker
docker run -d -p 80:80 nginx
调试建议
成功创建服务器后,您可执行以下命令,查看脚本执行日志:
/var/log/cloud-userdata.log