Skip to main content

实践教程

自定义数据

最近更新时间:2025-02-20 19:17:12

操作场景

User Data(用户自定义数据)是云服务器实例初始化阶段的核心配置能力,允许用户通过注入预设参数或自动化脚本实现系统级定制。该功能基于 Cloud-init 组件实现自动化配置解析,支持以下两种数据格式:

  • 推荐方案:采用 #cloud-config 声明式YAML格式(支持多阶段任务编排与结构化配置)
  • 兼容方案:标准Shell脚本格式(适用于快速执行命令序列)

通过User Data机制,用户可在创建云服务器时自动完成包括主机名设置、软件包安装、服务部署、文件生成等初始化操作,显著提升批量实例配置效率与一致性。

操作步骤

  1. 登录 云服务器控制台
  2. 在左侧导航树,选择“服务器”,跳转到云服务器列表页面。接着继续点击 “新建”。
  3. 跳转至云服务器购买页面,选择所需镜像后,在页面最下方的“高级定义”选项中展开,即可输入自定义数据,最大支持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