def install_restservice(): utils.set_service_as_cloudify_service(runtime_props) rest_service_rpm_source_url = ctx_properties['rest_service_rpm_source_url'] rest_venv = join(HOME_DIR, 'env') agent_dir = join(utils.MANAGER_RESOURCES_HOME, 'cloudify_agent') ctx.logger.info('Installing REST Service...') utils.set_selinux_permissive() utils.copy_notice(SERVICE_NAME) utils.mkdir(HOME_DIR) utils.mkdir(LOG_DIR) utils.chown(utils.CLOUDIFY_USER, utils.CLOUDIFY_GROUP, LOG_DIR) utils.mkdir(utils.MANAGER_RESOURCES_HOME) utils.mkdir(agent_dir) deploy_broker_configuration() utils.yum_install(rest_service_rpm_source_url, service_name=SERVICE_NAME) _configure_dbus(rest_venv) install_optional(rest_venv) utils.logrotate(SERVICE_NAME) utils.deploy_sudo_command_script(script='/usr/bin/systemctl', description='Run systemctl')
def _install_stage(): nodejs_source_url = ctx_properties['nodejs_tar_source_url'] stage_source_url = ctx_properties['stage_tar_source_url'] if not utils.resource_factory.local_resource_exists(stage_source_url): ctx.logger.info('Stage package not found in manager resources ' 'package. Stage will not be installed.') ctx.instance.runtime_properties['skip_installation'] = 'true' return # injected as an input to the script ctx.instance.runtime_properties['influxdb_endpoint_ip'] = \ os.environ.get('INFLUXDB_ENDPOINT_IP') utils.set_selinux_permissive() utils.copy_notice(SERVICE_NAME) utils.mkdir(NODEJS_DIR) utils.mkdir(HOME_DIR) utils.mkdir(LOG_DIR) utils.create_service_user(STAGE_USER, STAGE_GROUP, HOME_DIR) ctx.logger.info('Installing NodeJS...') nodejs = utils.download_cloudify_resource(nodejs_source_url, SERVICE_NAME) utils.untar(nodejs, NODEJS_DIR) utils.remove(nodejs) ctx.logger.info('Installing Cloudify Stage (UI)...') stage_tar = utils.download_cloudify_resource(stage_source_url, SERVICE_NAME) if 'community' in stage_tar: ctx.logger.info('Community edition') ctx.instance.runtime_properties['community_mode'] = '-mode community' else: ctx.instance.runtime_properties['community_mode'] = '' utils.untar(stage_tar, HOME_DIR) utils.remove(stage_tar) ctx.logger.info('Fixing permissions...') utils.chown(STAGE_USER, STAGE_GROUP, HOME_DIR) utils.chown(STAGE_USER, STAGE_GROUP, NODEJS_DIR) utils.chown(STAGE_USER, STAGE_GROUP, LOG_DIR) utils.deploy_sudo_command_script( 'restore-snapshot.py', 'Restore stage directories from a snapshot path', component=SERVICE_NAME, allow_as=STAGE_USER) utils.chmod('a+rx', '/opt/cloudify/stage/restore-snapshot.py') utils.sudo(['usermod', '-aG', utils.CLOUDIFY_GROUP, STAGE_USER]) utils.logrotate(SERVICE_NAME) utils.systemd.configure(SERVICE_NAME) backend_dir = join(HOME_DIR, 'backend') npm_path = join(NODEJS_DIR, 'bin', 'npm') subprocess.check_call('cd {0}; {1} run db-migrate'.format( backend_dir, npm_path), shell=True)
def install_restservice(): utils.set_service_as_cloudify_service(runtime_props) rest_service_rpm_source_url = ctx_properties['rest_service_rpm_source_url'] rest_venv = join(HOME_DIR, 'env') agent_dir = join(utils.MANAGER_RESOURCES_HOME, 'cloudify_agent') ctx.logger.info('Installing REST Service...') utils.set_selinux_permissive() utils.copy_notice(SERVICE_NAME) utils.mkdir(HOME_DIR) utils.mkdir(LOG_DIR) utils.chown(utils.CLOUDIFY_USER, utils.CLOUDIFY_GROUP, LOG_DIR) utils.mkdir(utils.MANAGER_RESOURCES_HOME) utils.mkdir(agent_dir) deploy_broker_configuration() utils.yum_install(rest_service_rpm_source_url, service_name=SERVICE_NAME) _configure_dbus(rest_venv) install_optional(rest_venv) utils.logrotate(SERVICE_NAME) utils.deploy_sudo_command_script( script='/usr/bin/systemctl', description='Run systemctl' ) utils.deploy_sudo_command_script( script='/usr/sbin/shutdown', description='Perform shutdown (reboot)' )
def configure_script(script_name, description): utils.deploy_sudo_command_script( script_name, description, component=SERVICE_NAME, allow_as=STAGE_USER, ) utils.chmod('a+rx', '/opt/cloudify/stage/' + script_name) utils.sudo(['usermod', '-aG', utils.CLOUDIFY_GROUP, STAGE_USER])
def deploy_sudo_scripts(): scripts_to_deploy = { 'manager-ip-setter.sh': 'Run manager IP setter script', 'update-provider-context.py': 'Run update provider context script', 'create-internal-ssl-certs.py': 'Run the scripts that recreates internal SSL certs' } for script, description in scripts_to_deploy.items(): utils.deploy_sudo_command_script(script, description, SERVICE_NAME)
def _install_stage(): nodejs_source_url = ctx_properties['nodejs_tar_source_url'] stage_source_url = ctx_properties['stage_tar_source_url'] if not utils.resource_factory.local_resource_exists(stage_source_url): ctx.logger.info('Stage package not found in manager resources ' 'package. Stage will not be installed.') ctx.instance.runtime_properties['skip_installation'] = 'true' return # injected as an input to the script ctx.instance.runtime_properties['influxdb_endpoint_ip'] = \ os.environ.get('INFLUXDB_ENDPOINT_IP') utils.set_selinux_permissive() utils.copy_notice(SERVICE_NAME) utils.mkdir(NODEJS_DIR) utils.mkdir(HOME_DIR) utils.mkdir(LOG_DIR) utils.create_service_user(STAGE_USER, STAGE_GROUP, HOME_DIR) ctx.logger.info('Installing NodeJS...') nodejs = utils.download_cloudify_resource(nodejs_source_url, SERVICE_NAME) utils.untar(nodejs, NODEJS_DIR) utils.remove(nodejs) ctx.logger.info('Installing Cloudify Stage (UI)...') stage_tar = utils.download_cloudify_resource(stage_source_url, SERVICE_NAME) utils.untar(stage_tar, HOME_DIR) utils.remove(stage_tar) ctx.logger.info('Fixing permissions...') utils.chown(STAGE_USER, STAGE_GROUP, HOME_DIR) utils.chown(STAGE_USER, STAGE_GROUP, NODEJS_DIR) utils.chown(STAGE_USER, STAGE_GROUP, LOG_DIR) utils.deploy_sudo_command_script( 'restore-snapshot.py', 'Restore stage directories from a snapshot path', component=SERVICE_NAME, allow_as=STAGE_USER) utils.chmod('a+rx', '/opt/cloudify/stage/restore-snapshot.py') utils.logrotate(SERVICE_NAME) utils.systemd.configure(SERVICE_NAME) backend_dir = join(HOME_DIR, 'backend') npm_path = join(NODEJS_DIR, 'bin', 'npm') subprocess.check_call( 'cd {0}; {1} run db-migrate'.format(backend_dir, npm_path), shell=True)
def install_restservice(): utils.set_service_as_cloudify_service(runtime_props) rest_service_rpm_source_url = ctx_properties['rest_service_rpm_source_url'] rest_venv = join(HOME_DIR, 'env') agent_dir = join(utils.MANAGER_RESOURCES_HOME, 'cloudify_agent') ctx.logger.info('Installing REST Service...') utils.set_selinux_permissive() utils.copy_notice(SERVICE_NAME) utils.mkdir(HOME_DIR) utils.mkdir(LOG_DIR) utils.chown(utils.CLOUDIFY_USER, utils.CLOUDIFY_GROUP, LOG_DIR) utils.mkdir(utils.MANAGER_RESOURCES_HOME) utils.mkdir(agent_dir) runtime_props['rabbitmq_endpoint_ip'] = utils.get_rabbitmq_endpoint_ip() runtime_props['broker_cert_path'] = utils.INTERNAL_CA_CERT_PATH utils.yum_install(rest_service_rpm_source_url, service_name=SERVICE_NAME) _configure_dbus(rest_venv) install_optional(rest_venv) utils.logrotate(SERVICE_NAME) utils.deploy_sudo_command_script(script='/usr/bin/systemctl', description='Run systemctl') utils.deploy_sudo_command_script('set-manager-ssl.py', 'Script for setting manager SSL', SERVICE_NAME) utils.deploy_sudo_command_script(script='/usr/sbin/shutdown', description='Perform shutdown (reboot)')