Bootstrap ceph-mgr daemon
As of the Luminous release, Ceph requires ceph-mgr daemons be run to have a fully functional cluster. [0] [0] http://docs.ceph.com/docs/master/mgr/administrator/ Change-Id: Ie8c13f3e7ada000e074d2c4f7d996872cd3ceeef Closes-bug: #1709061
This commit is contained in:
parent
fd9efeaac2
commit
3304c79b74
|
@ -16,6 +16,7 @@
|
|||
|
||||
import os
|
||||
import subprocess
|
||||
import socket
|
||||
import sys
|
||||
import uuid
|
||||
|
||||
|
@ -225,6 +226,9 @@ def config_changed():
|
|||
status_set('maintenance', 'Bootstrapping single Ceph MON')
|
||||
ceph.bootstrap_monitor_cluster(leader_get('monitor-secret'))
|
||||
ceph.wait_for_bootstrap()
|
||||
if cmp_pkgrevno('ceph', '12.0.0') >= 0:
|
||||
status_set('maintenance', 'Bootstrapping single Ceph MGR')
|
||||
ceph.bootstrap_manager()
|
||||
|
||||
|
||||
def get_mon_hosts():
|
||||
|
@ -280,6 +284,9 @@ def mon_relation():
|
|||
ceph.bootstrap_monitor_cluster(leader_get('monitor-secret'))
|
||||
ceph.wait_for_bootstrap()
|
||||
ceph.wait_for_quorum()
|
||||
if cmp_pkgrevno('ceph', '12.0.0') >= 0:
|
||||
status_set('maintenance', 'Bootstrapping Ceph MGR')
|
||||
ceph.bootstrap_manager()
|
||||
# If we can and want to
|
||||
if is_leader() and config('customize-failure-domain'):
|
||||
# But only if the environment supports it
|
||||
|
@ -547,6 +554,8 @@ def start():
|
|||
service_restart('ceph-mon')
|
||||
else:
|
||||
service_restart('ceph-mon-all')
|
||||
if cmp_pkgrevno('ceph', '12.0.0') >= 0:
|
||||
service_restart('ceph-mgr@{}'.format(socket.gethostname()))
|
||||
|
||||
|
||||
@hooks.hook('nrpe-external-master-relation-joined')
|
||||
|
|
|
@ -1314,6 +1314,27 @@ def bootstrap_monitor_cluster(secret):
|
|||
os.unlink(keyring)
|
||||
|
||||
|
||||
def bootstrap_manager():
|
||||
hostname = socket.gethostname()
|
||||
path = '/var/lib/ceph/mgr/ceph-{}'.format(hostname)
|
||||
keyring = os.path.join(path, 'keyring')
|
||||
|
||||
if os.path.exists(keyring):
|
||||
log('bootstrap_manager: mgr already initialized.')
|
||||
else:
|
||||
mkdir(path, owner=ceph_user(), group=ceph_user())
|
||||
subprocess.check_call(['ceph', 'auth', 'get-or-create',
|
||||
'mgr.{}'.format(hostname), 'mon',
|
||||
'allow profile mgr', 'osd', 'allow *',
|
||||
'mds', 'allow *', '--out-file',
|
||||
keyring])
|
||||
chownr(path, ceph_user(), ceph_user())
|
||||
|
||||
unit = 'ceph-mgr@{}'.format(hostname)
|
||||
subprocess.check_call(['systemctl', 'enable', unit])
|
||||
service_restart(unit)
|
||||
|
||||
|
||||
def update_monfs():
|
||||
hostname = socket.gethostname()
|
||||
monfs = '/var/lib/ceph/mon/ceph-{}'.format(hostname)
|
||||
|
@ -1355,16 +1376,17 @@ def find_least_used_journal(journal_devices):
|
|||
|
||||
|
||||
def osdize(dev, osd_format, osd_journal, reformat_osd=False,
|
||||
ignore_errors=False, encrypt=False):
|
||||
ignore_errors=False, encrypt=False, bluestore=False):
|
||||
if dev.startswith('/dev'):
|
||||
osdize_dev(dev, osd_format, osd_journal,
|
||||
reformat_osd, ignore_errors, encrypt)
|
||||
reformat_osd, ignore_errors, encrypt,
|
||||
bluestore)
|
||||
else:
|
||||
osdize_dir(dev, encrypt)
|
||||
|
||||
|
||||
def osdize_dev(dev, osd_format, osd_journal, reformat_osd=False,
|
||||
ignore_errors=False, encrypt=False):
|
||||
ignore_errors=False, encrypt=False, bluestore=False):
|
||||
if not os.path.exists(dev):
|
||||
log('Path {} does not exist - bailing'.format(dev))
|
||||
return
|
||||
|
@ -1392,9 +1414,16 @@ def osdize_dev(dev, osd_format, osd_journal, reformat_osd=False,
|
|||
if osd_format:
|
||||
cmd.append('--fs-type')
|
||||
cmd.append(osd_format)
|
||||
|
||||
if reformat_osd:
|
||||
cmd.append('--zap-disk')
|
||||
|
||||
# NOTE(jamespage): enable experimental bluestore support
|
||||
if cmp_pkgrevno('ceph', '10.2.0') >= 0 and bluestore:
|
||||
cmd.append('--bluestore')
|
||||
|
||||
cmd.append(dev)
|
||||
|
||||
if osd_journal:
|
||||
least_used = find_least_used_journal(osd_journal)
|
||||
cmd.append(least_used)
|
||||
|
|
Loading…
Reference in New Issue