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

如何通过FortiManager API修改FortiGate主机名并同步至设备

解决FortiManager API修改主机名后未同步到设备及仪表板的问题

核心问题分析

你当前的API调用仅修改了FortiManager本地数据库中的CLI配置和设备显示名称,但未将修改后的配置推送到FortiGate设备,同时仪表板未触发状态刷新,导致变更未同步。

解决步骤

1. 修正设备名称修改的API参数

dvm/cmd/update/device调用需要明确指定待修改的设备(通过原名称或设备ID),而非直接传入新名称。正确的调用方式如下:

# 修正设备名称修改的API调用
fmg.fmgInstance.execute(
    "dvm/cmd/update/device", 
    adom="root",
    device=[{
        "name": old_hostname,  # 填写设备原名称或设备ID
        "new_name": new_hostname.upper()
    }]
)

2. 将修改后的配置安装到FortiGate设备

必须执行配置安装操作,把FMG中的配置变更推送到目标设备:

# 安装配置到设备(使用配置包方式)
fmg.fmgInstance.execute(
    "securityconsole/install/package",
    adom="root",
    package="default",  # 替换为你的实际配置包名称
    device=[new_hostname.upper()],
    flags=["install_device"]
)

如果是针对单设备的全局配置,也可使用更精准的接口:

# 安装单设备全局配置
fmg.fmgInstance.execute(
    "pm/config/install",
    adom="root",
    scope=[{
        "name": new_hostname.upper(),
        "vdom": "root"
    }],
    flags=["generate_script", "install_device"]
)

3. 刷新设备状态更新仪表板

配置安装完成后,触发设备状态同步,确保FMG仪表板获取最新信息:

# 刷新设备状态
fmg.fmgInstance.execute(
    "dvm/cmd/get/device",
    adom="root",
    filter=f"name='{new_hostname.upper()}'"
)

验证步骤

  • 登录FortiManager图形界面,检查设备列表中的设备名称是否更新
  • 登录FortiGate设备,执行get system global命令,确认hostname字段已变更

内容的提问来源于stack exchange,提问作者gozie onyia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:55:15