:source: fmgd_router_bgp.py :orphan: .. _fmgd_router_bgp: fmgd_router_bgp -- Configure BGP. +++++++++++++++++++++++++++++++++ .. versionadded:: 1.0.0 .. contents:: :local: :depth: 1 Synopsis -------- - This module is able to configure a FortiManager device. - Examples include all parameters and values need to be adjusted to data sources before usage. - Tested with FortiManager v7.x. Requirements ------------ The below requirements are needed on the host that executes this module. - ansible-core>=2.16.0 FortiManager Version Compatibility ---------------------------------- .. raw:: html

Supported Version Ranges: v7.2.6 -> v7.2.12, v7.4.3 -> latest

Parameters ---------- .. raw:: html Notes ----- .. note:: - Running in workspace locking mode is supported in this FortiManager module, the top level parameters workspace_locking_adom and workspace_locking_timeout help do the work. - To create or update an object, use state: present directive. - To delete an object, use state: absent directive - Normally, running one module can fail when a non-zero rc is returned. you can also override the conditions to fail or succeed with parameters rc_failed and rc_succeeded Examples -------- .. code-block:: yaml+jinja - name: Example playbook (generated based on argument schema) hosts: fortimanagers connection: httpapi gather_facts: false vars: ansible_httpapi_use_ssl: true ansible_httpapi_validate_certs: false ansible_httpapi_port: 443 tasks: - name: Configure BGP. fortinet.fmgdevice.fmgd_router_bgp: # bypass_validation: false # workspace_locking_adom: # workspace_locking_timeout: 300 # rc_succeeded: [0, -2, -3, ...] # rc_failed: [-2, -3, ...] device: vdom: router_bgp: # additional_path: # additional_path_select: # additional_path_select_vpnv4: # additional_path_select_vpnv6: # additional_path_select6: # additional_path_vpnv4: # additional_path_vpnv6: # additional_path6: # admin_distance: # - distance: # id: # neighbour_prefix: # route_list: # aggregate_address: # - as_set: # id: # prefix: # summary_only: # aggregate_address6: # - as_set: # id: # prefix6: # summary_only: # always_compare_med: # as: # bestpath_as_path_ignore: # bestpath_cmp_confed_aspath: # bestpath_cmp_routerid: # bestpath_med_confed: # bestpath_med_missing_as_worst: # client_to_client_reflection: # cluster_id: # confederation_identifier: # confederation_peers: # cross_family_conditional_adv: # dampening: # dampening_max_suppress_time: # dampening_reachability_half_life: # dampening_reuse: # dampening_route_map: # dampening_suppress: # dampening_unreachability_half_life: # default_local_preference: # deterministic_med: # distance_external: # distance_internal: # distance_local: # ebgp_multipath: # enforce_first_as: # fast_external_failover: # graceful_end_on_timer: # graceful_restart: # graceful_restart_time: # graceful_stalepath_time: # graceful_update_delay: # holdtime_timer: # ibgp_multipath: # ignore_optional_capability: # keepalive_timer: # log_neighbour_changes: # multipath_recursive_distance: # neighbor: # - activate: # activate_evpn: # activate_vpnv4: # activate_vpnv6: # activate6: # additional_path: # additional_path_vpnv4: # additional_path_vpnv6: # additional_path6: # adv_additional_path: # adv_additional_path_vpnv4: # adv_additional_path_vpnv6: # adv_additional_path6: # advertisement_interval: # allowas_in: # allowas_in_enable: # allowas_in_enable_evpn: # allowas_in_enable_vpnv4: # allowas_in_enable_vpnv6: # allowas_in_enable6: # allowas_in_evpn: # allowas_in_vpnv4: # allowas_in_vpnv6: # allowas_in6: # as_override: # as_override6: # attribute_unchanged: # - "as-path" # - "med" # - "next-hop" # attribute_unchanged_vpnv4: # - "as-path" # - "med" # - "next-hop" # attribute_unchanged_vpnv6: # - "as-path" # - "med" # - "next-hop" # attribute_unchanged6: # - "as-path" # - "med" # - "next-hop" # auth_options: # bfd: # capability_default_originate: # capability_default_originate6: # capability_dynamic: # capability_graceful_restart: # capability_graceful_restart_evpn: # capability_graceful_restart_vpnv4: # capability_graceful_restart_vpnv6: # capability_graceful_restart6: # capability_orf: # capability_orf6: # capability_route_refresh: # conditional_advertise: # - advertise_routemap: # condition_routemap: # condition_type: # conditional_advertise6: # - advertise_routemap: # condition_routemap: # condition_type: # connect_timer: # default_originate_routemap: # default_originate_routemap6: # description: # distribute_list_in: # distribute_list_in_vpnv4: # distribute_list_in_vpnv6: # distribute_list_in6: # distribute_list_out: # distribute_list_out_vpnv4: # distribute_list_out_vpnv6: # distribute_list_out6: # dont_capability_negotiate: # ebgp_enforce_multihop: # ebgp_multihop_ttl: # filter_list_in: # filter_list_in_vpnv4: # filter_list_in_vpnv6: # filter_list_in6: # filter_list_out: # filter_list_out_vpnv4: # filter_list_out_vpnv6: # filter_list_out6: # holdtime_timer: # interface: # ip: # keep_alive_timer: # link_down_failover: # local_as: # local_as_no_prepend: # local_as_replace_as: # maximum_prefix: # maximum_prefix_evpn: # maximum_prefix_threshold: # maximum_prefix_threshold_evpn: # maximum_prefix_threshold_vpnv4: # maximum_prefix_threshold_vpnv6: # maximum_prefix_threshold6: # maximum_prefix_vpnv4: # maximum_prefix_vpnv6: # maximum_prefix_warning_only: # maximum_prefix_warning_only_evpn: # maximum_prefix_warning_only_vpnv4: # maximum_prefix_warning_only_vpnv6: # maximum_prefix_warning_only6: # maximum_prefix6: # next_hop_self: # next_hop_self_rr: # next_hop_self_rr6: # next_hop_self_vpnv4: # next_hop_self_vpnv6: # next_hop_self6: # override_capability: # passive: # password: # prefix_list_in: # prefix_list_in_vpnv4: # prefix_list_in_vpnv6: # prefix_list_in6: # prefix_list_out: # prefix_list_out_vpnv4: # prefix_list_out_vpnv6: # prefix_list_out6: # remote_as: # remove_private_as: # remove_private_as_evpn: # remove_private_as_vpnv4: # remove_private_as_vpnv6: # remove_private_as6: # restart_time: # retain_stale_time: # route_map_in: # route_map_in_evpn: # route_map_in_vpnv4: # route_map_in_vpnv6: # route_map_in6: # route_map_out: # route_map_out_evpn: # route_map_out_preferable: # route_map_out_vpnv4: # route_map_out_vpnv4_preferable: # route_map_out_vpnv6: # route_map_out_vpnv6_preferable: # route_map_out6: # route_map_out6_preferable: # route_reflector_client: # route_reflector_client_evpn: # route_reflector_client_vpnv4: # route_reflector_client_vpnv6: # route_reflector_client6: # route_server_client: # route_server_client_evpn: # route_server_client_vpnv4: # route_server_client_vpnv6: # route_server_client6: # send_community: # send_community_evpn: # send_community_vpnv4: # send_community_vpnv6: # send_community6: # shutdown: # soft_reconfiguration: # soft_reconfiguration_evpn: # soft_reconfiguration_vpnv4: # soft_reconfiguration_vpnv6: # soft_reconfiguration6: # stale_route: # strict_capability_match: # unsuppress_map: # unsuppress_map6: # update_source: # weight: # rr_attr_allow_change: # rr_attr_allow_change_evpn: # rr_attr_allow_change_vpnv4: # rr_attr_allow_change_vpnv6: # rr_attr_allow_change6: # neighbor_group: # - activate: # activate_evpn: # activate_vpnv4: # activate_vpnv6: # activate6: # additional_path: # additional_path_vpnv4: # additional_path_vpnv6: # additional_path6: # adv_additional_path: # adv_additional_path_vpnv4: # adv_additional_path_vpnv6: # adv_additional_path6: # advertisement_interval: # allowas_in: # allowas_in_enable: # allowas_in_enable_evpn: # allowas_in_enable_vpnv4: # allowas_in_enable_vpnv6: # allowas_in_enable6: # allowas_in_evpn: # allowas_in_vpnv4: # allowas_in_vpnv6: # allowas_in6: # as_override: # as_override6: # attribute_unchanged: # - "as-path" # - "med" # - "next-hop" # attribute_unchanged_vpnv4: # - "as-path" # - "med" # - "next-hop" # attribute_unchanged_vpnv6: # - "as-path" # - "med" # - "next-hop" # attribute_unchanged6: # - "as-path" # - "med" # - "next-hop" # auth_options: # bfd: # capability_default_originate: # capability_default_originate6: # capability_dynamic: # capability_graceful_restart: # capability_graceful_restart_evpn: # capability_graceful_restart_vpnv4: # capability_graceful_restart_vpnv6: # capability_graceful_restart6: # capability_orf: # capability_orf6: # capability_route_refresh: # connect_timer: # default_originate_routemap: # default_originate_routemap6: # description: # distribute_list_in: # distribute_list_in_vpnv4: # distribute_list_in_vpnv6: # distribute_list_in6: # distribute_list_out: # distribute_list_out_vpnv4: # distribute_list_out_vpnv6: # distribute_list_out6: # dont_capability_negotiate: # ebgp_enforce_multihop: # ebgp_multihop_ttl: # filter_list_in: # filter_list_in_vpnv4: # filter_list_in_vpnv6: # filter_list_in6: # filter_list_out: # filter_list_out_vpnv4: # filter_list_out_vpnv6: # filter_list_out6: # holdtime_timer: # interface: # keep_alive_timer: # link_down_failover: # local_as: # local_as_no_prepend: # local_as_replace_as: # maximum_prefix: # maximum_prefix_evpn: # maximum_prefix_threshold: # maximum_prefix_threshold_evpn: # maximum_prefix_threshold_vpnv4: # maximum_prefix_threshold_vpnv6: # maximum_prefix_threshold6: # maximum_prefix_vpnv4: # maximum_prefix_vpnv6: # maximum_prefix_warning_only: # maximum_prefix_warning_only_evpn: # maximum_prefix_warning_only_vpnv4: # maximum_prefix_warning_only_vpnv6: # maximum_prefix_warning_only6: # maximum_prefix6: # name: # next_hop_self: # next_hop_self_rr: # next_hop_self_rr6: # next_hop_self_vpnv4: # next_hop_self_vpnv6: # next_hop_self6: # override_capability: # passive: # password: # prefix_list_in: # prefix_list_in_vpnv4: # prefix_list_in_vpnv6: # prefix_list_in6: # prefix_list_out: # prefix_list_out_vpnv4: # prefix_list_out_vpnv6: # prefix_list_out6: # remote_as: # remote_as_filter: # remove_private_as: # remove_private_as_evpn: # remove_private_as_vpnv4: # remove_private_as_vpnv6: # remove_private_as6: # restart_time: # retain_stale_time: # route_map_in: # route_map_in_evpn: # route_map_in_vpnv4: # route_map_in_vpnv6: # route_map_in6: # route_map_out: # route_map_out_evpn: # route_map_out_preferable: # route_map_out_vpnv4: # route_map_out_vpnv4_preferable: # route_map_out_vpnv6: # route_map_out_vpnv6_preferable: # route_map_out6: # route_map_out6_preferable: # route_reflector_client: # route_reflector_client_evpn: # route_reflector_client_vpnv4: # route_reflector_client_vpnv6: # route_reflector_client6: # route_server_client: # route_server_client_evpn: # route_server_client_vpnv4: # route_server_client_vpnv6: # route_server_client6: # send_community: # send_community_evpn: # send_community_vpnv4: # send_community_vpnv6: # send_community6: # shutdown: # soft_reconfiguration: # soft_reconfiguration_evpn: # soft_reconfiguration_vpnv4: # soft_reconfiguration_vpnv6: # soft_reconfiguration6: # stale_route: # strict_capability_match: # unsuppress_map: # unsuppress_map6: # update_source: # weight: # rr_attr_allow_change: # rr_attr_allow_change_evpn: # rr_attr_allow_change_vpnv4: # rr_attr_allow_change_vpnv6: # rr_attr_allow_change6: # neighbor_range: # - id: # max_neighbor_num: # neighbor_group: # prefix: # neighbor_range6: # - id: # max_neighbor_num: # neighbor_group: # prefix6: # network: # - backdoor: # id: # network_import_check: # prefix: # route_map: # prefix_name: # network_import_check: # network6: # - backdoor: # id: # network_import_check: # prefix6: # route_map: # recursive_inherit_priority: # recursive_next_hop: # redistribute: # name: # route_map: # status: # redistribute6: # name: # route_map: # status: # router_id: # scan_time: # synchronization: # tag_resolve_mode: # vrf: # - export_rt: # import_route_map: # import_rt: # leak_target: # - interface: # route_map: # vrf: # rd: # role: # vrf: # vrf6: # - export_rt: # import_route_map: # import_rt: # leak_target: # - interface: # route_map: # vrf: # rd: # role: # vrf: # vrf_leak: # - target: # - interface: # route_map: # vrf: # vrf: # vrf_leak6: # - target: # - interface: # route_map: # vrf: # vrf: # _auto_override: Return Values ------------- Common return values are documented: https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values, the following are the fields unique to this module: .. raw:: html
  • meta - The result of the request.returned: always type: dict
    • request_url - The full url requested. returned: always type: str sample: /sys/login/user
    • response_code - The status of api request. returned: always type: int sample: 0
    • response_data - The data body of the api response. returned: optional type: list or dict
    • response_message - The descriptive message of the api response. returned: always type: str sample: OK
    • system_information - The information of the target system. returned: always type: dict
  • rc - The status the request. returned: always type: int sample: 0
  • version_check_warning - Warning if the parameters used in the playbook are not supported by the current FortiManager version. returned: if at least one parameter not supported by the current FortiManager version type: list
Status ------ - This module is not guaranteed to have a backwards compatible interface. Authors ------- - Xinwei Du (@dux-fortinet) - Xing Li (@lix-fortinet) - Jie Xue (@JieX19) - Link Zheng (@chillancezen) - Frank Shen (@fshen01) - Hongbin Lu (@fgtdev-hblu)