def satellite6_upgrade(): """Upgrades satellite from old version to latest version. The following environment variables affect this command: BASE_URL Optional, defaults to available satellite version in CDN. URL for the compose repository TO_VERSION Satellite version to upgrade to and enable repos while upgrading. e.g '6.1','6.2', '6.3' """ logger.highlight('\n========== SATELLITE UPGRADE =================\n') to_version = os.environ.get('TO_VERSION') rhev_sat_host = os.environ.get('RHEV_SAT_HOST') base_url = os.environ.get('BASE_URL') if to_version not in ['6.1', '6.2', '6.3']: logger.warning('Wrong Satellite Version Provided to upgrade to. ' 'Provide one of 6.1, 6.2, 6.3') sys.exit(1) setup_satellite_firewall() run('rm -rf /etc/yum.repos.d/rhel-{optional,released}.repo') logger.info('Updating system packages ... ') update_packages(quiet=True) # Rebooting the system to see possible errors if rhev_sat_host: reboot(160) # Setting Satellite to_version Repos major_ver = distro_info()[1] # Following disables the old satellite repo and extra repos enabled # during subscribe e.g Load balancer Repo disable_repos('*', silent=True) enable_repos('rhel-{0}-server-rpms'.format(major_ver)) enable_repos('rhel-server-rhscl-{0}-rpms'.format(major_ver)) # If CDN upgrade then enable satellite latest version repo if base_url is None: enable_repos('rhel-{0}-server-satellite-{1}-rpms'.format( major_ver, to_version)) # Remove old custom sat repo for fname in os.listdir('/etc/yum.repos.d/'): if 'sat' in fname.lower(): os.remove('/etc/yum.repos.d/{}'.format(fname)) # Else, consider this as Downstream upgrade else: # Add Sat6 repo from latest compose satellite_repo = StringIO() satellite_repo.write('[sat6]\n') satellite_repo.write('name=satellite 6\n') satellite_repo.write('baseurl={0}\n'.format(base_url)) satellite_repo.write('enabled=1\n') satellite_repo.write('gpgcheck=0\n') put(local_path=satellite_repo, remote_path='/etc/yum.repos.d/sat6.repo') satellite_repo.close() # Check what repos are set run('yum repolist') # Stop katello services, except mongod run('katello-service stop') if to_version == '6.1': run('service-wait mongod start') run('yum clean all', warn_only=True) # Updating the packages again after setting sat6 repo logger.info('Updating satellite packages ... ') preyum_time = datetime.now().replace(microsecond=0) update_packages(quiet=False) postyum_time = datetime.now().replace(microsecond=0) logger.highlight('Time taken for satellite packages update - {}'.format( str(postyum_time - preyum_time))) # Rebooting the system again for possible errors # Only for RHEV based satellite and not for personal one if rhev_sat_host: reboot(160) if to_version == '6.1': # Stop the service again which started in restart # This step is not required with 6.2 upgrade as installer itself # stop all the services before upgrade run('katello-service stop') run('service-wait mongod start') # Running Upgrade preup_time = datetime.now().replace(microsecond=0) if to_version == '6.1': run('katello-installer --upgrade') else: run('satellite-installer --scenario satellite --upgrade') postup_time = datetime.now().replace(microsecond=0) logger.highlight('Time taken for Satellite Upgrade - {}'.format( str(postup_time - preup_time))) # Test the Upgrade is successful set_hammer_config() hammer('ping') run('katello-service status', warn_only=True) # Enable ostree feature only for rhel7 and sat6.2 if to_version == '6.2' and major_ver == 7: enable_ostree(sat_version='6.2') if os.environ.get('RUN_EXISTANCE_TESTS', 'false').lower() == 'true': logger.info('Setting up postupgrade datastore for existance tests..') set_datastore('postupgrade')
def satellite6_upgrade(): """Upgrades satellite from old version to latest version. The following environment variables affect this command: BASE_URL Optional, defaults to available satellite version in CDN. URL for the compose repository TO_VERSION Satellite version to upgrade to and enable repos while upgrading. e.g '6.1','6.2', '6.3' PERFORM_FOREMAN_MAINTAIN_UPGRADE use foreman-maintain for satellite upgrade """ logger.highlight('\n========== SATELLITE UPGRADE =================\n') to_version = os.environ.get('TO_VERSION') base_url = os.environ.get('BASE_URL') if to_version not in ['6.1', '6.2', '6.3', '6.4', '6.5']: logger.warning('Wrong Satellite Version Provided to upgrade to. ' 'Provide one of 6.1, 6.2, 6.3, 6.4, 6.5') sys.exit(1) major_ver = distro_info()[1] # remove once BZ 1644354 fixed run("yum erase ant-junit -y") if os.environ.get('PERFORM_FOREMAN_MAINTAIN_UPGRADE') == 'true' \ and os.environ.get('OS') == 'rhel7': if base_url is None: os.environ['DISTRIBUTION'] = "CDN" else: os.environ['DISTRIBUTION'] = "DOWNSTREAM" # setup foreman-maintain setup_foreman_maintain() preup_time = datetime.now().replace(microsecond=0) # perform upgrade using foreman-maintain upgrade_using_foreman_maintain() postup_time = datetime.now().replace(microsecond=0) logger.highlight('Time taken for Satellite Upgrade - {}'.format( str(postup_time - preup_time))) else: setup_satellite_firewall() run('rm -rf /etc/yum.repos.d/rhel-{optional,released}.repo') logger.info('Updating system packages ... ') # setup foreman-maintain setup_foreman_maintain() update_packages(quiet=True) # Following disables the old satellite repo and extra repos enabled # during subscribe e.g Load balancer Repo disable_repos('*', silent=True) enable_repos('rhel-{0}-server-rpms'.format(major_ver)) enable_repos('rhel-server-rhscl-{0}-rpms'.format(major_ver)) enable_repos('rhel-{0}-server-extras-rpms'.format(major_ver)) # If CDN upgrade then enable satellite latest version repo if base_url is None: enable_repos('rhel-{0}-server-satellite-{1}-rpms'.format( major_ver, to_version)) # Remove old custom sat repo for fname in os.listdir('/etc/yum.repos.d/'): if 'sat' in fname.lower(): os.remove('/etc/yum.repos.d/{}'.format(fname)) # Else, consider this as Downstream upgrade else: # Add Sat6 repo from latest compose satellite_repo = StringIO() satellite_repo.write('[sat6]\n') satellite_repo.write('name=satellite 6\n') satellite_repo.write('baseurl={0}\n'.format(base_url)) satellite_repo.write('enabled=1\n') satellite_repo.write('gpgcheck=0\n') put(local_path=satellite_repo, remote_path='/etc/yum.repos.d/sat6.repo') satellite_repo.close() # Check what repos are set run('yum repolist') # Stop katello services, except mongod run('katello-service stop') if to_version == '6.1': run('service-wait mongod start') run('yum clean all', warn_only=True) # Updating the packages again after setting sat6 repo logger.info('Updating satellite packages ... ') preyum_time = datetime.now().replace(microsecond=0) update_packages(quiet=False) postyum_time = datetime.now().replace(microsecond=0) logger.highlight('Time taken for satellite packages update- {}'.format( str(postyum_time - preyum_time))) # Running Upgrade preup_time = datetime.now().replace(microsecond=0) if to_version == '6.1': run('katello-installer --upgrade') else: run('satellite-installer --scenario satellite --upgrade') postup_time = datetime.now().replace(microsecond=0) logger.highlight('Time taken for Satellite Upgrade - {}'.format( str(postup_time - preup_time))) # Rebooting the satellite for kernel update if any reboot(180) host_ssh_availability_check(env.get('satellite_host')) # Test the Upgrade is successful run('hammer ping', warn_only=True) run('katello-service status', warn_only=True) # Enable ostree feature only for rhel7 and sat6.2 if to_version == '6.2' and major_ver == 7: enable_ostree(sat_version='6.2')
def satellite6_upgrade(): """Upgrades satellite from old version to latest version. The following environment variables affect this command: BASE_URL Optional, defaults to available satellite version in CDN. URL for the compose repository TO_VERSION Satellite version to upgrade to and enable repos while upgrading. e.g '6.1','6.2' """ logger.highlight('\n========== SATELLITE UPGRADE =================\n') to_version = os.environ.get('TO_VERSION') rhev_sat_host = os.environ.get('RHEV_SAT_HOST') base_url = os.environ.get('BASE_URL') if to_version not in ['6.1', '6.2']: logger.warning('Wrong Satellite Version Provided to upgrade to. ' 'Provide one of 6.1, 6.2') sys.exit(1) # Setting yum stdout log level to be less verbose set_yum_debug_level() setup_satellite_firewall() run('rm -rf /etc/yum.repos.d/rhel-{optional,released}.repo') logger.info('Updating system packages ... ') update_packages(quiet=True) # Rebooting the system to see possible errors if rhev_sat_host: reboot(160) # Setting Satellite to_version Repos major_ver = distro_info()[1] # Following disables the old satellite repo and extra repos enabled # during subscribe e.g Load balancer Repo disable_repos('*', silent=True) enable_repos('rhel-{0}-server-rpms'.format(major_ver)) enable_repos('rhel-server-rhscl-{0}-rpms'.format(major_ver)) # If CDN upgrade then enable satellite latest version repo if base_url is None: enable_repos('rhel-{0}-server-satellite-{1}-rpms'.format( major_ver, to_version)) # Remove old custom sat repo for fname in os.listdir('/etc/yum.repos.d/'): if 'sat' in fname.lower(): os.remove('/etc/yum.repos.d/{}'.format(fname)) # Else, consider this as Downstream upgrade else: # Add Sat6 repo from latest compose satellite_repo = StringIO() satellite_repo.write('[sat6]\n') satellite_repo.write('name=satellite 6\n') satellite_repo.write('baseurl={0}\n'.format(base_url)) satellite_repo.write('enabled=1\n') satellite_repo.write('gpgcheck=0\n') put(local_path=satellite_repo, remote_path='/etc/yum.repos.d/sat6.repo') satellite_repo.close() # Check what repos are set run('yum repolist') # Stop katello services, except mongod run('katello-service stop') if to_version == '6.1': run('service-wait mongod start') run('yum clean all', warn_only=True) # Updating the packages again after setting sat6 repo logger.info('Updating satellite packages ... ') preyum_time = datetime.now().replace(microsecond=0) update_packages(quiet=False) postyum_time = datetime.now().replace(microsecond=0) logger.highlight('Time taken for satellite packages update - {}'.format( str(postyum_time-preyum_time))) # Rebooting the system again for possible errors # Only for RHEV based satellite and not for personal one if rhev_sat_host: reboot(160) if to_version == '6.1': # Stop the service again which started in restart # This step is not required with 6.2 upgrade as installer itself # stop all the services before upgrade run('katello-service stop') run('service-wait mongod start') # Running Upgrade preup_time = datetime.now().replace(microsecond=0) if to_version == '6.1': run('katello-installer --upgrade') else: run('satellite-installer --scenario satellite --upgrade') postup_time = datetime.now().replace(microsecond=0) logger.highlight('Time taken for Satellite Upgrade - {}'.format( str(postup_time-preup_time))) # Test the Upgrade is successful set_hammer_config() hammer('ping') run('katello-service status', warn_only=True) # Enable ostree feature only for rhel7 and sat6.2 if to_version == '6.2' and major_ver == '7': enable_ostree(sat_version='6.2') if os.environ.get('RUN_EXISTANCE_TESTS', 'false').lower() == 'true': logger.info('Setting up postupgrade datastore for existance tests..') set_datastore('postupgrade')