ansible-collections/cisco.nxos

Upon using the cisco.nxos.nxos_config module with a template the router-id command under router bgp after initial configuration gives 'surrogate_then_replace' error.

oraclek76 opened this issue · 1 comments

SUMMARY

When trying to apply router-id to the router bgp configuration of a Nexus device the initial configuration works without issue. Upon running the playbook a 2nd time the playbook fails with an error about the router-id. The error states 'surrogate_then_replace'.
The full traceback is:
File "/usr/local/lib/python3.10/dist-packages/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/nxos.py", line 143, in load_config
resp = connection.edit_config(config, replace=replace)
File "/usr/local/lib/python3.10/dist-packages/ansible/module_utils/connection.py", line 200, in rpc
raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)
fatal: [10.122.191.190]: FAILED! => changed=false

ISSUE TYPE
  • Bug Report
COMPONENT NAME

nxos_config

ANSIBLE VERSION
ansible [core 2.16.1]
  config file = /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg
  configured module search path = ['/home/kalbritt/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
  ansible collection location = /home/kalbritt/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True
COLLECTION VERSION
# /usr/local/lib/python3.10/dist-packages/ansible_collections
Collection Version
---------- -------
cisco.nxos 5.3.0 
CONFIGURATION
CALLBACKS_ENABLED(/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg) = ['timer',>
CONFIG_FILE() = /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg
DEFAULT_HOST_LIST(/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg) = ['/home/k>
DEFAULT_LOG_PATH(/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg) = /home/kalb>
DEFAULT_STDOUT_CALLBACK(/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg) = com>
HOST_KEY_CHECKING(/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg) = False
OS / ENVIRONMENT

Operating System: Linux Mint 21.2
Kernel: Linux 5.15.0-91-generic
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
Software
BIOS: version 01.23
NXOS: version 10.4(2) [Feature Release]
BIOS compile time: 05/17/2022
NXOS image file is: bootflash:///nxos64-msll.10.4.2.F.bin
NXOS compile time: 11/30/2023 12:00:00 [12/14/2023 05:40:33]

Hardware
cisco Nexus3000 N3K-C36180YC-R Chassis
Intel(R) Xeon(R) CPU D-1528 @ 1.90GHz with 32776960 kB of memory.
Processor Board ID
bootflash: 115805708 kB

STEPS TO REPRODUCE
##### High level galaxy roleplaybook
- name: Nexus Template Role
  hosts: nexuscommon
  gather_facts: no
  roles:
    - "nexustemplate"
  vars:
    TEMPLATE: nexuscommon
 ############################
###### main.yaml under task
---
- name: task10 configure nexus configuration via template
  cisco.nxos.nxos_config:
    src: "templates/{{ TEMPLATE }}.j2"
  register: cli_result
#############################
###### nexuscommon.j2 template
hostname N9K1SPINE
feature scp-server
feature tacacs+
feature interface-vlan
feature lacp
feature vpc
feature bgp
router bgp 65512
router-id 169.154.151.11

#########################
#   EOF                 #
#########################
EXPECTED RESULTS

Ansible should either output no changes required or occasionally does reapply some of the configuration. It should not fail.

ACTUAL RESULTS
ansible-playbook [core 2.16.1]
  config file = /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg
  configured module search path = ['/home/kalbritt/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
  ansible collection location = /home/kalbritt/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible-playbook
  python version = 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True
Using /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/ansible.cfg as config file
setting up inventory plugins
Loading collection ansible.builtin from 
host_list declined parsing /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/hosts.yaml as it did not pass its verify_file() method
script declined parsing /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/hosts.yaml as it did not pass its verify_file() method
Skipping empty key (hosts) in group (nexusvpccommon)
Skipping empty key (hosts) in group (nexusvpcspinepair)
Skipping empty key (hosts) in group (nexusvpcleafpair1)
Skipping empty key (hosts) in group (nexusvpcprimary)
Skipping empty key (hosts) in group (nexusvpcsecondary)
Parsed /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/hosts.yaml inventory source with yaml plugin
redirecting (type: modules) ansible.builtin.nxos_config to cisco.nxos.nxos_config
Loading collection cisco.nxos from /usr/local/lib/python3.10/dist-packages/ansible_collections/cisco/nxos
redirecting (type: action) cisco.nxos.nxos_config to cisco.nxos.nxos
redirecting (type: action) cisco.nxos.nxos_config to cisco.nxos.nxos
redirecting (type: action) cisco.nxos.nxos_config to cisco.nxos.nxos
redirecting (type: action) cisco.nxos.nxos_config to cisco.nxos.nxos
redirecting (type: action) cisco.nxos.nxos_banner to cisco.nxos.nxos
Loading collection community.general from /usr/local/lib/python3.10/dist-packages/ansible_collections/community/general
Loading callback plugin community.general.yaml of type stdout, v2.0 from /usr/local/lib/python3.10/dist-packages/ansible_collections/community/general/plugins/callback/yaml.py
redirecting (type: callback) ansible.builtin.timer to ansible.posix.timer
Loading collection ansible.posix from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/posix
redirecting (type: callback) ansible.builtin.profile_tasks to ansible.posix.profile_tasks
redirecting (type: callback) ansible.builtin.profile_roles to ansible.posix.profile_roles
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.
Loading callback plugin ansible.posix.timer of type aggregate, v2.0 from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/posix/plugins/callback/timer.py
Loading callback plugin ansible.posix.profile_tasks of type aggregate, v2.0 from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/posix/plugins/callback/profile_tasks.py
Loading callback plugin ansible.posix.profile_roles of type aggregate, v2.0 from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/posix/plugins/callback/profile_roles.py
Skipping callback 'community.general.yaml', as we already have a stdout callback.

PLAYBOOK: nexus-template.yaml **************************************************************************************
Positional arguments: nexus-template.yaml
verbosity: 4
connection: ssh
become_method: sudo
tags: ('all',)
inventory: ('/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/hosts.yaml',)
forks: 5
1 plays in nexus-template.yaml

PLAY [Nexus Template Role] *****************************************************************************************

TASK [nexustemplate : pretask include vault] ***********************************************************************
task path: /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:10
Tuesday 13 February 2024  08:28:48 -0500 (0:00:00.076)       0:00:00.076 ****** 
Tuesday 13 February 2024  08:28:48 -0500 (0:00:00.075)       0:00:00.075 ****** 
Loading collection ansible.netcommon from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/netcommon
Loading collection ansible.utils from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/utils
redirecting (type: terminal) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: cliconf) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: become) ansible.builtin.enable to ansible.netcommon.enable
ok: [10.122.191.190] => changed=false 
  ansible_facts: {}
  ansible_included_var_files:
  - /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/passwords.yaml

TASK [nexustemplate : shell] ***************************************************************************************
task path: /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:15
Tuesday 13 February 2024  08:28:48 -0500 (0:00:00.235)       0:00:00.312 ****** 
Tuesday 13 February 2024  08:28:48 -0500 (0:00:00.236)       0:00:00.311 ****** 
Loading collection ansible.netcommon from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/netcommon
Loading collection ansible.utils from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/utils
redirecting (type: terminal) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: cliconf) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: become) ansible.builtin.enable to ansible.netcommon.enable
<10.122.191.190> attempting to start connection
<10.122.191.190> using connection plugin ansible.netcommon.network_cli
Found ansible-connection at path /usr/local/bin/ansible-connection
<10.122.191.190> local domain socket does not exist, starting it
<10.122.191.190> control socket path is /home/kalbritt/.ansible/pc/8dc90287cc
<10.122.191.190> Loading collection ansible.builtin from 
<10.122.191.190> Loading collection ansible.netcommon from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/netcommon
<10.122.191.190> Loading collection ansible.utils from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/utils
<10.122.191.190> redirecting (type: terminal) ansible.builtin.nxos to cisco.nxos.nxos
<10.122.191.190> Loading collection cisco.nxos from /usr/local/lib/python3.10/dist-packages/ansible_collections/cisco/nxos
<10.122.191.190> redirecting (type: cliconf) ansible.builtin.nxos to cisco.nxos.nxos
<10.122.191.190> local domain socket listeners started successfully
<10.122.191.190> loaded cliconf plugin ansible_collections.cisco.nxos.plugins.cliconf.nxos from path /usr/local/lib/python3.10/dist-packages/ansible_collections/cisco/nxos/plugins/cliconf/nxos.py for network_os nxos
<10.122.191.190> ssh type is set to libssh
<10.122.191.190> Loading collection ansible.builtin from 
<10.122.191.190> local domain socket path is /home/kalbritt/.ansible/pc/8dc90287cc
<10.122.191.190> ESTABLISH LOCAL CONNECTION FOR USER: kalbritt
<10.122.191.190> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13 `"&& mkdir "` echo /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13/ansible-tmp-1707830929.5480835-147437-113399325808884 `" && echo ansible-tmp-1707830929.5480835-147437-113399325808884="` echo /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13/ansible-tmp-1707830929.5480835-147437-113399325808884 `" ) && sleep 0'
Using module file /usr/local/lib/python3.10/dist-packages/ansible/modules/command.py
<10.122.191.190> PUT /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13/tmpglm2b33w TO /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13/ansible-tmp-1707830929.5480835-147437-113399325808884/AnsiballZ_command.py
<10.122.191.190> EXEC /bin/sh -c 'chmod u+x /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13/ansible-tmp-1707830929.5480835-147437-113399325808884/ /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13/ansible-tmp-1707830929.5480835-147437-113399325808884/AnsiballZ_command.py && sleep 0'
<10.122.191.190> EXEC /bin/sh -c '/usr/bin/python3 /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13/ansible-tmp-1707830929.5480835-147437-113399325808884/AnsiballZ_command.py && sleep 0'
<10.122.191.190> EXEC /bin/sh -c 'rm -f -r /home/kalbritt/.ansible/tmp/ansible-local-1474297gc9no13/ansible-tmp-1707830929.5480835-147437-113399325808884/ > /dev/null 2>&1 && sleep 0'
changed: [10.122.191.190] => changed=true 
  cmd: date +%Y%m%d%H%M%S
  delta: '0:00:00.003034'
  end: '2024-02-13 08:28:49.776396'
  invocation:
    module_args:
      _raw_params: date +%Y%m%d%H%M%S
      _uses_shell: true
      argv: null
      chdir: null
      creates: null
      executable: null
      expand_argument_vars: true
      removes: null
      stdin: null
      stdin_add_newline: true
      strip_empty_ends: true
  msg: ''
  rc: 0
  start: '2024-02-13 08:28:49.773362'
  stderr: ''
  stderr_lines: <omitted>
  stdout: '20240213082849'
  stdout_lines: <omitted>

TASK [nexustemplate : pretask check timestamp] *********************************************************************
task path: /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:18
Tuesday 13 February 2024  08:28:49 -0500 (0:00:01.231)       0:00:01.544 ****** 
Tuesday 13 February 2024  08:28:49 -0500 (0:00:01.231)       0:00:01.543 ****** 
Loading collection ansible.netcommon from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/netcommon
Loading collection ansible.utils from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/utils
redirecting (type: terminal) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: cliconf) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: become) ansible.builtin.enable to ansible.netcommon.enable
ok: [10.122.191.190] => 
  msg:
    changed: true
    cmd: date +%Y%m%d%H%M%S
    delta: '0:00:00.003034'
    end: '2024-02-13 08:28:49.776396'
    failed: false
    msg: ''
    rc: 0
    start: '2024-02-13 08:28:49.773362'
    stderr: ''
    stderr_lines: []
    stdout: '20240213082849'
    stdout_lines:
    - '20240213082849'

TASK [nexustemplate : PRETASK2 set rsa key to 2048 forcefully] *****************************************************
task path: /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:24
Tuesday 13 February 2024  08:28:49 -0500 (0:00:00.064)       0:00:01.609 ****** 
Tuesday 13 February 2024  08:28:49 -0500 (0:00:00.064)       0:00:01.607 ****** 
Loading collection ansible.netcommon from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/netcommon
Loading collection ansible.utils from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/utils
redirecting (type: terminal) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: cliconf) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: become) ansible.builtin.enable to ansible.netcommon.enable
redirecting (type: modules) ansible.builtin.nxos_config to cisco.nxos.nxos_config
redirecting (type: action) ansible.builtin.nxos to cisco.nxos.nxos
<10.122.191.190> Using network group action nxos for nxos_config
redirecting (type: action) ansible.builtin.nxos to cisco.nxos.nxos
<10.122.191.190> attempting to start connection
<10.122.191.190> using connection plugin ansible.netcommon.network_cli
Found ansible-connection at path /usr/local/bin/ansible-connection
<10.122.191.190> found existing local domain socket, using it!
<10.122.191.190> updating play_context for connection
<10.122.191.190> Loading collection ansible.builtin from 
<10.122.191.190> local domain socket path is /home/kalbritt/.ansible/pc/8dc90287cc
redirecting (type: action) ansible.builtin.nxos to cisco.nxos.nxos
<10.122.191.190> ANSIBLE_NETWORK_IMPORT_MODULES: enabled
redirecting (type: modules) ansible.builtin.nxos_config to cisco.nxos.nxos_config
<10.122.191.190> ANSIBLE_NETWORK_IMPORT_MODULES: found nxos_config  at /usr/local/lib/python3.10/dist-packages/ansible_collections/cisco/nxos/plugins/modules/nxos_config.py
<10.122.191.190> ANSIBLE_NETWORK_IMPORT_MODULES: running nxos_config
<10.122.191.190> ANSIBLE_NETWORK_IMPORT_MODULES: complete
[WARNING]: To ensure idempotency and correct diff the input configuration lines should be similar to how they
appear if present in the running configuration on device
changed: [10.122.191.190] => changed=true 
  commands:
  - ssh key rsa 2048 force
  invocation:
    module_args:
      after: null
      backup: false
      backup_options: null
      before: null
      defaults: false
      diff_against: null
      diff_ignore_lines: null
      intended_config: null
      lines:
      - ssh key rsa 2048 force
      match: line
      parents: null
      replace: line
      replace_src: null
      running_config: null
      save_when: never
      src: null
  updates:
  - ssh key rsa 2048 force
redirecting (type: action) cisco.nxos.nxos_config to cisco.nxos.nxos
Loading collection ansible.netcommon from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/netcommon

TASK [nexustemplate : task10 configure nexus configuration via template] *******************************************
task path: /home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:32
Tuesday 13 February 2024  08:28:56 -0500 (0:00:06.289)       0:00:07.898 ****** 
Tuesday 13 February 2024  08:28:56 -0500 (0:00:06.289)       0:00:07.897 ****** 
Loading collection ansible.utils from /usr/local/lib/python3.10/dist-packages/ansible_collections/ansible/utils
redirecting (type: terminal) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: cliconf) ansible.builtin.nxos to cisco.nxos.nxos
redirecting (type: become) ansible.builtin.enable to ansible.netcommon.enable
redirecting (type: action) cisco.nxos.nxos_config to cisco.nxos.nxos
redirecting (type: action) cisco.nxos.nxos_config to cisco.nxos.nxos
<10.122.191.190> attempting to start connection
<10.122.191.190> using connection plugin ansible.netcommon.network_cli
Found ansible-connection at path /usr/local/bin/ansible-connection
<10.122.191.190> found existing local domain socket, using it!
<10.122.191.190> invoked shell using ssh_type: libssh
<10.122.191.190> ssh connection done, setting terminal
<10.122.191.190> loaded terminal plugin for network_os nxos
<10.122.191.190> firing event: on_become
<10.122.191.190> firing event: on_open_shell()
<10.122.191.190> ssh connection has completed successfully
<10.122.191.190> updating play_context for connection
<10.122.191.190> Loading collection ansible.builtin from 
<10.122.191.190> local domain socket path is /home/kalbritt/.ansible/pc/8dc90287cc
redirecting (type: action) cisco.nxos.nxos_config to cisco.nxos.nxos
<10.122.191.190> ANSIBLE_NETWORK_IMPORT_MODULES: enabled
<10.122.191.190> ANSIBLE_NETWORK_IMPORT_MODULES: found cisco.nxos.nxos_config  at /usr/local/lib/python3.10/dist-packages/ansible_collections/cisco/nxos/plugins/modules/nxos_config.py
<10.122.191.190> ANSIBLE_NETWORK_IMPORT_MODULES: running cisco.nxos.nxos_config
<10.122.191.190> ANSIBLE_NETWORK_IMPORT_MODULES: complete
The full traceback is:
  File "/usr/local/lib/python3.10/dist-packages/ansible_collections/cisco/nxos/plugins/module_utils/network/nxos/nxos.py", line 143, in load_config
    resp = connection.edit_config(config, replace=replace)
  File "/usr/local/lib/python3.10/dist-packages/ansible/module_utils/connection.py", line 200, in __rpc__
    raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)
fatal: [10.122.191.190]: FAILED! => changed=false 
  invocation:
    module_args:
      after: null
      backup: false
      backup_options: null
      before: null
      defaults: false
      diff_against: null
      diff_ignore_lines: null
      intended_config: null
      lines: null
      match: line
      parents: null
      replace: line
      replace_src: null
      running_config: null
      save_when: never
      src: |-
        hostname N9K1SPINE
        feature scp-server
        feature tacacs+
        feature interface-vlan
        feature lacp
        feature vpc
        feature bgp
        router bgp 65512
        router-id 169.154.151.11
  
        #########################
        #   EOF                 #
        #########################
  msg: |-
    router-id 169.154.151.11
                              ^
    % Invalid command at '^' marker.
    N9K1SPINE(config)#

PLAY RECAP *********************************************************************************************************
10.122.191.190             : ok=4    changed=2    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

Playbook run took 0 days, 0 hours, 0 minutes, 9 seconds
Tuesday 13 February 2024  08:28:57 -0500 (0:00:01.206)       0:00:09.104 ****** 
=============================================================================== 
nexustemplate : PRETASK2 set rsa key to 2048 forcefully ----------------------------------------------------- 6.29s
/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:24 ---
nexustemplate : shell --------------------------------------------------------------------------------------- 1.23s
/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:15 ---
nexustemplate : task10 configure nexus configuration via template ------------------------------------------- 1.21s
/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:32 ---
nexustemplate : pretask include vault ----------------------------------------------------------------------- 0.24s
/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:10 ---
nexustemplate : pretask check timestamp --------------------------------------------------------------------- 0.06s
/home/kalbritt/Desktop/ansible/gitfolder/nexus-standalone-ansible-galaxy/roles/nexustemplate/tasks/main.yaml:18 ---
Tuesday 13 February 2024  08:28:57 -0500 (0:00:01.206)       0:00:09.103 ****** 
=============================================================================== 
nexustemplate ----------------------------------------------------------- 9.03s
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
total ------------------------------------------------------------------- 9.03s

I didn't realize the spacing mattered in the template. That was my issue.