def install(args): if args.repo: return install_repo(args) # XXX This whole dance is because --stable is getting deprecated if args.stable is not None: LOG.warning('the --stable flag is deprecated, use --release instead') args.release = args.stable if args.version_kind == 'stable': version = args.release else: version = getattr(args, args.version_kind) # XXX Tango ends here. version_str = args.version_kind if version: version_str += ' version {version}'.format(version=version) LOG.debug( 'Installing %s on cluster %s hosts %s', version_str, args.cluster, ' '.join(args.host), ) for hostname in args.host: LOG.debug('Detecting platform for host %s ...', hostname) distro = hosts.get(hostname, username=args.username) LOG.info( 'Distro info: %s %s %s', distro.name, distro.release, distro.codename ) if distro.init == 'sysvinit' and args.cluster != 'ceph': LOG.error('refusing to install on host: %s, with custom cluster name: %s' % ( hostname, args.cluster, ) ) LOG.error('custom cluster names are not supported on sysvinit hosts') continue rlogger = logging.getLogger(hostname) rlogger.info('installing ceph on %s' % hostname) cd_conf = getattr(args, 'cd_conf', None) # custom repo arguments repo_url = os.environ.get('CEPH_DEPLOY_REPO_URL') or args.repo_url gpg_url = os.environ.get('CEPH_DEPLOY_GPG_URL') or args.gpg_url gpg_fallback = 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' if gpg_url is None and repo_url: LOG.warning('--gpg-url was not used, will fallback') LOG.warning('using GPG fallback: %s', gpg_fallback) gpg_url = gpg_fallback if args.local_mirror: remoto.rsync(hostname, args.local_mirror, '/opt/ceph-deploy/repo', distro.conn.logger, sudo=True) repo_url = 'file:///opt/ceph-deploy/repo' gpg_url = 'file:///opt/ceph-deploy/repo/release.asc' if repo_url: # triggers using a custom repository # the user used a custom repo url, this should override anything # we can detect from the configuration, so warn about it if cd_conf: if cd_conf.get_default_repo(): rlogger.warning('a default repo was found but it was \ overridden on the CLI') if args.release in cd_conf.get_repos(): rlogger.warning('a custom repo was found but it was \ overridden on the CLI') rlogger.info('using custom repository location: %s', repo_url) distro.mirror_install( distro, repo_url, gpg_url, args.adjust_repos ) # Detect and install custom repos here if needed elif should_use_custom_repo(args, cd_conf, repo_url): LOG.info('detected valid custom repositories from config file') custom_repo(distro, args, cd_conf, rlogger) else: # otherwise a normal installation distro.install( distro, args.version_kind, version, args.adjust_repos ) # Check the ceph version we just installed hosts.common.ceph_version(distro.conn) distro.conn.exit()
def install(args): args = sanitize_args(args) if args.repo: return install_repo(args) if args.version_kind == 'stable': version = args.release else: version = getattr(args, args.version_kind) version_str = args.version_kind if version: version_str += ' version {version}'.format(version=version) LOG.debug( 'Installing %s on cluster %s hosts %s', version_str, args.cluster, ' '.join(args.host), ) for hostname in args.host: LOG.debug('Detecting platform for host %s ...', hostname) distro = hosts.get( hostname, username=args.username, # XXX this should get removed once ceph packages are split for # upstream. If default_release is True, it means that the user is # trying to install on a RHEL machine and should expect to get RHEL # packages. Otherwise, it will need to specify either a specific # version, or repo, or a development branch. Other distro users should # not see any differences. use_rhceph=args.default_release, ) LOG.info('Distro info: %s %s %s', distro.name, distro.release, distro.codename) if distro.init == 'sysvinit' and args.cluster != 'ceph': LOG.error( 'refusing to install on host: %s, with custom cluster name: %s' % ( hostname, args.cluster, )) LOG.error( 'custom cluster names are not supported on sysvinit hosts') continue rlogger = logging.getLogger(hostname) rlogger.info('installing ceph on %s' % hostname) cd_conf = getattr(args, 'cd_conf', None) # custom repo arguments repo_url = os.environ.get('CEPH_DEPLOY_REPO_URL') or args.repo_url gpg_url = os.environ.get('CEPH_DEPLOY_GPG_URL') or args.gpg_url gpg_fallback = 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' if gpg_url is None and repo_url: LOG.warning('--gpg-url was not used, will fallback') LOG.warning('using GPG fallback: %s', gpg_fallback) gpg_url = gpg_fallback if args.local_mirror: remoto.rsync(hostname, args.local_mirror, '/opt/ceph-deploy/repo', distro.conn.logger, sudo=True) repo_url = 'file:///opt/ceph-deploy/repo' gpg_url = 'file:///opt/ceph-deploy/repo/release.asc' if repo_url: # triggers using a custom repository # the user used a custom repo url, this should override anything # we can detect from the configuration, so warn about it if cd_conf: if cd_conf.get_default_repo(): rlogger.warning('a default repo was found but it was \ overridden on the CLI') if args.release in cd_conf.get_repos(): rlogger.warning('a custom repo was found but it was \ overridden on the CLI') rlogger.info('using custom repository location: %s', repo_url) distro.mirror_install(distro, repo_url, gpg_url, args.adjust_repos) # Detect and install custom repos here if needed elif should_use_custom_repo(args, cd_conf, repo_url): LOG.info('detected valid custom repositories from config file') custom_repo(distro, args, cd_conf, rlogger) else: # otherwise a normal installation distro.install(distro, args.version_kind, version, args.adjust_repos) # Check the ceph version we just installed hosts.common.ceph_version(distro.conn) distro.conn.exit()
def install(args): args = sanitize_args(args) if args.repo: return install_repo(args) gpgcheck = 0 if args.nogpgcheck else 1 if args.version_kind == 'stable': version = args.release else: version = getattr(args, args.version_kind) version_str = args.version_kind if version: version_str += ' version {version}'.format(version=version) LOG.debug( 'Installing %s on cluster %s hosts %s', version_str, args.cluster, ' '.join(args.host), ) for hostname in args.host: LOG.debug('Detecting platform for host %s ...', hostname) distro = hosts.get( hostname, username=args.username, # XXX this should get removed once ceph packages are split for # upstream. If default_release is True, it means that the user is # trying to install on a RHEL machine and should expect to get RHEL # packages. Otherwise, it will need to specify either a specific # version, or repo, or a development branch. Other distro users # should not see any differences. use_rhceph=args.default_release, ) LOG.info( 'Distro info: %s %s %s', distro.name, distro.release, distro.codename ) components = detect_components(args, distro) if distro.init == 'sysvinit' and args.cluster != 'ceph': LOG.error('refusing to install on host: %s, with custom cluster name: %s' % ( hostname, args.cluster, ) ) LOG.error('custom cluster names are not supported on sysvinit hosts') continue rlogger = logging.getLogger(hostname) rlogger.info('installing Ceph on %s' % hostname) cd_conf = getattr(args, 'cd_conf', None) # custom repo arguments repo_url = os.environ.get('CEPH_DEPLOY_REPO_URL') or args.repo_url gpg_url = os.environ.get('CEPH_DEPLOY_GPG_URL') or args.gpg_url gpg_fallback = gpg.url('release') if gpg_url is None and repo_url: LOG.warning('--gpg-url was not used, will fallback') LOG.warning('using GPG fallback: %s', gpg_fallback) gpg_url = gpg_fallback if args.local_mirror: if args.username: hostname = "%s@%s" % (args.username, hostname) remoto.rsync(hostname, args.local_mirror, '/opt/ceph-deploy/repo', distro.conn.logger, sudo=True) repo_url = 'file:///opt/ceph-deploy/repo' gpg_url = 'file:///opt/ceph-deploy/repo/release.asc' if repo_url: # triggers using a custom repository # the user used a custom repo url, this should override anything # we can detect from the configuration, so warn about it if cd_conf: if cd_conf.get_default_repo(): rlogger.warning('a default repo was found but it was \ overridden on the CLI') if args.release in cd_conf.get_repos(): rlogger.warning('a custom repo was found but it was \ overridden on the CLI') rlogger.info('using custom repository location: %s', repo_url) distro.mirror_install( distro, repo_url, gpg_url, args.adjust_repos, components=components, gpgcheck=gpgcheck, args=args ) # Detect and install custom repos here if needed elif should_use_custom_repo(args, cd_conf, repo_url): LOG.info('detected valid custom repositories from config file') custom_repo(distro, args, cd_conf, rlogger) else: # otherwise a normal installation distro.install( distro, args.version_kind, version, args.adjust_repos, components=components, gpgcheck = gpgcheck, args=args ) # Check the ceph version we just installed hosts.common.ceph_version(distro.conn) distro.conn.exit()
def install(args): # XXX This whole dance is because --stable is getting deprecated if args.stable is not None: LOG.warning('the --stable flag is deprecated, use --release instead') args.release = args.stable if args.version_kind == 'stable': version = args.release else: version = getattr(args, args.version_kind) # XXX Tango ends here. version_str = args.version_kind if version: version_str += ' version {version}'.format(version=version) LOG.debug( 'Installing %s on cluster %s hosts %s', version_str, args.cluster, ' '.join(args.host), ) for hostname in args.host: LOG.debug('Detecting platform for host %s ...', hostname) distro = hosts.get(hostname, username=args.username) LOG.info('Distro info: %s %s %s', distro.name, distro.release, distro.codename) if distro.init == 'sysvinit' and args.cluster != 'ceph': LOG.error( 'refusing to install on host: %s, with custom cluster name: %s' % ( hostname, args.cluster, )) LOG.error( 'custom cluster names are not supported on sysvinit hosts') continue rlogger = logging.getLogger(hostname) rlogger.info('installing ceph on %s' % hostname) cd_conf = getattr(args, 'cd_conf', None) # custom repo arguments repo_url = os.environ.get('CEPH_DEPLOY_REPO_URL') or args.repo_url gpg_url = os.environ.get('CEPH_DEPLOY_GPG_URL') or args.gpg_url gpg_fallback = 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' if gpg_url is None and repo_url: LOG.warning('--gpg-url was not used, will fallback') LOG.warning('using GPG fallback: %s', gpg_fallback) gpg_url = gpg_fallback if args.local_mirror: remoto.rsync(hostname, args.local_mirror, '/opt/ceph-deploy/repo', distro.conn.logger, sudo=True) repo_url = 'file:///opt/ceph-deploy/repo' gpg_url = 'file:///opt/ceph-deploy/repo/release.asc' if repo_url: # triggers using a custom repository # the user used a custom repo url, this should override anything # we can detect from the configuration, so warn about it if cd_conf: if cd_conf.get_default_repo(): rlogger.warning('a default repo was found but it was \ overridden on the CLI') if args.release in cd_conf.get_repos(): rlogger.warning('a custom repo was found but it was \ overridden on the CLI') rlogger.info('using custom repository location: %s', repo_url) distro.mirror_install(distro, repo_url, gpg_url, args.adjust_repos) # Detect and install custom repos here if needed elif should_use_custom_repo(args, cd_conf, repo_url): LOG.info('detected valid custom repositories from config file') custom_repo(distro, args, cd_conf, rlogger) else: # otherwise a normal installation distro.install(distro, args.version_kind, version, args.adjust_repos) # Check the ceph version we just installed hosts.common.ceph_version(distro.conn) distro.conn.exit()