You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CentOS 7裸金属服务器上手动运行cloud-init用户数据脚本?

可行的手动运行cloud-config方法(CentOS 7)

前提准备

  • 确保cloud-init已安装,未安装则执行:yum install -y cloud-init
  • 将你的cloud-config用户数据保存到本地文件,比如/tmp/user-data,必须以#cloud-config作为文件第一行

方法1:按需执行指定模块

如果只需要运行cloud-config中的特定模块(比如runcmd、packages),可以直接用cloud-init single指定模块:

  • 执行包安装/更新模块:cloud-init single --name=package_update_upgrade_install
  • 执行自定义命令模块:cloud-init single --name=runcmd
  • 可用模块列表可通过cloud-init modules --list查看

方法2:全流程执行完整cloud-config

如果需要完整执行cloud-config的所有配置(包括用户创建、SSH密钥配置等),按以下步骤操作:

  1. 重置cloud-init状态:cloud-init默认仅首次启动运行,需清理已生成的状态文件:
    rm -rf /var/lib/cloud/*
    
  2. 配置File数据源:创建配置文件指定用户数据路径:
    cat > /etc/cloud/cloud.cfg.d/90_datasource.cfg <<EOF
    datasource_list: [ File ]
    datasource:
      File:
        path: /tmp/user-data
    EOF
    
  3. 执行全流程初始化:
    cloud-init init
    cloud-init modules --mode=config
    cloud-init modules --mode=final
    
    也可直接重启服务器,cloud-init会在启动时自动读取指定用户数据并执行

注意事项

  • 执行前请备份服务器重要数据,避免cloud-config中的配置(如用户删除、文件覆盖)造成数据丢失
  • 所有操作需以root用户执行
  • CentOS 7自带的cloud-init版本较旧,部分新特性可能不支持,若遇兼容性问题,可尝试升级cloud-init(需注意依赖兼容性)

内容的提问来源于stack exchange,提问作者alex suru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:25:24