HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //lib/python3.9/site-packages/ansible_collections/dellemc/os9/roles/os9_vrrp/templates/os9_vrrp.j2
#jinja2: trim_blocks: True, lstrip_blocks: True
{##########################################
Purpose:
Configure VRRP commands for os9 Devices
os9_vrrp:
    fortyGigE 1/4:
      vrrp:
        delay_min: 2
        delay_reload: 2 
      vrrp_group:
        - group_id: 2
          type: ipv6
          description: "Interface-vrrp-ipv6"
          virtual_address: 2001:4898:5808:ffa3::9
          enable: true
          priority: 120
          preempt: false
          track_interface:
            - resource_id: 3
              priority_cost: 25
              state: present
            - interface: port-channel 120
              priority_cost: 20
            - interface: fortyGigE 1/10
              state: present
          track_interface_state: present
          adv_interval_centisecs: 200
          hold_time_centisecs: 20
          state: present

        - group_id: 4
          state: present
          description: "Interface-vrrp4"
          virtual_address: 10.2.0.1
          enable: true
          priority: 120
          preempt: false
          version: 2
          track_interface: 
            - resource_id: 3
              priority_cost: 25
              state: present
            - interface: port-channel 120
              priority_cost: 20
            - interface: fortyGigE 1/12
              state: present 
          track_interface_state: present
          adv_interval_centisecs: 200
          hold_time_centisecs: 20
          authentication:
            key: 0
            key_string: vrrpkey
            state: present
#########################################}
{% if os9_vrrp is defined and os9_vrrp %}
{% for key,value in os9_vrrp.items() %} 
interface {{ key }}
  {% if value %}
  {% if value.vrrp is defined and value.vrrp %}
    {% if value.vrrp.delay_min is defined %}
      {% if value.vrrp.delay_min >=0 %}
 vrrp delay minimum {{ value.vrrp.delay_min }}
      {% else %}
 no vrrp delay minimum 
      {% endif %}
    {% endif %}
    {% if value.vrrp.delay_reload is defined %}
      {% if value.vrrp.delay_reload >=0 %}
 vrrp delay reload {{ value.vrrp.delay_reload }}
      {% else %}
 vrrp delay reload {{ value.vrrp.delay_reload }}
      {% endif %}
    {% endif %}
  {% endif %}
  {% for group in value.vrrp_group %}
    {% if group.group_id is defined and group.group_id %}
      {% if group.state is defined and group.state == "absent" %}
        {% if group.type is defined and group.type == "ipv6" %}
 no vrrp-ipv6-group {{ group.group_id }}
        {% else %}
 no vrrp-group {{ group.group_id }}
        {% endif %}
      {% else %}
        {% if group.type is defined and group.type == "ipv6" %}
 vrrp-ipv6-group {{ group.group_id }}
        {% else %}
 vrrp-group {{ group.group_id }}
        {% endif %}
        {% if group.type is not defined or not group.type == "ipv6" %}
          {% if group.version is defined %}
            {% if group.version %}
  version {{ group.version }}
            {% else %}
  no version
            {% endif %}
          {% endif %}
        {% endif %}
        {% if group.adv_interval_centisecs is defined %}
          {% if group.adv_interval_centisecs %}
            {% if group.version is not defined or (group.version is defined and group.version == 2) %}
            {% set adv_int = group.adv_interval_centisecs/100 %}
              {% if group.type is defined and group.type == "ipv6" %}
  advertise-interval centisecs {{ group.adv_interval_centisecs }}
              {% else %}
  advertise-interval {{ adv_int|int }}
              {% endif %}
            {% else %}
  advertise-interval centisecs {{ group.adv_interval_centisecs }}
            {% endif %}
          {% else %}
  no advertise-interval
          {% endif %}
        {% endif %}
        {% if group.hold_time_centisecs is defined %}
          {% if group.hold_time_centisecs >= 0 %}
            {% if group.version is not defined or (group.version is defined and group.version == 2) %}
            {% set hold_time = group.hold_time_centisecs/100 %}
              {% if group.type is defined and group.type == "ipv6" %}
  hold-time centisecs {{ group.hold_time_centisecs }}
              {% else %}
  hold-time {{ hold_time|int }}
              {% endif %}
            {% else %}
  hold-time centisecs {{ group.hold_time_centisecs }}
            {% endif %}
          {% else %}
  no hold-time
          {% endif %}
        {% endif %}
        {% if group.track_interface_state is defined and group.track_interface_state == "absent" %}
  no track
        {% else %}
          {% if group.track_interface is defined and group.track_interface %}
            {% for track_item in group.track_interface %}
              {% if track_item.state is defined and track_item.state == "absent" %}
                {% if track_item.resource_id is defined and track_item.resource_id %}
  no track {{ track_item.resource_id }} 
                {% elif track_item.interface is defined and track_item.interface %}
  no track {{ track_item.interface }}
                {% endif %}
              {% else %}
                {% if track_item.resource_id is defined and track_item.resource_id %}
                  {% if track_item.priority_cost is defined and track_item.priority_cost %}
  track {{ track_item.resource_id }} priority-cost {{ track_item.priority_cost }}
                  {% else %}
  track {{ track_item.resource_id }}
                  {% endif %}
                {% elif track_item.interface is defined and track_item.interface %}
                  {% if track_item.priority_cost is defined and track_item.priority_cost %}
  track {{ track_item.interface }} priority-cost {{ track_item.priority_cost }}
                  {% else %}
  track {{ track_item.interface }}
                  {% endif %}
                {% endif %}
              {% endif %}
            {% endfor %}
          {% endif %}
        {% endif %}
        {% if group.type is not defined or not group.type == "ipv6" %}
          {% if group.authentication is defined and group.authentication %}
            {% if group.authentication.state is defined and group.authentication.state == "absent" %}
  no authentication-type
            {% else %}
              {% if group.authentication.key is defined %}
                {% if group.version is not defined or (group.version is defined and group.version == 2) %}
                  {% if group.authentication.key == 0 or group.authentication.key == 7 %}
                    {% if group.authentication.key_string is defined and group.authentication.key_string %}
  authentication-type simple {{ group.authentication.key }} {{ group.authentication.key_string }}
                    {% endif %}
                  {% elif group.authentication.key %}
  authentication-type simple {{ group.authentication.key }}
                  {% endif %}
                {% endif %}
              {% endif %}
            {% endif %}
          {% endif %}
        {% endif %}
        {% if group.virtual_address is defined %}
          {% if group.virtual_address %}
  virtual-address {{ group.virtual_address }}
          {% else %}
  no virtual-address
          {% endif %}
        {% endif %}
        {% if group.description is defined %}
          {% if group.description %}
  description {{ group.description }}
          {% else %}
  no description
          {% endif %}
        {% endif %}
        {% if group.preempt is defined %}
          {% if group.preempt %}
  preempt
          {% else %}
  no preempt
          {% endif %}
        {% endif %}
        {% if group.enable is defined %}
          {% if group.enable %}
  no disable
          {% else %}
  disable
          {% endif %}
        {% endif %}
        {% if group.priority is defined %}
          {% if group.priority %}
  priority {{ group.priority }}
          {% else %}
  no priority 
          {% endif %}
        {% endif %}
      {% endif %}
    {% endif %}
  {% endfor %}
  {% endif %}
{% endfor %}
{% endif %}