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

CentOS裸金属环境下cloud-init仅执行重启命令的配置方法

CentOS裸金属环境下用cloud-init仅执行指定命令的配置步骤

1. 确认cloud-init已安装

未安装的话直接通过yum安装:
yum install -y cloud-init

2. 修改cloud.cfg,指定NoCloud数据源并禁用多余模块

编辑/etc/cloud/cloud.cfg,按以下内容调整:

# 指定数据源为NoCloud
datasource_list: [NoCloud]
datasource:
  NoCloud:
    # 本地配置文件存储路径,后续将在此创建配置文件
    seedfrom: /var/lib/cloud/seed/nocloud/
    # 禁用元数据网络查询,裸金属环境无需此操作
    disable_metadata: true

# 仅保留必要模块,禁用其他默认模块
cloud_config_modules:
 - runcmd
cloud_final_modules:
 - [scripts-user, always]

# 不需要默认创建用户时添加此配置
users: []
disable_root: false
ssh_pwauth: false

# 彻底禁用网络配置模块
network:
  config: disabled

3. 创建NoCloud的配置文件

先创建数据源目录:
mkdir -p /var/lib/cloud/seed/nocloud/

创建meta-data文件

该文件可仅定义实例ID,或直接为空:
echo "instance-id: nocloud-local-01" > /var/lib/cloud/seed/nocloud/meta-data

创建user-data(核心执行命令配置)

文件首行必须是#cloud-config,用于cloud-init识别:

#cloud-config
runcmd:
 - touch /root/hello.txt

如果需要每次重启都执行该命令,将runcmd替换为bootcmd即可(runcmd默认仅在首次启动执行一次)

4. 重置cloud-init状态(首次配置必须执行)

cloud-init会记录初始化状态,不重置的话重启可能不会触发配置执行:

cloud-init clean --logs
cloud-init init --local

5. 重启验证

重启服务器:
reboot

重启后检查目标文件是否存在:
ls -l /root/hello.txt

内容的提问来源于stack exchange,提问作者Lorenzo Bassi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:38:22