[supervisord] logfile_maxbytes=1MB logfile_backups=2 nodaemon=true [program:start.sh] command=/usr/bin/start.sh priority=1 autostart=true autorestart=false stdout_logfile=syslog stderr_logfile=syslog [program:rsyslogd] command=/usr/sbin/rsyslogd -n priority=2 autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog {# If our configuration has VLANs... #} {% if VLAN %} {# Count how many VLANs require a DHCP relay agent... #} {% set num_relays = { 'count': 0 } %} {% for vlan_name in VLAN %} {% if VLAN[vlan_name]['dhcp_servers'] %} {% set _dummy = num_relays.update({'count': num_relays.count + 1}) %} {% endif %} {% endfor %} {# If one or more of the VLANs require a DHCP relay agent... #} {% if num_relays.count > 0 %} [group:isc-dhcp-relay] programs= {%- set add_preceding_comma = { 'flag': False } -%} {%- for vlan_name in VLAN -%} {%- if VLAN[vlan_name]['dhcp_servers'] -%} {%- if add_preceding_comma.flag %},{% endif -%} {%- set _dummy = add_preceding_comma.update({'flag': True}) -%} isc-dhcp-relay-{{ vlan_name }} {%- endif %} {% endfor %} {# Create a program entry for each DHCP relay agent instance #} {% for vlan_name in VLAN -%} {%- if VLAN[vlan_name]['dhcp_servers'] -%} [program:isc-dhcp-relay-{{ vlan_name }}] command=/usr/sbin/dhcrelay -d -m discard -a %%h:%%p %%P --name-alias-map-file /tmp/port-name-alias-map.txt -i {{ vlan_name }} {%- for (name, prefix) in INTERFACE -%} {%- if prefix | ipv4 %} -i {{ name }}{% endif -%} {%- endfor -%} {%- for (name, prefix) in PORTCHANNEL_INTERFACE -%} {%- if prefix | ipv4 %} -i {{ name }}{% endif -%} {%- endfor -%} {%- for dhcp_server in VLAN[vlan_name]['dhcp_servers'] %} {{ dhcp_server }}{% endfor %} priority=3 autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog {% endif %} {% endfor %} {% endif %} {% endif %}