From 2efd5455c9dba48a144e65e078dc8a45d40950a3 Mon Sep 17 00:00:00 2001 From: adshao Date: Fri, 14 Oct 2016 00:44:13 +0800 Subject: [PATCH] [RM-17567] Start mon by systemd/sysvint/upstart after adding mon Signed-off-by: guojian --- ceph_deploy/hosts/centos/mon/__init__.py | 2 +- ceph_deploy/hosts/centos/mon/create.py | 56 --------------- ceph_deploy/hosts/common.py | 89 ++++++++++++++++++++---- ceph_deploy/hosts/debian/mon/__init__.py | 2 +- ceph_deploy/hosts/debian/mon/create.py | 69 ------------------ ceph_deploy/hosts/fedora/mon/__init__.py | 2 +- ceph_deploy/hosts/fedora/mon/create.py | 56 --------------- ceph_deploy/hosts/rhel/mon/__init__.py | 2 +- ceph_deploy/hosts/rhel/mon/create.py | 56 --------------- ceph_deploy/hosts/suse/mon/__init__.py | 2 +- ceph_deploy/hosts/suse/mon/create.py | 56 --------------- 11 files changed, 79 insertions(+), 313 deletions(-) delete mode 100644 ceph_deploy/hosts/centos/mon/create.py delete mode 100644 ceph_deploy/hosts/debian/mon/create.py delete mode 100644 ceph_deploy/hosts/fedora/mon/create.py delete mode 100644 ceph_deploy/hosts/rhel/mon/create.py delete mode 100644 ceph_deploy/hosts/suse/mon/create.py diff --git a/ceph_deploy/hosts/centos/mon/__init__.py b/ceph_deploy/hosts/centos/mon/__init__.py index ea0fbf0..f266fb0 100644 --- a/ceph_deploy/hosts/centos/mon/__init__.py +++ b/ceph_deploy/hosts/centos/mon/__init__.py @@ -1,2 +1,2 @@ from ceph_deploy.hosts.common import mon_add as add # noqa -from .create import create # noqa +from ceph_deploy.hosts.common import mon_create as create # noqa diff --git a/ceph_deploy/hosts/centos/mon/create.py b/ceph_deploy/hosts/centos/mon/create.py deleted file mode 100644 index 7579aa7..0000000 --- a/ceph_deploy/hosts/centos/mon/create.py +++ /dev/null @@ -1,56 +0,0 @@ -from ceph_deploy.hosts import common -from ceph_deploy.util import system -from ceph_deploy.lib import remoto - - -def create(distro, args, monitor_keyring): - hostname = distro.conn.remote_module.shortname() - common.mon_create(distro, args, monitor_keyring, hostname) - - if distro.init == 'sysvinit': - service = distro.conn.remote_module.which_service() - remoto.process.run( - distro.conn, - [ - service, - 'ceph', - '-c', - '/etc/ceph/{cluster}.conf'.format(cluster=args.cluster), - 'start', - 'mon.{hostname}'.format(hostname=hostname) - ], - timeout=7, - ) - - system.enable_service(distro.conn) - elif distro.init == 'systemd': - # enable ceph target for this host (in case it isn't already enabled) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph.target' - ], - timeout=7, - ) - - # enable and start this mon instance - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'start', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) diff --git a/ceph_deploy/hosts/common.py b/ceph_deploy/hosts/common.py index a7ab434..70345dc 100644 --- a/ceph_deploy/hosts/common.py +++ b/ceph_deploy/hosts/common.py @@ -2,6 +2,7 @@ from ceph_deploy.util import paths from ceph_deploy import conf from ceph_deploy.lib import remoto from ceph_deploy.util import constants +from ceph_deploy.util import system def ceph_version(conn): @@ -11,7 +12,8 @@ def ceph_version(conn): return remoto.process.run(conn, ['ceph', '--version']) -def mon_create(distro, args, monitor_keyring, hostname): +def mon_create(distro, args, monitor_keyring): + hostname = distro.conn.remote_module.shortname() logger = distro.conn.logger logger.debug('remote hostname: %s' % hostname) path = paths.mon.path(args.cluster, hostname) @@ -73,6 +75,9 @@ def mon_create(distro, args, monitor_keyring, hostname): # create init path distro.conn.remote_module.create_init_path(init_path, uid, gid) + # start mon service + start_mon_service(distro, args.cluster, hostname) + def mon_add(distro, args, monitor_keyring): hostname = distro.conn.remote_module.shortname() @@ -153,20 +158,8 @@ def mon_add(distro, args, monitor_keyring): # create init path distro.conn.remote_module.create_init_path(init_path, uid, gid) - # start the mon using the address - pid_location = "/var/run/ceph/mon.%s.pid" % hostname - remoto.process.run( - distro.conn, - [ - 'ceph-mon', - '--cluster', args.cluster, - '-i', - hostname, - '--pid-file', pid_location, - '--public-addr', - args.address, - ], - ) + # start mon service + start_mon_service(distro, args.cluster, hostname) def map_components(notsplit_packages, components): @@ -187,3 +180,69 @@ def map_components(notsplit_packages, components): packages.add(c) return list(packages) + + +def start_mon_service(distro, cluster, hostname): + """ + start mon service depending on distro init + """ + if distro.init == 'sysvinit': + service = distro.conn.remote_module.which_service() + remoto.process.run( + distro.conn, + [ + service, + 'ceph', + '-c', + '/etc/ceph/{cluster}.conf'.format(cluster=cluster), + 'start', + 'mon.{hostname}'.format(hostname=hostname) + ], + timeout=7, + ) + system.enable_service(distro.conn) + + elif distro.init == 'upstart': + remoto.process.run( + distro.conn, + [ + 'initctl', + 'emit', + 'ceph-mon', + 'cluster={cluster}'.format(cluster=cluster), + 'id={hostname}'.format(hostname=hostname), + ], + timeout=7, + ) + + elif distro.init == 'systemd': + # enable ceph target for this host (in case it isn't already enabled) + remoto.process.run( + distro.conn, + [ + 'systemctl', + 'enable', + 'ceph.target' + ], + timeout=7, + ) + + # enable and start this mon instance + remoto.process.run( + distro.conn, + [ + 'systemctl', + 'enable', + 'ceph-mon@{hostname}'.format(hostname=hostname), + ], + timeout=7, + ) + remoto.process.run( + distro.conn, + [ + 'systemctl', + 'start', + 'ceph-mon@{hostname}'.format(hostname=hostname), + ], + timeout=7, + ) diff --git a/ceph_deploy/hosts/debian/mon/__init__.py b/ceph_deploy/hosts/debian/mon/__init__.py index ea0fbf0..f266fb0 100644 --- a/ceph_deploy/hosts/debian/mon/__init__.py +++ b/ceph_deploy/hosts/debian/mon/__init__.py @@ -1,2 +1,2 @@ from ceph_deploy.hosts.common import mon_add as add # noqa -from .create import create # noqa +from ceph_deploy.hosts.common import mon_create as create # noqa diff --git a/ceph_deploy/hosts/debian/mon/create.py b/ceph_deploy/hosts/debian/mon/create.py deleted file mode 100644 index 2a4d41d..0000000 --- a/ceph_deploy/hosts/debian/mon/create.py +++ /dev/null @@ -1,69 +0,0 @@ -from ceph_deploy.hosts import common -from ceph_deploy.util import system -from ceph_deploy.lib import remoto - - -def create(distro, args, monitor_keyring): - hostname = distro.conn.remote_module.shortname() - common.mon_create(distro, args, monitor_keyring, hostname) - - if distro.init == 'sysvinit': - service = distro.conn.remote_module.which_service() - remoto.process.run( - distro.conn, - [ - service, - 'ceph', - '-c', - '/etc/ceph/{cluster}.conf'.format(cluster=args.cluster), - 'start', - 'mon.{hostname}'.format(hostname=hostname) - ], - timeout=7, - ) - - system.enable_service(distro.conn) - elif distro.init == 'upstart': - remoto.process.run( - distro.conn, - [ - 'initctl', - 'emit', - 'ceph-mon', - 'cluster={cluster}'.format(cluster=args.cluster), - 'id={hostname}'.format(hostname=hostname), - ], - timeout=7, - ) - - elif distro.init == 'systemd': - # enable ceph target for this host (in case it isn't already enabled) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph.target' - ], - timeout=7, - ) - - # enable and start this mon instance - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'start', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) diff --git a/ceph_deploy/hosts/fedora/mon/__init__.py b/ceph_deploy/hosts/fedora/mon/__init__.py index ea0fbf0..f266fb0 100644 --- a/ceph_deploy/hosts/fedora/mon/__init__.py +++ b/ceph_deploy/hosts/fedora/mon/__init__.py @@ -1,2 +1,2 @@ from ceph_deploy.hosts.common import mon_add as add # noqa -from .create import create # noqa +from ceph_deploy.hosts.common import mon_create as create # noqa diff --git a/ceph_deploy/hosts/fedora/mon/create.py b/ceph_deploy/hosts/fedora/mon/create.py deleted file mode 100644 index 7579aa7..0000000 --- a/ceph_deploy/hosts/fedora/mon/create.py +++ /dev/null @@ -1,56 +0,0 @@ -from ceph_deploy.hosts import common -from ceph_deploy.util import system -from ceph_deploy.lib import remoto - - -def create(distro, args, monitor_keyring): - hostname = distro.conn.remote_module.shortname() - common.mon_create(distro, args, monitor_keyring, hostname) - - if distro.init == 'sysvinit': - service = distro.conn.remote_module.which_service() - remoto.process.run( - distro.conn, - [ - service, - 'ceph', - '-c', - '/etc/ceph/{cluster}.conf'.format(cluster=args.cluster), - 'start', - 'mon.{hostname}'.format(hostname=hostname) - ], - timeout=7, - ) - - system.enable_service(distro.conn) - elif distro.init == 'systemd': - # enable ceph target for this host (in case it isn't already enabled) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph.target' - ], - timeout=7, - ) - - # enable and start this mon instance - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'start', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) diff --git a/ceph_deploy/hosts/rhel/mon/__init__.py b/ceph_deploy/hosts/rhel/mon/__init__.py index ea0fbf0..f266fb0 100644 --- a/ceph_deploy/hosts/rhel/mon/__init__.py +++ b/ceph_deploy/hosts/rhel/mon/__init__.py @@ -1,2 +1,2 @@ from ceph_deploy.hosts.common import mon_add as add # noqa -from .create import create # noqa +from ceph_deploy.hosts.common import mon_create as create # noqa diff --git a/ceph_deploy/hosts/rhel/mon/create.py b/ceph_deploy/hosts/rhel/mon/create.py deleted file mode 100644 index 7579aa7..0000000 --- a/ceph_deploy/hosts/rhel/mon/create.py +++ /dev/null @@ -1,56 +0,0 @@ -from ceph_deploy.hosts import common -from ceph_deploy.util import system -from ceph_deploy.lib import remoto - - -def create(distro, args, monitor_keyring): - hostname = distro.conn.remote_module.shortname() - common.mon_create(distro, args, monitor_keyring, hostname) - - if distro.init == 'sysvinit': - service = distro.conn.remote_module.which_service() - remoto.process.run( - distro.conn, - [ - service, - 'ceph', - '-c', - '/etc/ceph/{cluster}.conf'.format(cluster=args.cluster), - 'start', - 'mon.{hostname}'.format(hostname=hostname) - ], - timeout=7, - ) - - system.enable_service(distro.conn) - elif distro.init == 'systemd': - # enable ceph target for this host (in case it isn't already enabled) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph.target' - ], - timeout=7, - ) - - # enable and start this mon instance - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'start', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) diff --git a/ceph_deploy/hosts/suse/mon/__init__.py b/ceph_deploy/hosts/suse/mon/__init__.py index ea0fbf0..f266fb0 100644 --- a/ceph_deploy/hosts/suse/mon/__init__.py +++ b/ceph_deploy/hosts/suse/mon/__init__.py @@ -1,2 +1,2 @@ from ceph_deploy.hosts.common import mon_add as add # noqa -from .create import create # noqa +from ceph_deploy.hosts.common import mon_create as create # noqa diff --git a/ceph_deploy/hosts/suse/mon/create.py b/ceph_deploy/hosts/suse/mon/create.py deleted file mode 100644 index 7579aa7..0000000 --- a/ceph_deploy/hosts/suse/mon/create.py +++ /dev/null @@ -1,56 +0,0 @@ -from ceph_deploy.hosts import common -from ceph_deploy.util import system -from ceph_deploy.lib import remoto - - -def create(distro, args, monitor_keyring): - hostname = distro.conn.remote_module.shortname() - common.mon_create(distro, args, monitor_keyring, hostname) - - if distro.init == 'sysvinit': - service = distro.conn.remote_module.which_service() - remoto.process.run( - distro.conn, - [ - service, - 'ceph', - '-c', - '/etc/ceph/{cluster}.conf'.format(cluster=args.cluster), - 'start', - 'mon.{hostname}'.format(hostname=hostname) - ], - timeout=7, - ) - - system.enable_service(distro.conn) - elif distro.init == 'systemd': - # enable ceph target for this host (in case it isn't already enabled) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph.target' - ], - timeout=7, - ) - - # enable and start this mon instance - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'enable', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) - remoto.process.run( - distro.conn, - [ - 'systemctl', - 'start', - 'ceph-mon@{hostname}'.format(hostname=hostname), - ], - timeout=7, - ) -- 2.47.3