Heat templates for deploying OpenStack
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

115 lines
4.0 KiB

heat_template_version: rocky
description: >
NTP service deployment using puppet, this YAML file
creates the interface between the HOT template
and the puppet manifest that actually installs
and configure NTP.
parameters:
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
NtpServer:
default: ['0.pool.ntp.org', '1.pool.ntp.org', '2.pool.ntp.org', '3.pool.ntp.org']
description: NTP servers list. Defaulted to a set of pool.ntp.org servers
in order to have a sane default for Pacemaker deployments when
not configuring this parameter by default.
type: comma_delimited_list
NtpIburstEnable:
default: true
description: Specifies whether to enable the iburst option for every NTP
peer. If iburst is enabled, when the ntp server is unreachable
ntp will send a burst of eight packages instead of one. This
is designed to speed up the initial syncrhonization.
type: boolean
MaxPoll:
description: Specify maximum poll interval of upstream servers for NTP
messages, in seconds to the power of two.
The maximum poll interval defaults to 10 (1,024 s).
Allowed values are 4 to 17.
type: number
default: 10
constraints:
- range: { min: 4, max: 17 }
MinPoll:
description: Specify minimum poll interval of upstream servers for NTP
messages, in seconds to the power of two.
The minimum poll interval defaults to 6 (64 s).
Allowed values are 4 to 17.
type: number
default: 6
constraints:
- range: { min: 4, max: 17 }
EnablePackageInstall:
default: 'false'
description: Set to true to enable package installation at deploy time
type: boolean
outputs:
role_data:
description: Role ntp using composable services.
value:
service_name: ntp
config_settings:
ntp::servers: {get_param: NtpServer}
ntp::iburst_enable: {get_param: NtpIburstEnable}
ntp::maxpoll:: {get_param: MaxPoll}
ntp::minpoll:: {get_param: MinPoll}
tripleo::ntp::firewall_rules:
'105 ntp':
dport: 123
proto: udp
step_config: |
include ::tripleo::profile::base::time::ntp
host_prep_tasks:
- name: Populate service facts (ntp)
service_facts: # needed to make yaml happy
- name: Disable chronyd before configuring NTP
service:
name: chronyd
state: stopped
enabled: no
when: "'chronyd.service' in ansible_facts.services"
- name: Disable chrony-wait before configuring NTP
service:
name: chrony-wait
state: stopped
enabled: no
when: "'chrony-wait.service' in ansible_facts.services"
- name: NTP settings
set_fact:
ntp_servers: {get_param: NtpServer}
ntp_install_packages: {get_param: EnablePackageInstall}
- block:
- name: Install ntpdate
package:
name: ntpdate
state: present
when: ntp_install_packages|bool
- name: Ensure system is NTP time synced
command: ntpdate -u {{ ntp_servers | join(" ") }}
when: ntp_servers