fortinet.fortios.fortios_system_ha 模块 – 在 Fortinet 的 FortiOS 和 FortiGate 中配置 HA。

注意

此模块是 fortinet.fortios 集合 (版本 2.3.8) 的一部分。

如果您使用的是 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install fortinet.fortios。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:fortinet.fortios.fortios_system_ha

fortinet.fortios 2.0.0 中的新增功能

概要

  • 此模块能够通过允许用户设置和修改系统功能和 HA 类别来配置 FortiGate 或 FortiOS (FOS) 设备。示例包括所有参数,在使用前需要将值调整为数据源。已在 FOS v6.0.0 上测试。

要求

执行此模块的主机需要以下要求。

  • ansible>=2.15

参数

参数

注释

access_token

字符串

基于令牌的身份验证。从 FortiGate 的 GUI 生成。

enable_log

布尔值

启用/禁用任务的日志记录。

选项

  • false ← (默认)

  • true

member_path

字符串

要操作的成员属性路径。

如果有多个属性,则以斜杠字符分隔。

标记有 member_path 的参数对于执行成员操作是合法的。

member_state

字符串

在指定的属性路径下添加或删除成员。

指定 member_state 时,将忽略 state 选项。

选项

  • "present"

  • "absent"

system_ha

字典

配置 HA。

arps

整数

无用 ARP 的数量 (1 - 60)。降低以减少流量。提高以减少故障转移时间。

arps_interval

整数

无用 ARP 之间的时间 (1 - 20 秒)。降低以减少故障转移时间。提高以减少流量。

authentication

字符串

启用/禁用心跳消息身份验证。

选项

  • "enable"

  • "disable"

auto_virtual_mac_interface

列表 / 元素=字典

将分配自动生成的虚拟 MAC 地址的物理接口。

interface_name

字符串 / 必需

接口名称。来源 system.interface.name。

backup_hbdev

列表 / 元素=字典

备份心跳接口。对于所有成员必须相同。

name

字符串 / 必需

接口名称。来源 system.interface.name。

check_secondary_dev_health

字符串

在 HA A-A 模式下启用/禁用会话负载均衡的辅助设备健康检查。

选项

  • "enable"

  • "disable"

cpu_threshold

字符串

动态加权负载均衡 CPU 使用权重以及高低阈值。

encryption

字符串

启用/禁用心跳消息加密。

选项

  • "enable"

  • "disable"

evpn_ttl

整数

主设备上的 HA EVPN FDB TTL (5 - 3600 秒)。

failover_hold_time

整数

在故障转移之前等待的时间 (0 - 300 秒),以避免切换。

ftp_proxy_threshold

字符串

动态加权负载均衡权重以及 FTP 代理会话的高低数量。

gratuitous_arps

字符串

启用/禁用无用 ARP。如果启用了 link-failed-signal,则禁用。

选项

  • "enable"

  • "disable"

group_id

整数

HA 组 ID (0 - 1023;或者当存在多个 vcluster 时为 0 - 7)。对于所有成员必须相同。

group_name

字符串

集群组名称。对于所有成员必须相同。

ha_direct

字符串

启用/禁用使用 ha-mgmt 接口用于 syslog、远程身份验证 (RADIUS)、FortiAnalyzer、FortiSandbox、sFlow 和 Netflow。

选项

  • "enable"

  • "disable"

ha_eth_type

字符串

HA 心跳数据包 Ethertype (4 位十六进制)。

ha_mgmt_interfaces

列表 / 元素=字典

保留接口以管理各个集群单元。

dst

字符串

保留的 HA 管理接口的默认路由目标。

gateway

字符串

保留的 HA 管理接口的默认路由网关。

gateway6

字符串

保留的 HA 管理接口的默认 IPv6 网关。

id

整数 / 必需

表 ID。请参阅 <a href=’#notes’>备注</a>。

interface

字符串

保留用于 HA 管理的接口。来源 system.interface.name。

ha_mgmt_status

字符串

启用以保留接口以管理各个集群单元。

选项

  • "enable"

  • "disable"

ha_uptime_diff_margin

整数

通常,您只会在故障转移测试中降低此值。

hb_interval

整数

发送心跳数据包之间的时间 (1 - 20)。增加以减少误报。

hb_interval_in_milliseconds

字符串

发送心跳数据包之间的时间间隔单位。默认为 100ms。

选项

  • "100ms"

  • "10ms"

hb_lost_threshold

整数

丢失的心跳数以发出故障信号 (1 - 60)。增加以减少误报。

hbdev

列表 / 元素=字符串

心跳接口。对于所有成员必须相同。

hc_eth_type

字符串

透明模式HA心跳数据包Ethertype(4位十六进制)。

hello_holddown

整数

从hello状态切换到工作状态前的等待时间(5-300秒)。

http_proxy_threshold

字符串

动态加权负载均衡权重以及HTTP代理会话的高低数量。

imap_proxy_threshold

字符串

动态加权负载均衡权重以及IMAP代理会话的高低数量。

inter_cluster_session_sync

字符串

启用/禁用HA集群之间会话的同步。

选项

  • "enable"

  • "disable"

ipsec_phase2_proposal

列表 / 元素=字符串

IPsec阶段2提案。

选项

  • "aes128-sha1"

  • "aes128-sha256"

  • "aes128-sha384"

  • "aes128-sha512"

  • "aes192-sha1"

  • "aes192-sha256"

  • "aes192-sha384"

  • "aes192-sha512"

  • "aes256-sha1"

  • "aes256-sha256"

  • "aes256-sha384"

  • "aes256-sha512"

  • "aes128gcm"

  • "aes256gcm"

  • "chacha20poly1305"

key

字符串

密钥。

l2ep_eth_type

字符串

Telnet会话HA心跳数据包Ethertype(4位十六进制)。

字符串

故障转移后启用关闭所有接口1秒。如果免费ARP没有更新网络,请使用此选项。

选项

  • "enable"

  • "disable"

load_balance_all

字符串

启用以负载均衡TCP会话。禁用以仅负载均衡代理会话。

选项

  • "enable"

  • "disable"

logical_sn

字符串

启用/禁用逻辑序列号的使用。

选项

  • "enable"

  • "disable"

memory_based_failover

字符串

启用/禁用基于内存的故障转移。

选项

  • "enable"

  • "disable"

memory_compatible_mode

字符串

启用/禁用内存兼容模式。

选项

  • "enable"

  • "disable"

memory_failover_flip_timeout

整数

后续基于内存的故障转移之间等待的时间(分钟)(6-2147483647)。

memory_failover_monitor_period

整数

触发基于内存的故障转移之前的高内存使用持续时间(秒)(1-300)。

memory_failover_sample_rate

整数

为了测量内存使用情况而对内存使用情况进行采样的速率(秒)(1-60)。

memory_failover_threshold

整数

触发基于内存的故障转移的内存使用阈值(0表示使用system.global中的节约模式阈值)。

memory_threshold

字符串

动态加权负载均衡内存使用权重以及高低阈值。

mode

字符串

HA模式。所有成员必须相同。FGSP需要独立模式。

选项

  • "standalone"

  • "a-a"

  • "a-p"

monitor

列表 / 元素=字符串

检查端口监控(或链路故障)的接口。来源system.interface.name。

multicast_ttl

整数

主设备上的HA多播TTL(5-3600秒)。

nntp_proxy_threshold

字符串

动态加权负载均衡权重以及NNTP代理会话的高低数量。

override

字符串

启用并提高始终应为主设备(主设备)的单元的优先级。

选项

  • "enable"

  • "disable"

override_wait_time

整数

如果启用覆盖,则延迟协商(0-3600秒)。减少集群协商的频率。

password

字符串

集群密码。所有成员必须相同。

pingserver_failover_threshold

整数

远程IP监控故障转移阈值(0-50)。

pingserver_flip_timeout

整数

远程IP监控故障转移后重新协商之前的等待时间(分钟)。

pingserver_monitor_interface

列表 / 元素=字符串

检查远程IP监控的接口。来源system.interface.name。

pingserver_secondary_force_reset

字符串

远程IP监控故障转移后启用强制集群协商。

选项

  • "enable"

  • "disable"

pingserver_slave_force_reset

字符串

远程IP监控故障转移后启用强制集群协商。

选项

  • "enable"

  • "disable"

pop3_proxy_threshold

字符串

动态加权负载均衡权重以及POP3代理会话的高低数量。

priority

整数

提高优先级以选择主单元(0-255)。

route_hold

整数

路由表更新到集群之间的等待时间(0-3600秒)。

route_ttl

整数

主单元路由的TTL(5-3600秒)。增加此值可在故障转移期间保持活动路由。

route_wait

整数

向集群发送新路由之前的等待时间(0-3600秒)。

schedule

字符串

A-A负载均衡的类型。如果您有外部负载均衡器,请使用none。

选项

  • "none"

  • "leastconnection"

  • "round-robin"

  • "weight-round-robin"

  • "random"

  • "ip"

  • "ipport"

  • "hub"

secondary_vcluster

字典

配置虚拟集群2。

monitor

列表 / 元素=字符串

检查端口监控(或链路故障)的接口。来源system.interface.name。

override

字符串

启用并提高始终应为主设备的单元的优先级。

选项

  • "enable"

  • "disable"

override_wait_time

整数

如果启用覆盖,则延迟协商(0-3600秒)。减少集群协商的频率。

pingserver_failover_threshold

整数

远程IP监控故障转移阈值(0-50)。

pingserver_monitor_interface

列表 / 元素=字符串

检查远程IP监控的接口。来源system.interface.name。

pingserver_secondary_force_reset

字符串

远程IP监控故障转移后启用强制集群协商。

选项

  • "enable"

  • "disable"

pingserver_slave_force_reset

字符串

远程IP监控故障转移后启用强制集群协商。

选项

  • "enable"

  • "disable"

priority

整数

提高优先级以选择主单元(0-255)。

vcluster_id

整数

集群ID。

vdom

字符串

虚拟集群2中的VDOM。

session_pickup

字符串

启用/禁用会话接续。启用它可以减少故障转移时会话停机时间。

选项

  • "enable"

  • "disable"

session_pickup_connectionless

字符串

启用/禁用UDP和ICMP会话同步。

选项

  • "enable"

  • "disable"

session_pickup_delay

字符串

启用同步超过30秒的会话。只有较长时间的会话需要同步。

选项

  • "enable"

  • "disable"

session_pickup_expectation

字符串

启用/禁用FGSP的会话辅助程序预期会话同步。

选项

  • "enable"

  • "disable"

session_pickup_nat

字符串

启用/禁用FGSP的NAT会话同步。

选项

  • "enable"

  • "disable"

session_sync_dev

列表 / 元素=字符串

将会话同步进程卸载到内核,并直接使用已连接的接口同步会话。来源system.interface.name。

smtp_proxy_threshold

字符串

动态加权负载均衡权重以及SMTP代理会话的高低数量。

ssd_failover

字符串

启用/禁用SSD磁盘故障时的自动HA故障转移。

选项

  • "enable"

  • "disable"

standalone_config_sync

字符串

启用/禁用FGSP配置同步。

选项

  • "enable"

  • "disable"

standalone_mgmt_vdom

字符串

启用/禁用独立管理VDOM。

选项

  • "enable"

  • "disable"

sync_config

字符串

启用/禁用配置同步。

选项

  • "enable"

  • "disable"

sync_packet_balance

字符串

启用/禁用HA数据包到多个CPU的分配。

选项

  • "enable"

  • "disable"

unicast_gateway

字符串

单播接口的默认路由网关。

unicast_hb

字符串

启用/禁用单播心跳。

选项

  • "enable"

  • "disable"

unicast_hb_netmask

字符串

单播心跳子网掩码。

unicast_hb_peerip

字符串

单播心跳对端IP。

unicast_peers

列表 / 元素=字典

单播对端数量。

id

整数 / 必需

表 ID。请参阅 <a href=’#notes’>备注</a>。

peer_ip

字符串

单播对端IP。

unicast_status

字符串

启用/禁用单播连接。

选项

  • "enable"

  • "disable"

uninterruptible_primary_wait

整数

主HA单元在辅助HA单元被认为已升级并且系统已启动之前等待的时间(分钟)(15-300),然后启动自己的升级。

uninterruptible_upgrade

字符串

启用此选项可在不阻塞网络流量的情况下升级集群。

选项

  • "enable"

  • "disable"

upgrade_mode

字符串

升级集群的模式。

选项

  • "simultaneous"

  • "uninterruptible"

  • "local-only"

  • "secondary-only"

vcluster

列表 / 元素=字典

虚拟集群表。

monitor

列表 / 元素=字符串

检查端口监控(或链路故障)的接口。来源system.interface.name。

override

字符串

启用并提高始终应为主设备(主设备)的单元的优先级。

选项

  • "enable"

  • "disable"

override_wait_time

整数

如果启用覆盖,则延迟协商(0-3600秒)。减少集群协商的频率。

pingserver_failover_threshold

整数

远程IP监控故障转移阈值(0-50)。

pingserver_flip_timeout

整数

远程IP监控故障转移后重新协商之前的等待时间(分钟)。

pingserver_monitor_interface

列表 / 元素=字符串

检查远程IP监控的接口。来源system.interface.name。

pingserver_secondary_force_reset

字符串

远程IP监控故障转移后启用强制集群协商。

选项

  • "enable"

  • "disable"

pingserver_slave_force_reset

字符串

远程IP监控故障转移后启用强制集群协商。

选项

  • "enable"

  • "disable"

priority

整数

提高优先级以选择主单元(0-255)。

vcluster_id

整数 / 必需

ID。请参见注释

vdom

列表 / 元素=字典

虚拟集群中的虚拟域。

name

字符串 / 必需

虚拟域名称。来源system.vdom.name。

vcluster2

字符串

启用/禁用虚拟集群2进行虚拟集群。

选项

  • "enable"

  • "disable"

vcluster_id

整数

集群ID。

vcluster_status

字符串

启用/禁用虚拟集群进行虚拟集群。

选项

  • "enable"

  • "disable"

vdom

字符串

虚拟集群1中的VDOM。

weight

字符串

每个集群单元的加权轮询权重。语法

vdom

字符串

虚拟域,在先前定义的那些虚拟域中。vdom是FortiGate的虚拟实例,可以将其配置并用作不同的单元。

默认值: "root"

注释

注意

  • 旧的fortiosapi已弃用,httpapi是运行playbook的首选方法。

示例

- name: Configure HA.
  fortinet.fortios.fortios_system_ha:
      vdom: "{{ vdom }}"
      system_ha:
          arps: "5"
          arps_interval: "8"
          authentication: "enable"
          auto_virtual_mac_interface:
              -
                  interface_name: "<your_own_value> (source system.interface.name)"
          backup_hbdev:
              -
                  name: "default_name_9 (source system.interface.name)"
          check_secondary_dev_health: "enable"
          cpu_threshold: "<your_own_value>"
          encryption: "enable"
          evpn_ttl: "60"
          failover_hold_time: "0"
          ftp_proxy_threshold: "<your_own_value>"
          gratuitous_arps: "enable"
          group_id: "0"
          group_name: "<your_own_value>"
          ha_direct: "enable"
          ha_eth_type: "<your_own_value>"
          ha_mgmt_interfaces:
              -
                  dst: "<your_own_value>"
                  gateway: "<your_own_value>"
                  gateway6: "<your_own_value>"
                  id: "25"
                  interface: "<your_own_value> (source system.interface.name)"
          ha_mgmt_status: "enable"
          ha_uptime_diff_margin: "300"
          hb_interval: "2"
          hb_interval_in_milliseconds: "100ms"
          hb_lost_threshold: "20"
          hbdev: "<your_own_value>"
          hc_eth_type: "<your_own_value>"
          hello_holddown: "20"
          http_proxy_threshold: "<your_own_value>"
          imap_proxy_threshold: "<your_own_value>"
          inter_cluster_session_sync: "enable"
          ipsec_phase2_proposal: "aes128-sha1"
          key: "<your_own_value>"
          l2ep_eth_type: "<your_own_value>"
          link_failed_signal: "enable"
          load_balance_all: "enable"
          logical_sn: "enable"
          memory_based_failover: "enable"
          memory_compatible_mode: "enable"
          memory_failover_flip_timeout: "6"
          memory_failover_monitor_period: "60"
          memory_failover_sample_rate: "1"
          memory_failover_threshold: "0"
          memory_threshold: "<your_own_value>"
          mode: "standalone"
          monitor: "<your_own_value> (source system.interface.name)"
          multicast_ttl: "600"
          nntp_proxy_threshold: "<your_own_value>"
          override: "enable"
          override_wait_time: "0"
          password: "<your_own_value>"
          pingserver_failover_threshold: "0"
          pingserver_flip_timeout: "60"
          pingserver_monitor_interface: "<your_own_value> (source system.interface.name)"
          pingserver_secondary_force_reset: "enable"
          pingserver_slave_force_reset: "enable"
          pop3_proxy_threshold: "<your_own_value>"
          priority: "128"
          route_hold: "10"
          route_ttl: "10"
          route_wait: "0"
          schedule: "none"
          secondary_vcluster:
              monitor: "<your_own_value> (source system.interface.name)"
              override: "enable"
              override_wait_time: "0"
              pingserver_failover_threshold: "0"
              pingserver_monitor_interface: "<your_own_value> (source system.interface.name)"
              pingserver_secondary_force_reset: "enable"
              pingserver_slave_force_reset: "enable"
              priority: "128"
              vcluster_id: "1"
              vdom: "<your_own_value>"
          session_pickup: "enable"
          session_pickup_connectionless: "enable"
          session_pickup_delay: "enable"
          session_pickup_expectation: "enable"
          session_pickup_nat: "enable"
          session_sync_dev: "<your_own_value> (source system.interface.name)"
          smtp_proxy_threshold: "<your_own_value>"
          ssd_failover: "enable"
          standalone_config_sync: "enable"
          standalone_mgmt_vdom: "enable"
          sync_config: "enable"
          sync_packet_balance: "enable"
          unicast_gateway: "<your_own_value>"
          unicast_hb: "enable"
          unicast_hb_netmask: "<your_own_value>"
          unicast_hb_peerip: "<your_own_value>"
          unicast_peers:
              -
                  id: "97"
                  peer_ip: "<your_own_value>"
          unicast_status: "enable"
          uninterruptible_primary_wait: "30"
          uninterruptible_upgrade: "enable"
          upgrade_mode: "simultaneous"
          vcluster:
              -
                  monitor: "<your_own_value> (source system.interface.name)"
                  override: "enable"
                  override_wait_time: "0"
                  pingserver_failover_threshold: "0"
                  pingserver_flip_timeout: "60"
                  pingserver_monitor_interface: "<your_own_value> (source system.interface.name)"
                  pingserver_secondary_force_reset: "enable"
                  pingserver_slave_force_reset: "enable"
                  priority: "128"
                  vcluster_id: "<you_own_value>"
                  vdom:
                      -
                          name: "default_name_115 (source system.vdom.name)"
          vcluster_id: "0"
          vcluster_status: "enable"
          vcluster2: "enable"
          vdom: "<your_own_value>"
          weight: "<your_own_value>"

返回值

常见的返回值已在此处记录,以下是此模块特有的字段

密钥

描述

build

字符串

FortiGate镜像的版本号。

返回:始终

示例: "1547"

http_method

字符串

上次用于将内容置备到FortiGate的方法。

返回:始终

示例: "PUT"

http_status

字符串

FortiGate在上次应用的操作中给出的最后结果。

返回:始终

示例: "200"

mkey

字符串

上次调用FortiGate时使用的主密钥(ID)。

返回:成功

示例: "id"

name

字符串

用于完成请求的表的名称。

返回:始终

示例: "urlfilter"

path

字符串

用于完成请求的表的路径。

返回:始终

示例: "webfilter"

revision

字符串

内部修订号。

返回:始终

示例: "17.0.2.10658"

serial

字符串

设备的序列号。

返回:始终

示例: "FGVMEVYYQT3AB5352"

status

字符串

操作结果的指示。

返回:始终

示例: "success"

vdom

字符串

使用的虚拟域。

返回:始终

示例: "root"

version

字符串

FortiGate的版本。

返回:始终

示例: "v5.6.3"

作者

  • 郑链 (@chillancezen)

  • 薛杰 (@JieX19)

  • 卢宏斌 (@fgtdev-hblu)

  • 沈方 (@frankshen01)

  • Miguel Angel Munoz (@mamunozgonzalez)

  • Nicolas Thomas (@thomnico)