文档首页/ 云运维中心 COC/ 最佳实践/ 通过脚本修改ECS主机名
更新时间:2026-04-16 GMT+08:00
分享

通过脚本修改ECS主机名

什么是主机名

主机名hostname是用于标识网络中计算机、服务器等设备的名称,可以帮助用户和网络系统更方便地识别和访问特定的设备。

主机名使用场景如下:

  • 标识ECS实例:主机名用于区分不同的设备。您可以根据ECS的位置、用途、所有者等信息规划主机名,方便识别不同的ECS实例。
  • 日志和监控的来源标识:在日志和监控中,主机名可以作为事件发生的来源标识,精准定位产生事件的ECS实例,减少系统分析或故障排查时间,提升运维效率。
  • 方便配置管理:在配置网络服务、应用程序或系统设置时,可以通过自定义主机名替代难以记忆的IP地址。例如:配置同一VPC内ECS通过主机名进行通信

实践背景

在华为云ECS运维场景中,主机名是服务器身份标识、日志检索、监控告警、集群管理与自动化运维的核心字段。ECS创建时主机名由Cloud-init注入,随业务扩容、环境规整、集群迁移、合规审计等需求,常需单台/批量统一修改静态主机名,并确保重启不丢失、控制台与系统内一致、不影响业务稳定。

传统手动修改(hostnamectl、编辑/etc/hostname)存在以下痛点:

  • 重启后被Cloud-init还原,无法持久化;
  • 控制台与OS内不一致,运维识别混乱;
  • 批量操作效率低、易出错;
  • 权限、依赖缺失导致修改失败。

解决方案

基于COC云运维中心 + 脚本批量执行,实现ECS主机名在线标准化修改。

整体方案以COC为统一运维入口,通过预置/自定义标准化Shell脚本,对目标ECS批量下发执行,完成主机名修改、持久化配置、重启保护等操作,全程无需登录单台服务器,实现批量操作、过程可控、结果可查、风险可防。

方案核心优势:

  • 批量执行:一次选中多台ECS,统一下发脚本,大幅提升效率;
  • 统一规范:脚本固化修改逻辑,避免人工命令差异导致异常;
  • 可审计:COC记录脚本执行日志、执行结果、执行对象,满足审计要求。

约束与限制

  • 该功能依赖UniAgent。UniAgent是统一数据采集Agent,支持脚本下发和执行。

    若ECS未安装UniAgent,则无法修改主机名,详细内容,请参见为ECS安装UniAgent

  • 仅支持为Linux操作系统ECS修改主机名。

步骤一:创建自定义脚本

  1. 登录云运维中心
  2. 在左侧导航栏选择“资源运维 > 自动化运维”,进入自动化运维页面。
  3. 在“日常运维”模块单击“脚本管理”,进入脚本管理页面。
  4. 在“自定义脚本”页签中,单击“创建脚本”,进入创建脚本页面。
  5. 参考表1设置脚本基本信息。

    表1 基本信息参数说明

    参数

    本实践示例

    说明

    脚本名称

    修改虚拟机主机名称

    根据命名规则,自定义脚本的名称

    名称由中文、字母、数字、中划线、下划线组成,长度在3~100之间。

    企业项目

    default

    在下拉列表中选择脚本归属的企业项目。

    脚本创建成功后不能修改企业项目。

    脚本版本号

    1.0.0

    默认为1.0.0,可自定义填写脚本版本号,版本号格式为x.x.x。

    风险等级

    可选项“高”、“中”、“低”,请根据实际情况选择风险等级。

    脚本描述

    修改虚拟机主机名称

    对脚本进行描述。

    长度范围为1~256。

  6. 脚本类型选择Shell,脚本内容如下:

    #!/bin/bash
    # 从入参中获取主机名
    set +x
    hostname=${hostname}
    # 修改主机名
    hostnamectl set-hostname "$hostname"
    retCode=$?
    if [ $retCode -eq 0 ]; then
        echo "Modify hostname to ${hostname} successfully."
    else
        echo "Modify hostname to ${hostname} failed."
        exit 1
    fi

  7. 设置脚本入参,入参名称为hostname,入参值为ECS-host-01。

    注意:入参值即主机名只能由英文字母、数字及“.”、“-”组成,且“.”和“-”不能连续使用或出现在开头和结尾。
    图1 设置脚本入参

  8. 关闭“入库人工审核”。

    本示例只演示脚本基本功能,日常运维请评估操作风险,建议您配置审批流程。

  9. 单击“确定”,完成自定义脚本创建。

    脚本创建成功后,可以在脚本列表中查看脚本基本信息。

    图2 查看脚本

步骤二:执行脚本

  1. 在“自定义脚本”页签,选择步骤一:创建自定义脚本中创建的脚本,单击操作列的“执行”。
  2. 单击“添加实例”,选择需要修改主机账号的实例。

    其他参数保持默认值。

  3. 单击“确定”,确认执行信息后单击“确定”,开始执行脚本工单。

    页面将自动跳转至工单详情页面,等待任务执行完成。

    图3 查看脚本执行工单

步骤三:检查主机名是否修改成功

  1. 在左侧导航栏选择“资源运维 > 资源批量操作”,进入资源批量操作页面。
  2. 选择“弹性云服务器ECS > 执行命令”,进入执行命令页面。
  3. 单击“添加实例”,选择步骤二中修改主机账号的实例。
  4. 设置执行命令内容。

    • 操作系统选择Linux
    • 命令类型选择Shell
    • 输入命令:
      hostname
    图4 设置执行命令内容

  5. 单击“确定”,命令开始执行。

    执行完成后,可在“命令输出”栏查看命令执行结果。

    图5 查看主机名称

相关文档