Merge "Added ntpd service start to prescript" into folsom
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
Plugin responsible for setting Openstack global options
|
||||
"""
|
||||
|
||||
import uuid
|
||||
import logging
|
||||
|
||||
import packstack.installer.engine_validators as validate
|
||||
@@ -96,6 +97,18 @@ def initConfig(controllerObject):
|
||||
"USE_DEFAULT" : False,
|
||||
"NEED_CONFIRM" : False,
|
||||
"CONDITION" : False },
|
||||
{"CMD_OPTION" : "ntp-severs",
|
||||
"USAGE" : "Comma separated list of NTP servers. Leave plain if packstack should not install ntpd on instances.",
|
||||
"PROMPT" : "Enter list of NTP server(s). Leave plain if packstack should not install ntpd on instances.",
|
||||
"OPTION_LIST" : [],
|
||||
"VALIDATION_FUNC" : lambda param, options: True,
|
||||
"DEFAULT_VALUE" : '',
|
||||
"MASK_INPUT" : False,
|
||||
"LOOSE_VALIDATION": False,
|
||||
"CONF_NAME" : "CONFIG_NTP_SERVERS",
|
||||
"USE_DEFAULT" : False,
|
||||
"NEED_CONFIRM" : False,
|
||||
"CONDITION" : False },
|
||||
]
|
||||
groupDict = { "GROUP_NAME" : "GLOBAL",
|
||||
"DESCRIPTION" : "Global Options",
|
||||
@@ -111,8 +124,34 @@ def initSequences(controller):
|
||||
]
|
||||
controller.addSequence("Running Pre install scripts", [], [], osclientsteps)
|
||||
|
||||
if controller.CONF['CONFIG_NTP_SERVERS']:
|
||||
ntp_step = [{'functions': [create_ntp_manifest],
|
||||
'title': 'Installing time synchronization via NTP'}]
|
||||
controller.addSequence('Installing time synchronization via NTP', [], [], ntp_step)
|
||||
else:
|
||||
controler.MESSAGES.append('Time synchronization installation was '
|
||||
'skipped. Please note that unsynchronized '
|
||||
'time on server instances might be problem '
|
||||
'for some OpenStack components.')
|
||||
|
||||
def createmanifest():
|
||||
for hostname in gethostlist(controller.CONF):
|
||||
manifestfile = "%s_prescript.pp" % hostname
|
||||
manifestdata = getManifestTemplate("prescript.pp")
|
||||
appendManifestFile(manifestfile, manifestdata)
|
||||
appendManifestFile(manifestfile, manifestdata)
|
||||
|
||||
def create_ntp_manifest():
|
||||
servers = ''
|
||||
for srv in controller.CONF['CONFIG_NTP_SERVERS'].split(','):
|
||||
srv = srv.strip()
|
||||
validate.validatePing(srv)
|
||||
servers += 'server %s\n' % srv
|
||||
controller.CONF.setdefault('CONFIG_NTP_FIRST_SERVER', srv)
|
||||
controller.CONF['CONFIG_NTP_SERVERS'] = servers
|
||||
|
||||
marker = uuid.uuid4().hex[:16]
|
||||
for hostname in gethostlist(controller.CONF):
|
||||
manifestdata = getManifestTemplate('ntpd.pp')
|
||||
appendManifestFile('%s_ntpd.pp' % hostname,
|
||||
manifestdata,
|
||||
marker=marker)
|
||||
|
||||
81
packstack/puppet/templates/ntpd.pp
Normal file
81
packstack/puppet/templates/ntpd.pp
Normal file
@@ -0,0 +1,81 @@
|
||||
$config_content = "
|
||||
driftfile /var/lib/ntp/drift
|
||||
|
||||
# Permit time synchronization with our time source, but do not
|
||||
# permit the source to query or modify the service on this system.
|
||||
restrict default kod nomodify notrap nopeer noquery
|
||||
restrict -6 default kod nomodify notrap nopeer noquery
|
||||
|
||||
# Permit all access over the loopback interface. This could
|
||||
# be tightened as well, but to do so would effect some of
|
||||
# the administrative functions.
|
||||
restrict 127.0.0.1
|
||||
restrict -6 ::1
|
||||
|
||||
# Hosts on local network are less restricted.
|
||||
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
|
||||
|
||||
# Use public servers from the pool.ntp.org project.
|
||||
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
|
||||
%(CONFIG_NTP_SERVERS)s
|
||||
|
||||
#broadcast 192.168.1.255 autokey # broadcast server
|
||||
#broadcastclient # broadcast client
|
||||
#broadcast 224.0.1.1 autokey # multicast server
|
||||
#multicastclient 224.0.1.1 # multicast client
|
||||
#manycastserver 239.255.254.254 # manycast server
|
||||
#manycastclient 239.255.254.254 autokey # manycast client
|
||||
|
||||
# Undisciplined Local Clock. This is a fake driver intended for backup
|
||||
# and when no outside source of synchronized time is available.
|
||||
#server 127.127.1.0 # local clock
|
||||
#fudge 127.127.1.0 stratum 10
|
||||
|
||||
# Enable public key cryptography.
|
||||
#crypto
|
||||
|
||||
includefile /etc/ntp/crypto/pw
|
||||
|
||||
# Key file containing the keys and key identifiers used when operating
|
||||
# with symmetric key cryptography.
|
||||
keys /etc/ntp/keys
|
||||
|
||||
# Specify the key identifiers which are trusted.
|
||||
#trustedkey 4 8 42
|
||||
|
||||
# Specify the key identifier to use with the ntpdc utility.
|
||||
#requestkey 8
|
||||
|
||||
# Specify the key identifier to use with the ntpq utility.
|
||||
#controlkey 8
|
||||
|
||||
# Enable writing of statistics records.
|
||||
#statistics clockstats cryptostats loopstats peerstats
|
||||
"
|
||||
|
||||
|
||||
package {'ntp':
|
||||
ensure => 'installed',
|
||||
name => 'ntp',
|
||||
}
|
||||
|
||||
file {'ntp_config':
|
||||
path => '/etc/ntp.conf',
|
||||
ensure => file,
|
||||
mode => '0644',
|
||||
content => $config_content,
|
||||
}
|
||||
|
||||
exec {'ntpdate':
|
||||
command => '/usr/sbin/ntpdate %(CONFIG_NTP_FIRST_SERVER)s',
|
||||
}
|
||||
|
||||
service {'ntpd':
|
||||
ensure => 'running',
|
||||
enable => true,
|
||||
name => 'ntpd',
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
}
|
||||
|
||||
Package['ntp'] -> File['ntp_config'] -> Exec['ntpdate'] -> Service['ntpd']
|
||||
Reference in New Issue
Block a user