eos_ntp_global¶
Collection Note
This module is part of the arista.eos collection. To install the collection, use:
Added in version3.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)