Skip to content

eos_ntp_global

Collection Note

This module is part of the arista.eos collection. To install the collection, use:

ansible-galaxy collection install arista.eos
Added in version 3.1.0.

Synopsis

  • This module configures and manages the attributes of ntp on Arista EOS platforms.

Parameters

Parameter Defaults / Choices Comments
config
dict
A dictionary of ntp options
config.authenticate Require authentication for NTP synchronization.
config.authentication_keys Define a key to use for authentication.
config.local_interface Configure the interface from which the IP source address is taken.
config.qos_dscp Set DSCP value in IP header
config.serve Configure the switch as an NTP server.
config.servers Configure NTP server to synchronize to.
config.trusted_key Configure the set of keys that are accepted for incoming messages
running_config
str
This option is used only with state I(parsed).
The value of this option should be the output received from the EOS device by executing the command B(show running-config | section ntp).
The state I(parsed) reads the configuration from C(running_config) option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the I(parsed) key within the result.
state
str
Default: merged
Choices: deleted, merged, overridden, replaced, gathered, rendered, parsed
The state the configuration should be left in.
The states I(replaced) and I(overridden) have identical behaviour for this module.
Please refer to examples for more details.

Notes

Note

  • Tested against Arista EOS 4.24.60M
  • This module works with connection C(network_cli). See the U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_eos.html).

Examples

# Using merged

# Before state:
# -------------
# localhost(config)#show running-config | section ntp
# localhost(config)#

- name: Merge provided configuration with device configuration
  arista.eos.eos_ntp_global:
    config:
      authenticate:
        enable: true
      authentication_keys:
        - id: 2
          algorithm: "sha1"
          encryption: 7
          key: "123456"
        - id: 23
          algorithm: "md5"
          encryption: 7
          key: "123456"
      local_interface: "Ethernet1"
      qos_dscp: 10
      trusted_key: 23
      servers:
        - server: "10.1.1.1"
          vrf: "vrf01"
          burst: true
          prefer: true
        - server: "25.1.1.1"
          vrf: "vrf01"
          maxpoll: 15
          key_id: 2
      serve:
        access_lists:
          - afi: "ip"
            acls:
              - acl_name: "acl01"
                direction: "in"
          - afi: "ipv6"
            acls:
              - acl_name: "acl02"
                direction: "in"

# After State

# localhost(config)#show running-config | section ntp
# ntp authentication-key 2 sha1 7 123456
# ntp authentication-key 23 md5 7 123456
# ntp trusted-key 23
# ntp authenticate
# ntp local-interface Ethernet1
# ntp qos dscp 10
# ntp server vrf vrf01 10.1.1.1 prefer burst
# ntp server vrf vrf01 25.1.1.1 maxpoll 15 key 2
# ntp serve ip access-group acl01 in
# ntp serve ipv6 access-group acl02 in
# localhost(config)#
#
#
# Module Execution:
# "after": {
#         "authenticate": {
#             "enable": true
#         },
#         "authentication_keys": [
#             {
#                 "algorithm": "sha1",
#                 "encryption": 7,
#                 "id": 2,
#                 "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#             },
#             {
#                 "algorithm": "md5",
#                 "encryption": 7,
#                 "id": 23,
#                 "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#             }
#         ],
#         "local_interface": "Ethernet1",
#         "qos_dscp": 10,
#         "serve": {
#             "access_lists": [
#                 {
#                     "acls": [
#                         {
#                             "acl_name": "acl01",
#                             "direction": "in"
#                         }
#                     ],
#                     "afi": "ip"
#                 },
#                 {
#                     "acls": [
#                         {
#                             "acl_name": "acl02",
#                             "direction": "in"
#                         }
#                     ],
#                     "afi": "ipv6"
#                 }
#             ]
#         },
#         "servers": [
#             {
#                 "burst": true,
#                 "prefer": true,
#                 "server": "10.1.1.1",
#                 "vrf": "vrf01"
#             },
#             {
#                 "key_id": 2,
#                 "maxpoll": 15,
#                 "server": "25.1.1.1",
#                 "vrf": "vrf01"
#             }
#         ],
#         "trusted_key": "23"
#     },
#     "before": {},
#     "changed": true,
#     "commands": [
#         "ntp serve ip access-group acl01 in",
#         "ntp serve ipv6 access-group acl02 in",
#         "ntp authentication-key 2 sha1 7 ********",
#         "ntp authentication-key 23 md5 7 ********",
#         "ntp server vrf vrf01 10.1.1.1 burst prefer",
#         "ntp server vrf vrf01 25.1.1.1 key 2 maxpoll 15",
#         "ntp authenticate",
#         "ntp local-interface Ethernet1",
#         "ntp qos dscp 10",
#         "ntp trusted-key 23"
#     ],

# Using Replaced

# Before State

# localhost(config)#show running-config | section ntp
# ntp authentication-key 2 sha1 7 123456
# ntp authentication-key 23 md5 7 123456
# ntp trusted-key 23
# ntp authenticate
# ntp local-interface Ethernet1
# ntp qos dscp 10
# ntp server vrf vrf01 10.1.1.1 prefer burst
# ntp server vrf vrf01 25.1.1.1 maxpoll 15 key 2
# ntp serve ip access-group acl01 in
# ntp serve ipv6 access-group acl02 in
# localhost(config)#

- name: Replace
  arista.eos.eos_ntp_global:
    config:
      qos_dscp: 15
      authentication_keys:
        - id: 2
          algorithm: "md5"
          encryption: 7
          key: "123456"
      servers:
        - server: "11.21.1.1"
          vrf: "vrf01"
          burst: true
          prefer: true
          minpoll: 13
      serve:
        access_lists:
          - afi: "ip"
            acls:
              - acl_name: "acl03"
                direction: "in"
    state: replaced

# After State:
# localhost(config)#show running-config | section ntp
# ntp authentication-key 2 md5 7 123456
# ntp qos dscp 15
# ntp server vrf vrf01 11.21.1.1 prefer burst minpoll 13
# ntp serve ip access-group acl03 in
# localhost(config)#
#
#
# Module Execution:
# "after": {
#        "authentication_keys": [
#            {
#                "algorithm": "md5",
#                "encryption": 7,
#                "id": 2,
#                "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#            }
#        ],
#        "qos_dscp": 15,
#        "serve": {
#            "access_lists": [
#                {
#                    "acls": [
#                        {
#                            "acl_name": "acl03",
#                            "direction": "in"
#                        }
#                    ],
#                    "afi": "ip"
#                }
#            ]
#        },
#        "servers": [
#            {
#                "burst": true,
#                "minpoll": 13,
#                "prefer": true,
#                "server": "11.21.1.1",
#                "vrf": "vrf01"
#            }
#        ]
#    },
#    "before": {
#        "authenticate": {
#            "enable": true
#        },
#        "authentication_keys": [
#            {
#                "algorithm": "sha1",
#                "encryption": 7,
#                "id": 2,
#                "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#            },
#            {
#                "algorithm": "md5",
#                "encryption": 7,
#                "id": 23,
#                "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#            }
#        ],
#        "local_interface": "Ethernet1",
#        "qos_dscp": 10,
#        "serve": {
#            "access_lists": [
#                {
#                    "acls": [
#                        {
#                            "acl_name": "acl01",
#                            "direction": "in"
#                        }
#                    ],
#                    "afi": "ip"
#                },
#                {
#                    "acls": [
#                        {
#                            "acl_name": "acl02",
#                            "direction": "in"
#                        }
#                    ],
#                    "afi": "ipv6"
#                }
#            ]
#        },
#        "servers": [
#            {
#                "burst": true,
#                "prefer": true,
#                "server": "10.1.1.1",
#                "vrf": "vrf01"
#            },
#            {
#                "key_id": 2,
#                "maxpoll": 15,
#                "server": "25.1.1.1",
#                "vrf": "vrf01"
#            }
#        ],
#        "trusted_key": "23"
#    },
#    "changed": true,
#    "commands": [
#        "no ntp serve ip access-group acl01 in",
#        "no ntp serve ipv6 access-group acl02 in",
#        "no ntp authentication-key 23 md5 7 ********",
#        "no ntp server vrf vrf01 10.1.1.1 burst prefer",
#        "no ntp server vrf vrf01 25.1.1.1 key 2 maxpoll 15",
#        "no ntp authenticate",
#        "no ntp local-interface Ethernet1",
#        "no ntp trusted-key 23",
#        "ntp serve ip access-group acl03 in",
#        "ntp authentication-key 2 md5 7 ********",
#        "ntp server vrf vrf01 11.21.1.1 burst minpoll 13 prefer",
#        "ntp qos dscp 15"
#    ],
#
# Using Overridden

# Before State

# localhost(config)#show running-config | section ntp
# ntp authentication-key 2 sha1 7 123456
# ntp authentication-key 23 md5 7 123456
# ntp trusted-key 23
# ntp authenticate
# ntp local-interface Ethernet1
# ntp qos dscp 10
# ntp server vrf vrf01 10.1.1.1 prefer burst
# ntp server vrf vrf01 25.1.1.1 maxpoll 15 key 2
# ntp serve ip access-group acl01 in
# ntp serve ipv6 access-group acl02 in
# localhost(config)#

- name: Replace
  arista.eos.eos_ntp_global:
    config:
      qos_dscp: 15
      authentication_keys:
        - id: 2
          algorithm: "md5"
          encryption: 7
          key: "123456"
      servers:
        - server: "11.21.1.1"
          vrf: "vrf01"
          burst: true
          prefer: true
          minpoll: 13
      serve:
        access_lists:
          - afi: "ip"
            acls:
              - acl_name: "acl03"
                direction: "in"
    state: overridden

# After State:
# localhost(config)#show running-config | section ntp
# ntp authentication-key 2 md5 7 123456
# ntp qos dscp 15
# ntp server vrf vrf01 11.21.1.1 prefer burst minpoll 13
# ntp serve ip access-group acl03 in
# localhost(config)#
#
#
# Module Execution:
# "after": {
#        "authentication_keys": [
#            {
#                "algorithm": "md5",
#                "encryption": 7,
#                "id": 2,
#                "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#            }
#        ],
#        "qos_dscp": 15,
#        "serve": {
#            "access_lists": [
#                {
#                    "acls": [
#                        {
#                            "acl_name": "acl03",
#                            "direction": "in"
#                        }
#                    ],
#                    "afi": "ip"
#                }
#            ]
#        },
#        "servers": [
#            {
#                "burst": true,
#                "minpoll": 13,
#                "prefer": true,
#                "server": "11.21.1.1",
#                "vrf": "vrf01"
#            }
#        ]
#    },
#    "before": {
#        "authenticate": {
#            "enable": true
#        },
#        "authentication_keys": [
#            {
#                "algorithm": "sha1",
#                "encryption": 7,
#                "id": 2,
#                "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#            },
#            {
#                "algorithm": "md5",
#                "encryption": 7,
#                "id": 23,
#                "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#            }
#        ],
#        "local_interface": "Ethernet1",
#        "qos_dscp": 10,
#        "serve": {
#            "access_lists": [
#                {
#                    "acls": [
#                        {
#                            "acl_name": "acl01",
#                            "direction": "in"
#                        }
#                    ],
#                    "afi": "ip"
#                },
#                {
#                    "acls": [
#                        {
#                            "acl_name": "acl02",
#                            "direction": "in"
#                        }
#                    ],
#                    "afi": "ipv6"
#                }
#            ]
#        },
#        "servers": [
#            {
#                "burst": true,
#                "prefer": true,
#                "server": "10.1.1.1",
#                "vrf": "vrf01"
#            },
#            {
#                "key_id": 2,
#                "maxpoll": 15,
#                "server": "25.1.1.1",
#                "vrf": "vrf01"
#            }
#        ],
#        "trusted_key": "23"
#    },
#    "changed": true,
#    "commands": [
#        "no ntp serve ip access-group acl01 in",
#        "no ntp serve ipv6 access-group acl02 in",
#        "no ntp authentication-key 23 md5 7 ********",
#        "no ntp server vrf vrf01 10.1.1.1 burst prefer",
#        "no ntp server vrf vrf01 25.1.1.1 key 2 maxpoll 15",
#        "no ntp authenticate",
#        "no ntp local-interface Ethernet1",
#        "no ntp trusted-key 23",
#        "ntp serve ip access-group acl03 in",
#        "ntp authentication-key 2 md5 7 ********",
#        "ntp server vrf vrf01 11.21.1.1 burst minpoll 13 prefer",
#        "ntp qos dscp 15"
#    ],
#

# using deleted:
# Before State

# localhost(config)#show running-config | section ntp
# ntp authentication-key 2 sha1 7 123456
# ntp authentication-key 23 md5 7 123456
# ntp trusted-key 23
# ntp authenticate
# ntp local-interface Ethernet1
# ntp qos dscp 10
# ntp server vrf vrf01 10.1.1.1 prefer burst
# ntp server vrf vrf01 11.21.1.1 prefer burst minpoll 13
# ntp server vrf vrf01 25.1.1.1 maxpoll 15 key 2
# ntp serve ip access-group acl01 in
# ntp serve ipv6 access-group acl02 in
# localhost(config)#

- name: Delete  ntp-global
  arista.eos.eos_ntp_global:
    state: deleted

# After State:
#  localhost(config)#show running-config | section ntp
# localhost(config)#
#
#
# # Module Execution
# "after": {},
#     "before": {
#         "authenticate": {
#             "enable": true
#         },
#         "authentication_keys": [
#             {
#                 "algorithm": "sha1",
#                 "encryption": 7,
#                 "id": 2,
#                 "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#             },
#             {
#                 "algorithm": "md5",
#                 "encryption": 7,
#                 "id": 23,
#                 "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#             }
#         ],
#         "local_interface": "Ethernet1",
#         "qos_dscp": 10,
#         "serve": {
#             "access_lists": [
#                 {
#                     "acls": [
#                         {
#                             "acl_name": "acl01",
#                             "direction": "in"
#                         }
#                     ],
#                     "afi": "ip"
#                 },
#                 {
#                     "acls": [
#                         {
#                             "acl_name": "acl02",
#                             "direction": "in"
#                         }
#                     ],
#                     "afi": "ipv6"
#                 }
#             ]
#         },
#         "servers": [
#             {
#                 "burst": true,
#                 "prefer": true,
#                 "server": "10.1.1.1",
#                 "vrf": "vrf01"
#             },
#             {
#                 "burst": true,
#                 "minpoll": 13,
#                 "prefer": true,
#                 "server": "11.21.1.1",
#                 "vrf": "vrf01"
#             },
#             {
#                 "key": 2,
#                 "maxpoll": 15,
#                 "server": "25.1.1.1",
#                 "vrf": "vrf01"
#             }
#         ],
#         "trusted_key": "23"
#     },
#     "changed": true,
#     "commands": [
#         "no ntp serve ip access-group acl01 in",
#         "no ntp serve ipv6 access-group acl02 in",
#         "no ntp authentication-key 2 sha1 7 ********",
#         "no ntp authentication-key 23 md5 7 ********",
#         "no ntp server vrf vrf01 10.1.1.1 burst prefer",
#         "no ntp server vrf vrf01 11.21.1.1 burst minpoll 13 prefer",
#         "no ntp server vrf vrf01 25.1.1.1 key 2 maxpoll 15",
#         "no ntp authenticate",
#         "no ntp local-interface Ethernet1",
#         "no ntp qos dscp 10",
#         "no ntp trusted-key 23"
#     ],
#

# Using parsed:
# parsed.cfg
# ntp authentication-key 2 sha1 7 123456
# ntp authentication-key 23 md5 7 123456
# ntp trusted-key 23
# ntp authenticate
# ntp local-interface Ethernet1
# ntp qos dscp 10
# ntp server vrf vrf01 10.1.1.1 prefer burst
# ntp server vrf vrf01 11.21.1.1 prefer burst minpoll 13
# ntp server vrf vrf01 25.1.1.1 maxpoll 15 key 2
# ntp serve ip access-group acl01 in
# ntp serve ipv6 access-group acl02 in

- name: parse configs
  arista.eos.eos_ntp_global:
    running_config: "{{ lookup('file', './parsed_ntp_global.cfg') }}"
    state: parsed
  tags:
    - parsed

# Module Execution
# "parsed": {
#         "authenticate": {
#             "enable": true
#         },
#         "authentication_keys": [
#             {
#                 "algorithm": "sha1",
#                 "encryption": 7,
#                 "id": 2,
#                 "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#             },
#             {
#                 "algorithm": "md5",
#                 "encryption": 7,
#                 "id": 23,
#                 "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#             }
#         ],
#         "local_interface": "Ethernet1",
#         "qos_dscp": 10,
#         "serve": {
#             "access_lists": [
#                 {
#                     "acls": [
#                         {
#                             "acl_name": "acl01",
#                             "direction": "in"
#                         }
#                     ],
#                     "afi": "ip"
#                 },
#                 {
#                     "acls": [
#                         {
#                             "acl_name": "acl02",
#                             "direction": "in"
#                         }
#                     ],
#                     "afi": "ipv6"
#                 }
#             ]
#         },
#         "servers": [
#             {
#                 "burst": true,
#                 "prefer": true,
#                 "server": "10.1.1.1",
#                 "vrf": "vrf01"
#             },
#             {
#                 "burst": true,
#                 "minpoll": 13,
#                 "prefer": true,
#                 "server": "11.21.1.1",
#                 "vrf": "vrf01"
#             },
#             {
#                 "key": 2,
#                 "maxpoll": 15,
#                 "server": "25.1.1.1",
#                 "vrf": "vrf01"
#             }
#         ],
#         "trusted_key": "23"
#     }
# }

# using Gathered
# Device config:
# localhost(config)#show running-config | section ntp
# ntp authentication-key 2 sha1 7 123456
# ntp authentication-key 23 md5 7 123456
# ntp trusted-key 23
# ntp authenticate
# ntp local-interface Ethernet1
# ntp qos dscp 10
# ntp server vrf vrf01 10.1.1.1 prefer burst
# ntp server vrf vrf01 25.1.1.1 maxpoll 15 key 2
# ntp serve ip access-group acl01 in
# ntp serve ipv6 access-group acl02 in
# localhost(config)#

- name: gather configs
  arista.eos.eos_ntp_global:
    state: gathered
  tags:
    - gathered

# Module Execution

#   "gathered": {
#         "authenticate": {
#             "enable": true
#         },
#         "authentication_keys": [
#             {
#                 "algorithm": "sha1",
#                 "encryption": 7,
#                 "id": 2,
#                 "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#             },
#             {
#                 "algorithm": "md5",
#                 "encryption": 7,
#                 "id": 23,
#                 "key": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER"
#             }
#         ],
#         "local_interface": "Ethernet1",
#         "qos_dscp": 10,
#         "serve": {
#             "access_lists": [
#                 {
#                     "acls": [
#                         {
#                             "acl_name": "acl01",
#                             "direction": "in"
#                         }
#                     ],
#                     "afi": "ip"
#                 },
#                 {
#                     "acls": [
#                         {
#                             "acl_name": "acl02",
#                             "direction": "in"
#                         }
#                     ],
#                     "afi": "ipv6"
#                 }
#             ]
#         },
#         "servers": [
#             {
#                 "burst": true,
#                 "prefer": true,
#                 "server": "10.1.1.1",
#                 "vrf": "vrf01"
#             },
#             {
#                 "key_id": 2,
#                 "maxpoll": 15,
#                 "server": "25.1.1.1",
#                 "vrf": "vrf01"
#             }
#         ],
#         "trusted_key": "23"
#     },
#     "invocation": {
#         "module_args": {
#             "config": null,
#             "running_config": null,
#             "state": "gathered"
#         }
#     }
# }

# using rendered:

- name: Render provided configuration
  arista.eos.eos_ntp_global:
    config:
      authenticate:
        enable: true
      authentication_keys:
        - id: 2
          algorithm: "sha1"
          encryption: 7
          key: "123456"
        - id: 23
          algorithm: "md5"
          encryption: 7
          key: "123456"
      local_interface: "Ethernet1"
      qos_dscp: 10
      trusted_key: 23
      servers:
        - server: "10.1.1.1"
          vrf: "vrf01"
          burst: true
          prefer: true
        - server: "25.1.1.1"
          vrf: "vrf01"
          maxpoll: 15
          key_id: 2
      serve:
        access_lists:
          - afi: "ip"
            acls:
              - acl_name: "acl01"
                direction: "in"
          - afi: "ipv6"
            acls:
              - acl_name: "acl02"
                direction: "in"
    state: rendered

# Module Execution:
# "rendered": [
#         "ntp serve ip access-group acl01 in",
#         "ntp serve ipv6 access-group acl02 in",
#         "ntp authentication-key 2 sha1 7 ********",
#         "ntp authentication-key 23 md5 7 ********",
#         "ntp server vrf vrf01 10.1.1.1 burst prefer",
#         "ntp server vrf vrf01 25.1.1.1 key 2 maxpoll 15",
#         "ntp authenticate",
#         "ntp local-interface Ethernet1",
#         "ntp qos dscp 10",
#         "ntp trusted-key 23"
#     ]
#

Return Values

Key Data Type Description Returned
after dict The resulting configuration after module execution. when changed
before dict The configuration prior to the module execution. when I(state) is C(merged), C(replaced), C(overridden), C(deleted) or C(purged)
commands list The set of commands pushed to the remote device. when I(state) is C(merged), C(replaced), C(overridden), C(deleted) or C(purged)
gathered list Facts about the network resource gathered from the remote device as structured data. when I(state) is C(gathered)
parsed list The device native config provided in I(running_config) option parsed into structured data as per module argspec. when I(state) is C(parsed)
rendered list The provided configuration in the task rendered in device-native format (offline). when I(state) is C(rendered)

Authors

  • Gomathi Selvi Srinivasan (@gomathiselvis)