Resource module to configure NTP.
Version added: 2.5.0
- This module configures and manages the attributes of ntp on Cisco IOSXR platforms.
Note
- Tested against IOSXR 7.0.2.
- This module works with connection
network_cli
.
# Using state: merged
# Before state:
# -------------
# RP/0/0/CPU0:10#show running-config ntp
# --------------------- EMPTY -----------------
# Merged play:
# ------------
- name: Merge the provided configuration with the existing running configuration
cisco.iosxr.iosxr_ntp_global:
config:
access_group:
ipv4:
peer: PeerAcl1
query_only: QueryOnlyAcl1
serve: ServeAcl1
serve_only: ServeOnlyAcl1
vrfs:
- ipv4:
peer: PeerAcl3
serve: ServeAcl2
name: siteA
authenticate: true
broadcastdelay: 1
drift:
aging_time: 0
file: apphost
interfaces:
- name: GigabitEthernet0/0/0/0
multicast_client: 224.0.0.8
multicast_destination: 224.0.0.8
broadcast_client: true
ipv4:
dscp: af11
ipv6:
precedence: routine
log_internal_sync: true
master: 1
max_associations: 10
passive: true
peers:
- iburst: true
peer: 192.0.2.1
vrf: siteC
servers:
- burst: true
server: 192.0.2.2
vrf: siteD
source: GigabitEthernet0/0/0/0
source_vrfs:
- name: GigabitEthernet0/0/0/0
vrf: siteE
trusted_keys:
- key_id: 1
update_calendar: true
# Commands Fired:
# ------------
# "commands": [
# "ntp peer vrf siteC 192.0.2.1 iburst ",
# "ntp server vrf siteD 192.0.2.2 burst ",
# "ntp trusted-key 1",
# "ntp interface GigabitEthernet0/0/0/0 broadcast client",
# "ntp interface GigabitEthernet0/0/0/0 multicast destination 224.0.0.8",
# "ntp interface GigabitEthernet0/0/0/0 multicast client 224.0.0.8",
# "ntp vrf siteE source GigabitEthernet0/0/0/0",
# "ntp access-group vrf siteA ipv4 serve ServeAcl2",
# "ntp access-group vrf siteA ipv4 peer PeerAcl3",
# "ntp access-group ipv4 peer PeerAcl1",
# "ntp access-group ipv4 serve ServeAcl1",
# "ntp access-group ipv4 serve-only ServeOnlyAcl1",
# "ntp access-group ipv4 query-only QueryOnlyAcl1",
# "ntp authenticate",
# "ntp log-internal-sync",
# "ntp broadcastdelay 1",
# "ntp drift aging time 0",
# "ntp drift file apphost",
# "ntp ipv4 dscp af11",
# "ntp ipv6 precedence routine",
# "ntp max-associations 10",
# "ntp master 1",
# "ntp passive",
# "ntp update-calendar",
# "ntp source GigabitEthernet0/0/0/0"
# ],
# After state:
# ------------
# RP/0/0/CPU0:10#show running-config ntp
# ntp
# max-associations 10
# interface GigabitEthernet0/0/0/0
# broadcast client
# multicast client 224.0.0.8
# multicast destination 224.0.0.8
# !
# authenticate
# trusted-key 1
# ipv4 dscp af11
# ipv6 precedence routine
# peer vrf siteC 192.0.2.1 iburst
# server vrf siteD 192.0.2.2 burst
# drift file apphost
# drift aging time 0
# master 1
# access-group vrf siteA ipv4 peer PeerAcl3
# access-group vrf siteA ipv4 serve ServeAcl2
# access-group ipv4 peer PeerAcl1
# access-group ipv4 serve ServeAcl1
# access-group ipv4 serve-only ServeOnlyAcl1
# access-group ipv4 query-only QueryOnlyAcl1
# source vrf siteE GigabitEthernet0/0/0/0
# source GigabitEthernet0/0/0/0
# passive
# broadcastdelay 1
# update-calendar
# log-internal-sync
# !
# Using state: deleted
# Before state:
# -------------
# RP/0/0/CPU0:10#show running-config ntp
# ntp
# max-associations 10
# interface GigabitEthernet0/0/0/0
# broadcast client
# multicast client 224.0.0.8
# multicast destination 224.0.0.8
# !
# authenticate
# trusted-key 1
# ipv4 dscp af11
# ipv6 precedence routine
# peer vrf siteC 192.0.2.1 iburst
# server vrf siteD 192.0.2.2 burst
# drift file apphost
# drift aging time 0
# master 1
# access-group vrf siteA ipv4 peer PeerAcl3
# access-group vrf siteA ipv4 serve ServeAcl2
# access-group ipv4 peer PeerAcl1
# access-group ipv4 serve ServeAcl1
# access-group ipv4 serve-only ServeOnlyAcl1
# access-group ipv4 query-only QueryOnlyAcl1
# source vrf siteE GigabitEthernet0/0/0/0
# source GigabitEthernet0/0/0/0
# passive
# broadcastdelay 1
# update-calendar
# log-internal-sync
# !
# Deleted play:
# -------------
- name: Remove all existing configuration
cisco.iosxr.iosxr_ntp_global:
state: deleted
# Commands Fired:
# ---------------
# "commands": [
# "no ntp peer vrf siteC 192.0.2.1 iburst ",
# "no ntp server vrf siteD 192.0.2.2 burst ",
# "no ntp trusted-key 1",
# "no ntp interface GigabitEthernet0/0/0/0",
# "no ntp vrf siteE source GigabitEthernet0/0/0/0",
# "no ntp access-group vrf siteA ipv4 serve ServeAcl2",
# "no ntp access-group vrf siteA ipv4 peer PeerAcl3",
# "no ntp access-group ipv4 peer PeerAcl1",
# "no ntp access-group ipv4 serve ServeAcl1",
# "no ntp access-group ipv4 serve-only ServeOnlyAcl1",
# "no ntp access-group ipv4 query-only QueryOnlyAcl1",
# "no ntp authenticate",
# "no ntp log-internal-sync",
# "no ntp broadcastdelay 1",
# "no ntp drift aging time 0",
# "no ntp drift file apphost",
# "no ntp ipv4 dscp af11",
# "no ntp ipv6 precedence routine",
# "no ntp max-associations 10",
# "no ntp master 1",
# "no ntp passive",
# "no ntp update-calendar",
# "no ntp source GigabitEthernet0/0/0/0"
# ],
# After state:
# ------------
# RP/0/0/CPU0:10#show running-config ntp
# --------------------- EMPTY -----------------
# Using state: overridden
# Before state:
# -------------
# RP/0/0/CPU0:10#show running-config ntp
# ntp
# max-associations 10
# interface GigabitEthernet0/0/0/0
# broadcast client
# multicast client 224.0.0.8
# multicast destination 224.0.0.8
# !
# authenticate
# trusted-key 1
# ipv4 dscp af11
# ipv6 precedence routine
# peer vrf siteC 192.0.2.1 iburst
# server vrf siteD 192.0.2.2 burst
# drift file apphost
# drift aging time 0
# master 1
# access-group vrf siteA ipv4 peer PeerAcl3
# access-group vrf siteA ipv4 serve ServeAcl2
# access-group ipv4 peer PeerAcl1
# access-group ipv4 serve ServeAcl1
# access-group ipv4 serve-only ServeOnlyAcl1
# access-group ipv4 query-only QueryOnlyAcl1
# source vrf siteE GigabitEthernet0/0/0/0
# source GigabitEthernet0/0/0/0
# passive
# broadcastdelay 1
# update-calendar
# log-internal-sync
# !
# Overridden play:
# ----------------
- name: Override BGP configuration with provided configuration
cisco.iosxr.iosxr_ntp_global:
state: overridden
config:
access_group:
ipv4:
peer: PeerAcl1
query_only: QueryOnlyAcl1
serve: ServeAcl4
serve_only: ServeOnlyAcl1
vrfs:
- ipv4:
peer: PeerAcl3
serve: ServeAcl2
name: siteA
authenticate: true
broadcastdelay: 1
drift:
aging_time: 0
file: apphost
interfaces:
- name: GigabitEthernet0/0/0/1
multicast_client: 224.0.0.8
multicast_destination: 224.0.0.8
broadcast_client: true
ipv4:
dscp: af12
ipv6:
precedence: routine
log_internal_sync: true
master: 1
max_associations: 10
passive: true
peers:
- iburst: true
peer: 192.0.2.3
vrf: siteC
servers:
- burst: true
server: 192.0.2.2
vrf: siteD
source: GigabitEthernet0/0/0/1
source_vrfs:
- name: GigabitEthernet0/0/0/0
vrf: siteE
trusted_keys:
- key_id: 1
update_calendar: true
# Commands Fired:
# ---------------
# "commands": [
# "no ntp peer vrf siteC 192.0.2.1 iburst ",
# "no ntp interface GigabitEthernet0/0/0/0",
# "ntp peer vrf siteC 192.0.2.3 iburst ",
# "ntp interface GigabitEthernet0/0/0/1 broadcast client",
# "ntp interface GigabitEthernet0/0/0/1 multicast destination 224.0.0.8",
# "ntp interface GigabitEthernet0/0/0/1 multicast client 224.0.0.8",
# "ntp access-group ipv4 serve ServeAcl4",
# "ntp ipv4 dscp af12",
# "ntp source GigabitEthernet0/0/0/1"
# ],
# After state:
# ------------
# RP/0/RP0/CPU0:ios#show running-config ntp
# Mon Sep 13 10:38:22.690 UTC
# ntp
# max-associations 10
# interface GigabitEthernet0/0/0/1
# broadcast client
# multicast client 224.0.0.8
# multicast destination 224.0.0.8
# !
# authentication-key 1 md5 encrypted testkey
# authenticate
# trusted-key 1
# ipv4 dscp af12
# ipv6 precedence routine
# peer vrf siteC 192.0.2.3 iburst
# server vrf siteD 192.0.2.2 burst
# drift file apphost
# drift aging time 0
# master 1
# access-group vrf siteA ipv4 peer PeerAcl3
# access-group vrf siteA ipv4 serve ServeAcl2
# access-group ipv4 peer PeerAcl1
# access-group ipv4 serve ServeAcl4
# access-group ipv4 serve-only ServeOnlyAcl1
# access-group ipv4 query-only QueryOnlyAcl1
# source vrf siteE GigabitEthernet0/0/0/0
# source GigabitEthernet0/0/0/1
# passive
# broadcastdelay 1
# update-calendar
# log-internal-sync
# !
#
# Using state: replaced
# Before state:
# -------------
# RP/0/0/CPU0:10#show running-config ntp
# ntp
# max-associations 10
# interface GigabitEthernet0/0/0/0
# broadcast client
# multicast client 224.0.0.8
# multicast destination 224.0.0.8
# !
# authenticate
# trusted-key 1
# ipv4 dscp af11
# ipv6 precedence routine
# peer vrf siteC 192.0.2.1 iburst
# server vrf siteD 192.0.2.2 burst
# drift file apphost
# drift aging time 0
# master 1
# access-group vrf siteA ipv4 peer PeerAcl3
# access-group vrf siteA ipv4 serve ServeAcl2
# access-group ipv4 peer PeerAcl1
# access-group ipv4 serve ServeAcl1
# access-group ipv4 serve-only ServeOnlyAcl1
# access-group ipv4 query-only QueryOnlyAcl1
# source vrf siteE GigabitEthernet0/0/0/0
# source GigabitEthernet0/0/0/0
# passive
# broadcastdelay 1
# update-calendar
# log-internal-sync
# !
# Replaced play:
# ----------------
- name: Replaced BGP configuration with provided configuration
cisco.iosxr.iosxr_ntp_global:
state: replaced
config:
access_group:
ipv4:
peer: PeerAcl1
query_only: QueryOnlyAcl1
serve: ServeAcl4
serve_only: ServeOnlyAcl1
vrfs:
- ipv4:
peer: PeerAcl3
serve: ServeAcl2
name: siteA
authenticate: true
broadcastdelay: 1
drift:
aging_time: 0
file: apphost
interfaces:
- name: GigabitEthernet0/0/0/1
multicast_client: 224.0.0.8
multicast_destination: 224.0.0.8
broadcast_client: true
ipv4:
dscp: af12
ipv6:
precedence: routine
log_internal_sync: true
master: 1
max_associations: 10
passive: true
peers:
- iburst: true
peer: 192.0.2.3
vrf: siteC
servers:
- burst: true
server: 192.0.2.2
vrf: siteD
source: GigabitEthernet0/0/0/1
source_vrfs:
- name: GigabitEthernet0/0/0/0
vrf: siteE
trusted_keys:
- key_id: 1
update_calendar: true
# Commands Fired:
# ---------------
# "commands": [
# "no ntp peer vrf siteC 192.0.2.1 iburst ",
# "no ntp interface GigabitEthernet0/0/0/0",
# "ntp peer vrf siteC 192.0.2.3 iburst ",
# "ntp interface GigabitEthernet0/0/0/1 broadcast client",
# "ntp interface GigabitEthernet0/0/0/1 multicast destination 224.0.0.8",
# "ntp interface GigabitEthernet0/0/0/1 multicast client 224.0.0.8",
# "ntp access-group ipv4 serve ServeAcl4",
# "ntp ipv4 dscp af12",
# "ntp source GigabitEthernet0/0/0/1"
# ],
# After state:
# ------------
# RP/0/RP0/CPU0:ios#show running-config ntp
# Mon Sep 13 10:38:22.690 UTC
# ntp
# max-associations 10
# interface GigabitEthernet0/0/0/1
# broadcast client
# multicast client 224.0.0.8
# multicast destination 224.0.0.8
# !
# authentication-key 1 md5 encrypted testkey
# authenticate
# trusted-key 1
# ipv4 dscp af12
# ipv6 precedence routine
# peer vrf siteC 192.0.2.3 iburst
# server vrf siteD 192.0.2.2 burst
# drift file apphost
# drift aging time 0
# master 1
# access-group vrf siteA ipv4 peer PeerAcl3
# access-group vrf siteA ipv4 serve ServeAcl2
# access-group ipv4 peer PeerAcl1
# access-group ipv4 serve ServeAcl4
# access-group ipv4 serve-only ServeOnlyAcl1
# access-group ipv4 query-only QueryOnlyAcl1
# source vrf siteE GigabitEthernet0/0/0/0
# source GigabitEthernet0/0/0/1
# passive
# broadcastdelay 1
# update-calendar
# log-internal-sync
# !
# Using state: gathered
# Before state:
# -------------
# RP/0/0/CPU0:10#show running-config ntp
# ntp
# max-associations 10
# interface GigabitEthernet0/0/0/0
# broadcast client
# multicast client 224.0.0.8
# multicast destination 224.0.0.8
# !
# authenticate
# trusted-key 1
# ipv4 dscp af11
# ipv6 precedence routine
# peer vrf siteC 192.0.2.1 iburst
# server vrf siteD 192.0.2.2 burst
# drift file apphost
# drift aging time 0
# master 1
# access-group vrf siteA ipv4 peer PeerAcl3
# access-group vrf siteA ipv4 serve ServeAcl2
# access-group ipv4 peer PeerAcl1
# access-group ipv4 serve ServeAcl1
# access-group ipv4 serve-only ServeOnlyAcl1
# access-group ipv4 query-only QueryOnlyAcl1
# source vrf siteE GigabitEthernet0/0/0/0
# source GigabitEthernet0/0/0/0
# passive
# broadcastdelay 1
# update-calendar
# log-internal-sync
# !
# Gathered play:
# --------------
- name: Gather listed ntp config
cisco.iosxr.iosxr_ntp_global:
state: gathered
# Module Execution Result:
# ------------------------
# "gathered":{
# "access_group": {
# "ipv4": {
# "peer": "PeerAcl1",
# "query_only": "QueryOnlyAcl1",
# "serve": "ServeAcl1",
# "serve_only": "ServeOnlyAcl1"
# },
# "vrfs": [
# {
# "ipv4": {
# "peer": "PeerAcl3",
# "serve": "ServeAcl2"
# },
# "name": "siteA"
# }
# ]
# },
# "authenticate": true,
# "broadcastdelay": 1,
# "drift": {
# "aging_time": 0,
# "file": "apphost"
# },
# "interfaces": [
# {
# "broadcast_client": true,
# "multicast_client": "224.0.0.8",
# "multicast_destination": "224.0.0.8",
# "name": "GigabitEthernet0/0/0/0"
# }
# ],
# "ipv4": {
# "dscp": "af11"
# },
# "ipv6": {
# "precedence": "routine"
# },
# "log_internal_sync": true,
# "master": 1,
# "max_associations": 10,
# "passive": true,
# "peers": [
# {
# "iburst": true,
# "peer": "192.0.2.1",
# "vrf": "siteC"
# }
# ],
# "servers": [
# {
# "burst": true,
# "server": "192.0.2.2",
# "vrf": "siteD"
# }
# ],
# "source": "GigabitEthernet0/0/0/0",
# "source_vrfs": [
# {
# "name": "GigabitEthernet0/0/0/0",
# "vrf": "siteE"
# }
# ],
# "trusted_keys": [
# {
# "key_id": 1
# }
# ],
# "update_calendar": true
# }
# Using state: rendered
# Rendered play:
# --------------
- name: >-
Render platform specific configuration lines with state rendered (without
connecting to the device)
cisco.iosxr.iosxr_ntp_global:
state: rendered
config:
access_group:
ipv4:
peer: PeerAcl1
query_only: QueryOnlyAcl1
serve: ServeAcl1
serve_only: ServeOnlyAcl1
vrfs:
- ipv4:
peer: PeerAcl3
serve: ServeAcl2
name: siteA
authenticate: true
broadcastdelay: 1
drift:
aging_time: 0
file: apphost
interfaces:
- name: GigabitEthernet0/0/0/0
multicast_client: 224.0.0.8
multicast_destination: 224.0.0.8
broadcast_client: true
ipv4:
dscp: af11
ipv6:
precedence: routine
log_internal_sync: true
master: 1
max_associations: 10
passive: true
peers:
- iburst: true
peer: 192.0.2.1
vrf: siteC
servers:
- burst: true
server: 192.0.2.2
vrf: siteD
source: GigabitEthernet0/0/0/0
source_vrfs:
- name: GigabitEthernet0/0/0/0
vrf: siteE
trusted_keys:
- key_id: 1
update_calendar: true
register: result
# Module Execution Result:
# ------------------------
# "rendered": [
# "ntp peer vrf siteC 192.0.2.1 iburst ",
# "ntp server vrf siteD 192.0.2.2 burst ",
# "ntp trusted-key 1",
# "ntp interface GigabitEthernet0/0/0/0 broadcast client",
# "ntp interface GigabitEthernet0/0/0/0 multicast destination 224.0.0.8",
# "ntp interface GigabitEthernet0/0/0/0 multicast client 224.0.0.8",
# "ntp vrf siteE source GigabitEthernet0/0/0/0",
# "ntp access-group vrf siteA ipv4 serve ServeAcl2",
# "ntp access-group vrf siteA ipv4 peer PeerAcl3",
# "ntp access-group ipv4 peer PeerAcl1",
# "ntp access-group ipv4 serve ServeAcl1",
# "ntp access-group ipv4 serve-only ServeOnlyAcl1",
# "ntp access-group ipv4 query-only QueryOnlyAcl1",
# "ntp authenticate",
# "ntp log-internal-sync",
# "ntp broadcastdelay 1",
# "ntp drift aging time 0",
# "ntp drift file apphost",
# "ntp ipv4 dscp af11",
# "ntp ipv6 precedence routine",
# "ntp max-associations 10",
# "ntp master 1",
# "ntp passive",
# "ntp update-calendar",
# "ntp source GigabitEthernet0/0/0/0"
# ],
# Using state: parsed
# File: parsed.cfg
# ----------------
# ntp
# max-associations 10
# interface GigabitEthernet0/0/0/0
# broadcast client
# multicast client 224.0.0.8
# multicast destination 224.0.0.8
# !
# authenticate
# trusted-key 1
# ipv4 dscp af11
# ipv6 precedence routine
# peer vrf siteC 192.0.2.1 iburst
# server vrf siteD 192.0.2.2 burst
# drift file apphost
# drift aging time 0
# master 1
# access-group vrf siteA ipv4 peer PeerAcl3
# access-group vrf siteA ipv4 serve ServeAcl2
# access-group ipv4 peer PeerAcl1
# access-group ipv4 serve ServeAcl1
# access-group ipv4 serve-only ServeOnlyAcl1
# access-group ipv4 query-only QueryOnlyAcl1
# source vrf siteE GigabitEthernet0/0/0/0
# source GigabitEthernet0/0/0/0
# passive
# broadcastdelay 1
# update-calendar
# log-internal-sync
# !
# Parsed play:
# ------------
- name: Parse the provided configuration with the existing running configuration
cisco.iosxr.iosxr_ntp_global:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Module Execution Result:
# ------------------------
# "parsed":{
# "access_group": {
# "ipv4": {
# "peer": "PeerAcl1",
# "query_only": "QueryOnlyAcl1",
# "serve": "ServeAcl1",
# "serve_only": "ServeOnlyAcl1"
# },
# "vrfs": [
# {
# "ipv4": {
# "peer": "PeerAcl3",
# "serve": "ServeAcl2"
# },
# "name": "siteA"
# }
# ]
# },
# "authenticate": true,
# "broadcastdelay": 1,
# "drift": {
# "aging_time": 0,
# "file": "apphost"
# },
# "interfaces": [
# {
# "broadcast_client": true,
# "multicast_client": "224.0.0.8",
# "multicast_destination": "224.0.0.8",
# "name": "GigabitEthernet0/0/0/0"
# }
# ],
# "ipv4": {
# "dscp": "af11"
# },
# "ipv6": {
# "precedence": "routine"
# },
# "log_internal_sync": true,
# "master": 1,
# "max_associations": 10,
# "passive": true,
# "peers": [
# {
# "iburst": true,
# "peer": "192.0.2.1",
# "vrf": "siteC"
# }
# ],
# "servers": [
# {
# "burst": true,
# "server": "192.0.2.2",
# "vrf": "siteD"
# }
# ],
# "source": "GigabitEthernet0/0/0/0",
# "source_vrfs": [
# {
# "name": "GigabitEthernet0/0/0/0",
# "vrf": "siteE"
# }
# ],
# "trusted_keys": [
# {
# "key_id": 1
# }
# ],
# "update_calendar": true
# }
Common return values are documented here, the following are the fields unique to this module:
- Ashwini Mhatre (@amhatre)