Template and sample YAML

Examples of a sample and template System_Name.yml file.

Note: If the template you are editing is from a release older than 1.0.5.1, then it does not include the application_network_enabled line. When starting with an existing System_Name.yml file, this line must be added manually before the application_network line:
application_network_enabled: True/False
    application_network:

If you are only using Management connection (1G), the setting must be: application_network_enabled: False, and the application_network section must be blank.

If you have a standard network layout (Management plus Application), you should set application_network_enabled to True.

Note: If the template you are editing is from a release older than 1.0.7, then it does not include the switches section. When starting with an existing System_Name.yml file, this section must be added manually. Refer to Switch settings .

When creating or editing the yml file on your system, note that there must be only one .yml file apart from the template in the /opt/ibm/appliance/platform/apos-comms/customer_network_config/ansible directory, otherwise you might face issues when configuring the network.

Template YAML file

  • Version 2.0.0 and later:
    all:
      children:
        control_nodes:
          hosts:
            node1:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
            node2:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
            node3:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
        switches:
        #BEGIN BGP
          vars:
            cp4d_asplain: <VALUE>
            cp4d_network: <VALUE>
            cp4d_network_vip: <VALUE>
          hosts:
            FabSw1a:
              ansible_host: localhost
              vrr_ip_addr: <VALUE>
              cp4d_routerID: 9.0.62.1
              isl_peer: 9.0.255.2
              bgp_links:
                  link1:
                  swp: <VALUE>
                  neighbor: <VALUE>
                  ip_addr: <VALUE>
                  mtu: 9000
                  link_speed: 10000
            FabSw1b:
              ansible_host: localhost
              vrr_ip_addr: <VALUE>
              cp4d_routerID: 9.0.62.2
              isl_peer: 9.0.255.1
              bgp_links:
                link1:
                  swp: <VALUE>
                  neighbor: <VALUE>
                  ip_addr: <VALUE>
                  mtu: 9000
                  link_speed: 10000
        #END BGP
    
        #BEGIN L2
        switches:
          hosts:
            FabSw1a:
              ansible_host: localhost
              external_connection_config:
                external_link1:
                  switch_ports: ['<VALUE>', '<VALUE>']
                  port_config:
                    mtu: 9000
                    link_speed: 10000
                  vlans: ['VALUE']
                  strict_vlan: <VALUE>
                  name: <VALUE>
                  lacp_link: True
                  lacp_rate: Fast
                  clag_id: 100
                  partner_switch: 'FabSw1b'
        #END L2
    
      vars:
        app_fqdn: <VALUE>
        #(pick from timedatectl list-timezones), default is EDT
        timezone: "<OPTIONAL>"
        #must begin with server or pool
        time_servers: ["<OPTIONAL>"]
        dns_servers: ["<VALUE>"]
        dns_search_strings: ["<OPTIONAL>"]
        smtp_servers: ["<OPTIONAL>"]
        management_network:
          network1:
            subnet: <VALUE>
            # just number, no slash 
            prefix: <VALUE>
            gateway: <VALUE>
            floating_ip: <VALUE>
            mtu: <OPTIONAL>
            custom_routes: <OPTIONAL>
        application_network_enabled: False
        openshift_networking_enabled: False
        policy_based_routing_enabled: True
        application_network:
          network1:
            default_gateway: true
            vlan: <VALUE>
            # just number, no slash 
            prefix: <VALUE>
            gateway: <VALUE>
            floating_ip: <VALUE>
            mtu: <OPTIONAL>
            custom_routes: <OPTIONAL>
            additional_openshift_ipaddrs: ["<OPTIONAL>"]
            additional_openshift_routes: ["<OPTIONAL>"]
  • Version 1.0.7.6 and later:
    Note: The switches section contains two mutually exclusive sections marked #BEGIN BGP (...) #END BGP and #BEGIN L2 (...) #END L2. Only one of these sections must be used. If you do not have the BGP feature configured, remove the BGP section together with the enclosing comments.
    all:
      children:
        control_nodes:
          hosts:
            node1:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
            node2:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
            node3:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
        switches:
        #BEGIN BGP
          vars:
            cp4d_asplain: <VALUE>
            cp4d_network: <VALUE>
            cp4d_network_vip: <VALUE>
          hosts:
            FabSw1a:
              vrr_ip_addr: <VALUE>
              cp4d_routerID: 9.0.62.1
              isl_peer: 9.0.255.2
              bgp_links:
                  link1:
                  swp: <VALUE>
                  neighbor: <VALUE>
                  ip_addr: <VALUE>
                  mtu: 9000
                  link_speed: 10000
            FabSw1b:
              vrr_ip_addr: <VALUE
              cp4d_routerID: 9.0.62.2
              isl_peer: 9.0.255.1
              bgp_links:
                link1:
                  swp: <VALUE>
                  neighbor: <VALUE>
                  ip_addr: <VALUE>
                  mtu: 9000
                  link_speed: 10000
        #END BGP
    
        #BEGIN L2
        switches:
          hosts:
            FabSw1a:
              ansible_host: localhost
              external_connection_config:
                external_link1:
                  switch_ports: ['<VALUE>', '<VALUE>']
                  port_config:
                    mtu: 9000
                    link_speed: 10000
                  vlans: ['VALUE']
                  strict_vlan: <VALUE>
                  name: <VALUE>
                  lacp_link: True
                  lacp_rate: Fast
                  clag_id: 100
                  partner_switch: 'FabSw1b'
        #END L2
    
      vars:
        app_fqdn: <VALUE>
        #(pick from timedatectl list-timezones), default is EDT
        timezone: "<OPTIONAL>"
        #must begin with server or pool
        time_servers: ["<OPTIONAL>"]
        dns_servers: ["<VALUE>"]
        dns_search_strings: ["<OPTIONAL>"]
        smtp_servers: ["<OPTIONAL>"]
        management_network:
          network1:
            subnet: <VALUE>
            # just number, no slash 
            prefix: <VALUE>
            gateway: <VALUE>
            floating_ip: <VALUE>
            mtu: <OPTIONAL>
            custom_routes: <OPTIONAL>
        application_network_enabled: 'True|Layer2, False,Layer2,BGP'
        application_network:
          network1:
            default_gateway: true
            vlan: <VALUE>
            # just number, no slash 
            prefix: <VALUE>
            gateway: <VALUE>
            floating_ip: <VALUE>
            mtu: <OPTIONAL>
            custom_routes: <OPTIONAL>
  • Versions 1.0.7.5 and earlier:
    all:
      children:
        control_nodes:
          hosts:
            node1:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
            node2:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
            node3:
              custom_hostname: <VALUE>
              management_network:
                network1:
                  ip: <VALUE>
        switches:
          hosts:
            FabSw1a:
              # Run on the control rather than remotely
              ansible_host: localhost
    
              # Is there an external link here at all?
              external_connection_enabled: False
              # If the above is True the following section is filled in
              external_connection_config:
                # First link config
                external_link1:
                  # Ports to put in this link, a list of 'number', 'number'
                  switch_ports: ['XX', 'YY']
    
                  # same config for all the values in switch_ports
                  port_config:
                    mtu: 9000
                    link_speed: 10000
    
                  # Which VLANs arriving on this port (and crossing the bridge)
                  vlans: ['VALUE']
    
                  # True means we only accept tagged packets from external source
                  # False means we only accept untagged packets from external source
                  strict_vlan: true
    
                  # Name of this link
                  name: <VALUE>
    
                  # True indicates there is multiple links in this connection
                  lacp_link: True
    
                  # LACP Refresh rate. (Fast or Slow)
                  lacp_rate: Fast
    
                  # CLAG Id for this link, 0 for no clag
                  clag_id: 100
    
                  # This switch should have matching cfg (and the same clag_id)
                  # Use False for links only on a single switch
                  partner_switch: 'FabSw1b'
    
      vars:
        app_fqdn: <VALUE>
        #(pick from timedatectl list-timezones), default is EDT
        timezone: "<OPTIONAL>"
        #must begin with server or pool
        time_servers: ["<OPTIONAL>"]
        dns_servers: ["<VALUE>"]
        dns_search_strings: ["<OPTIONAL>"]
        smtp_servers: ["<OPTIONAL>"]
        management_network:
          network1:
            subnet: <VALUE>
            # just number, no slash 
            prefix: <VALUE>
            gateway: <VALUE>
            floating_ip: <VALUE>
            mtu: <OPTIONAL>
            custom_routes: <OPTIONAL>
        application_network_enabled: True
        application_network:
          network1:
            default_gateway: true
            vlan: <VALUE>
            # just number, no slash 
            prefix: <VALUE>
            gateway: <VALUE>
            floating_ip: <VALUE>
            mtu: <OPTIONAL>
            custom_routes: <OPTIONAL>

Fully populated sample YAML

all:
  children:
    control_nodes:
      hosts:
        node1:
          custom_hostname: suyos01a.svl.ibm.com
          management_network:
            network1:
              ip: 9.30.16.141
        node2:
          custom_hostname: suyos01b.svl.ibm.com
          management_network:
            network1:
              ip: 9.30.16.142
        node3:
          custom_hostname: suyos01c.svl.ibm.com
          management_network:
            network1:
              ip: 9.30.16.143
    switches:
      hosts:
        FabSw1a:
          # Run on the control rather than remotely
          ansible_host: localhost
          # Is there an external link here at all?
          external_connection_enabled: True
          # If the above is True the follow section is filled in
          external_connection_config:
            # First link config
            external_link1:
              # Ports to put in this link, a list of 'number', 'number'
              switch_ports: ['48']
              # same config for all the values in switch_ports
              port_config:
                mtu: 9000
                link_speed: 10000
              # Which VLANs arriving on this port (and crossing the bridge)
              vlans: ['4080']
              # True means we only accept tagged packets from external source
              # False means we only accept untagged packets from external source
              strict_vlan: False
              # Name of this link
              name: h0
              # True indicates there is multiple links in this connection
              lacp_link: false
              # LACP Refresh rate. (Fast or Slow)
              lacp_rate: Fast
              # CLAG Id for this link, 0 for no clag
              clag_id: 0
              # This switch should have matching cfg (and the same clag_id)
              # Use False for links only on a single switch
              partner_switch: False
  vars:
    app_fqdn: suyos01.svl.ibm.com
    #(pick from timedatectl list-timezones)
    timezone: "America/Los_Angeles"
    #must begin with server or pool
    time_servers: ["<OPTIONAL>"]
    dns_servers: ["9.30.31.32"]
    management_network:
      network1:
        subnet: 9.30.16.0
        # just number, no slash
        prefix: 25
        gateway: 9.30.16.129
        floating_ip: 9.30.16.144
        mtu: 1500
        custom_routes:
    application_network_enabled: True
    application_network:
      network1:
        default_gateway: true
        vlan: 4080
        # just number, no slash
        prefix: 25
        gateway: 9.30.20.1
        floating_ip: 9.30.20.40
        mtu: 9000
        custom_routes: