本文整理汇总了Python中utils.sudo函数的典型用法代码示例。如果您正苦于以下问题:Python sudo函数的具体用法?Python sudo怎么用?Python sudo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sudo函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: _install_influxdb
def _install_influxdb():
influxdb_source_url = ctx.node.properties['influxdb_rpm_source_url']
influxdb_user = 'influxdb'
influxdb_group = 'influxdb'
influxdb_home = '/opt/influxdb'
influxdb_log_path = '/var/log/cloudify/influxdb'
ctx.logger.info('Installing InfluxDB...')
utils.set_selinux_permissive()
utils.copy_notice('influxdb')
utils.mkdir(influxdb_home)
utils.mkdir(influxdb_log_path)
utils.yum_install(influxdb_source_url)
utils.sudo(['rm', '-rf', '/etc/init.d/influxdb'])
ctx.logger.info('Deploying InfluxDB config.toml...')
utils.deploy_blueprint_resource(
'{0}/config.toml'.format(CONFIG_PATH),
'{0}/shared/config.toml'.format(influxdb_home))
ctx.logger.info('Fixing user permissions...')
utils.chown(influxdb_user, influxdb_group, influxdb_home)
utils.chown(influxdb_user, influxdb_group, influxdb_log_path)
utils.logrotate('influxdb')
utils.systemd.configure('influxdb')
开发者ID:digideskio,项目名称:cloudify-manager-blueprints,代码行数:30,代码来源:create.py
示例2: _install_rabbitmq
def _install_rabbitmq():
erlang_rpm_source_url = ctx.node.properties['erlang_rpm_source_url']
rabbitmq_rpm_source_url = ctx.node.properties['rabbitmq_rpm_source_url']
# TODO: maybe we don't need this env var
os.putenv('RABBITMQ_FD_LIMIT',
str(ctx.node.properties['rabbitmq_fd_limit']))
rabbitmq_log_path = '/var/log/cloudify/rabbitmq'
rabbitmq_username = ctx.node.properties['rabbitmq_username']
rabbitmq_password = ctx.node.properties['rabbitmq_password']
rabbitmq_cert_public = ctx.node.properties['rabbitmq_cert_public']
rabbitmq_ssl_enabled = ctx.node.properties['rabbitmq_ssl_enabled']
rabbitmq_cert_private = ctx.node.properties['rabbitmq_cert_private']
ctx.logger.info('Installing RabbitMQ...')
utils.set_selinux_permissive()
utils.copy_notice('rabbitmq')
utils.mkdir(rabbitmq_log_path)
utils.yum_install(erlang_rpm_source_url)
utils.yum_install(rabbitmq_rpm_source_url)
utils.logrotate('rabbitmq')
utils.deploy_blueprint_resource(
'{0}/kill-rabbit'.format(CONFIG_PATH),
'/usr/local/bin/kill-rabbit')
utils.chmod('500', '/usr/local/bin/kill-rabbit')
utils.systemd.configure('rabbitmq')
ctx.logger.info('Configuring File Descriptors Limit...')
utils.deploy_blueprint_resource(
'{0}/rabbitmq_ulimit.conf'.format(CONFIG_PATH),
'/etc/security/limits.d/rabbitmq.conf')
utils.systemd.systemctl('daemon-reload')
utils.chown('rabbitmq', 'rabbitmq', rabbitmq_log_path)
utils.systemd.start('cloudify-rabbitmq')
time.sleep(10)
utils.wait_for_port(5672)
ctx.logger.info('Enabling RabbitMQ Plugins...')
# Occasional timing issues with rabbitmq starting have resulted in
# failures when first trying to enable plugins
utils.sudo(['rabbitmq-plugins', 'enable', 'rabbitmq_management'],
retries=5)
utils.sudo(['rabbitmq-plugins', 'enable', 'rabbitmq_tracing'], retries=5)
_clear_guest_permissions_if_guest_exists()
_create_user_and_set_permissions(rabbitmq_username, rabbitmq_password)
_set_security(
rabbitmq_ssl_enabled,
rabbitmq_cert_private,
rabbitmq_cert_public)
utils.systemd.stop('cloudify-rabbitmq', retries=5)
开发者ID:digideskio,项目名称:cloudify-manager-blueprints,代码行数:60,代码来源:create.py
示例3: _deploy_security_configuration
def _deploy_security_configuration():
ctx.logger.info('Deploying REST Security configuration file...')
# Generating random hash salt and secret key
security_configuration = {
'hash_salt': base64.b64encode(os.urandom(32)),
'secret_key': base64.b64encode(os.urandom(32)),
'encoding_alphabet': _random_alphanumeric(),
'encoding_block_size': 24,
'encoding_min_length': 5
}
# Pre-creating paths so permissions fix can work correctly
# in mgmtworker
for path in utils.MANAGER_RESOURCES_SNAPSHOT_PATHS:
utils.mkdir(path)
utils.chown(
CLOUDIFY_USER, CLOUDIFY_GROUP,
utils.MANAGER_RESOURCES_HOME)
utils.sudo(['ls', '-la', '/opt/manager'])
current_props = runtime_props['security_configuration']
current_props.update(security_configuration)
runtime_props['security_configuration'] = current_props
fd, path = tempfile.mkstemp()
os.close(fd)
with open(path, 'w') as f:
json.dump(security_configuration, f)
rest_security_path = join(runtime_props['home_dir'], 'rest-security.conf')
utils.move(path, rest_security_path)
utils.chown(CLOUDIFY_USER, CLOUDIFY_GROUP, rest_security_path)
开发者ID:isaac-s,项目名称:cloudify-manager-blueprints,代码行数:32,代码来源:configure.py
示例4: _install_influxdb
def _install_influxdb():
influxdb_source_url = ctx_properties['influxdb_rpm_source_url']
influxdb_user = 'influxdb'
influxdb_group = 'influxdb'
influxdb_home = '/opt/influxdb'
influxdb_log_path = '/var/log/cloudify/influxdb'
ctx.logger.info('Installing InfluxDB...')
utils.set_selinux_permissive()
utils.copy_notice(INFLUX_SERVICE_NAME)
utils.mkdir(influxdb_home)
utils.mkdir(influxdb_log_path)
utils.yum_install(influxdb_source_url, service_name=INFLUX_SERVICE_NAME)
utils.sudo(['rm', '-rf', '/etc/init.d/influxdb'])
ctx.logger.info('Deploying InfluxDB config.toml...')
utils.deploy_blueprint_resource(
'{0}/config.toml'.format(CONFIG_PATH),
'{0}/shared/config.toml'.format(influxdb_home),
INFLUX_SERVICE_NAME)
ctx.logger.info('Fixing user permissions...')
utils.chown(influxdb_user, influxdb_group, influxdb_home)
utils.chown(influxdb_user, influxdb_group, influxdb_log_path)
utils.systemd.configure(INFLUX_SERVICE_NAME)
# Provided with InfluxDB's package. Will be removed if it exists.
utils.remove('/etc/init.d/influxdb')
utils.logrotate(INFLUX_SERVICE_NAME)
开发者ID:funkyHat,项目名称:cloudify-manager-blueprints,代码行数:33,代码来源:create.py
示例5: set_rabbitmq_policy
def set_rabbitmq_policy(name, expression, policy):
policy = json.dumps(policy)
ctx.logger.debug('Setting policy {0} on queues {1} to {2}'.format(
name, expression, policy))
# shlex screws this up because we need to pass json and shlex
# strips quotes so we explicitly pass it as a list.
utils.sudo(['rabbitmqctl', 'set_policy', name,
expression, policy, '--apply-to', 'queues'])
开发者ID:01000101,项目名称:cloudify-manager-blueprints,代码行数:8,代码来源:start.py
示例6: _configure_index_rotation
def _configure_index_rotation():
ctx.logger.info('Configuring Elasticsearch Index Rotation cronjob for '
'logstash-YYYY.mm.dd index patterns...')
utils.deploy_blueprint_resource(
'components/elasticsearch/scripts/rotate_es_indices',
'/etc/cron.daily/rotate_es_indices', ES_SERVICE_NAME)
utils.chown('root', 'root', '/etc/cron.daily/rotate_es_indices')
# VALIDATE!
utils.sudo('chmod +x /etc/cron.daily/rotate_es_indices')
开发者ID:funkyHat,项目名称:cloudify-manager-blueprints,代码行数:9,代码来源:create.py
示例7: install_riemann
def install_riemann():
langohr_source_url = ctx_properties['langohr_jar_source_url']
daemonize_source_url = ctx_properties['daemonize_rpm_source_url']
riemann_source_url = ctx_properties['riemann_rpm_source_url']
# Needed for Riemann's config
cloudify_resources_url = ctx_properties['cloudify_resources_url']
rabbitmq_username = ctx_properties['rabbitmq_username']
rabbitmq_password = ctx_properties['rabbitmq_password']
riemann_config_path = '/etc/riemann'
riemann_log_path = '/var/log/cloudify/riemann'
langohr_home = '/opt/lib'
extra_classpath = '{0}/langohr.jar'.format(langohr_home)
# Confirm username and password have been supplied for broker before
# continuing.
# Components other than logstash and riemann have this handled in code.
# Note that these are not directly used in this script, but are used by the
# deployed resources, hence the check here.
if not rabbitmq_username or not rabbitmq_password:
ctx.abort_operation(
'Both rabbitmq_username and rabbitmq_password must be supplied '
'and at least 1 character long in the manager blueprint inputs.')
rabbit_props = utils.ctx_factory.get('rabbitmq')
ctx.instance.runtime_properties['rabbitmq_endpoint_ip'] = \
utils.get_rabbitmq_endpoint_ip(
rabbit_props.get('rabbitmq_endpoint_ip'))
ctx.instance.runtime_properties['rabbitmq_username'] = \
rabbit_props.get('rabbitmq_username')
ctx.instance.runtime_properties['rabbitmq_password'] = \
rabbit_props.get('rabbitmq_password')
ctx.logger.info('Installing Riemann...')
utils.set_selinux_permissive()
utils.copy_notice(RIEMANN_SERVICE_NAME)
utils.mkdir(riemann_log_path)
utils.mkdir(langohr_home)
utils.mkdir(riemann_config_path)
utils.mkdir('{0}/conf.d'.format(riemann_config_path))
langohr = utils.download_cloudify_resource(langohr_source_url,
RIEMANN_SERVICE_NAME)
utils.sudo(['cp', langohr, extra_classpath])
ctx.logger.info('Applying Langohr permissions...')
utils.sudo(['chmod', '644', extra_classpath])
utils.yum_install(daemonize_source_url, service_name=RIEMANN_SERVICE_NAME)
utils.yum_install(riemann_source_url, service_name=RIEMANN_SERVICE_NAME)
utils.logrotate(RIEMANN_SERVICE_NAME)
ctx.logger.info('Downloading cloudify-manager Repository...')
manager_repo = utils.download_cloudify_resource(cloudify_resources_url,
RIEMANN_SERVICE_NAME)
ctx.logger.info('Extracting Manager Repository...')
utils.untar(manager_repo, '/tmp')
开发者ID:01000101,项目名称:cloudify-manager-blueprints,代码行数:57,代码来源:create.py
示例8: _disable_requiretty
def _disable_requiretty():
script_dest = '/tmp/configure_manager.sh'
utils.deploy_blueprint_resource('components/manager/scripts'
'/configure_manager.sh',
script_dest,
NODE_NAME)
utils.sudo('chmod +x {0}'.format(script_dest))
utils.sudo(script_dest)
开发者ID:funkyHat,项目名称:cloudify-manager-blueprints,代码行数:9,代码来源:create_conf.py
示例9: _create_user_and_set_permissions
def _create_user_and_set_permissions(rabbitmq_username,
rabbitmq_password):
if not check_if_user_exists(rabbitmq_username):
ctx.logger.info('Creating new user {0}:{1} and setting '
'permissions...'.format(
rabbitmq_username, rabbitmq_password))
utils.sudo(['rabbitmqctl', 'add_user',
rabbitmq_username, rabbitmq_password])
utils.sudo(['rabbitmqctl', 'set_permissions',
rabbitmq_username, '.*', '.*', '.*'], retries=5)
开发者ID:yuexiao-wang,项目名称:cloudify-manager-blueprints,代码行数:10,代码来源:create.py
示例10: install_logstash
def install_logstash():
logstash_unit_override = '/etc/systemd/system/logstash.service.d'
logstash_source_url = ctx.node.properties['logstash_rpm_source_url']
rabbitmq_username = ctx.node.properties['rabbitmq_username']
rabbitmq_password = ctx.node.properties['rabbitmq_password']
logstash_log_path = '/var/log/cloudify/logstash'
logstash_conf_path = '/etc/logstash/conf.d'
# injected as an input to the script
ctx.instance.runtime_properties['es_endpoint_ip'] = \
os.environ.get('ES_ENDPOINT_IP')
ctx.instance.runtime_properties['rabbitmq_endpoint_ip'] = \
utils.get_rabbitmq_endpoint_ip()
# Confirm username and password have been supplied for broker before
# continuing.
# Components other than logstash and riemann have this handled in code.
# Note that these are not directly used in this script, but are used by the
# deployed resources, hence the check here.
if not rabbitmq_username or not rabbitmq_password:
utils.error_exit(
'Both rabbitmq_username and rabbitmq_password must be supplied '
'and at least 1 character long in the manager blueprint inputs.')
ctx.logger.info('Installing Logstash...')
utils.set_selinux_permissive()
utils.copy_notice('logstash')
utils.yum_install(logstash_source_url)
utils.mkdir(logstash_log_path)
utils.chown('logstash', 'logstash', logstash_log_path)
ctx.logger.info('Creating systemd unit override...')
utils.mkdir(logstash_unit_override)
utils.deploy_blueprint_resource(
'{0}/restart.conf'.format(CONFIG_PATH),
'{0}/restart.conf'.format(logstash_unit_override))
ctx.logger.info('Deploying Logstash conf...')
utils.deploy_blueprint_resource(
'{0}/logstash.conf'.format(CONFIG_PATH),
'{0}/logstash.conf'.format(logstash_conf_path))
ctx.logger.info('Deploying Logstash sysconfig...')
utils.deploy_blueprint_resource(
'{0}/logstash'.format(CONFIG_PATH),
'/etc/sysconfig/logstash')
utils.logrotate('logstash')
utils.sudo(['/sbin/chkconfig', 'logstash', 'on'])
utils.clean_var_log_dir('logstash')
开发者ID:digideskio,项目名称:cloudify-manager-blueprints,代码行数:55,代码来源:create.py
示例11: _create_default_db
def _create_default_db(db_name, username, password):
ctx.logger.info('Creating default postgresql database: {0}...'.format(
db_name))
ps_config_source = 'components/postgresql/config/create_default_db.sh'
ps_config_destination = join(tempfile.gettempdir(),
'create_default_db.sh')
ctx.download_resource(source=ps_config_source,
destination=ps_config_destination)
utils.chmod('+x', ps_config_destination)
# TODO: Can't we use a rest call here? Is there such a thing?
utils.sudo('su - postgres -c "{cmd} {db} {user} {password}"'
.format(cmd=ps_config_destination, db=db_name,
user=username, password=password))
开发者ID:01000101,项目名称:cloudify-manager-blueprints,代码行数:13,代码来源:start.py
示例12: _init_postgresql
def _init_postgresql():
ctx.logger.info('Init PostreSQL DATA folder...')
postgresql95_setup = '/usr/pgsql-9.5/bin/postgresql95-setup'
utils.sudo(command=[postgresql95_setup, 'initdb'])
ctx.logger.info('Starting PostgreSQL server...')
utils.systemd.enable(service_name=PS_SERVICE_NAME, append_prefix=False)
utils.systemd.start(service_name=PS_SERVICE_NAME, append_prefix=False)
ctx.logger.info('Setting PostgreSQL logs path...')
ps_95_logs_path = "/var/lib/pgsql/9.5/data/pg_log"
ps_logs_path = "/var/log/cloudify/postgresql"
utils.mkdir(ps_logs_path)
utils.ln(source=ps_95_logs_path, target=ps_logs_path, params='-s')
开发者ID:yuexiao-wang,项目名称:cloudify-manager-blueprints,代码行数:14,代码来源:create.py
示例13: configure_mgmtworker
def configure_mgmtworker():
celery_work_dir = '{0}/work'.format(runtime_props['home_dir'])
runtime_props['file_server_root'] = utils.MANAGER_RESOURCES_HOME
ctx.logger.info('Configuring Management worker...')
broker_conf_path = join(celery_work_dir, 'broker_config.json')
utils.deploy_blueprint_resource(
'{0}/broker_config.json'.format(CONFIG_PATH), broker_conf_path,
SERVICE_NAME)
# The config contains credentials, do not let the world read it
utils.sudo(['chmod', '440', broker_conf_path])
utils.chown(CLOUDIFY_USER, CLOUDIFY_GROUP, broker_conf_path)
utils.systemd.configure(SERVICE_NAME)
utils.logrotate(SERVICE_NAME)
开发者ID:isaac-s,项目名称:cloudify-manager-blueprints,代码行数:14,代码来源:configure.py
示例14: install_docker
def install_docker():
ctx.logger.info('Installing the latest version of docker...')
script_name = 'get_docker.sh'
utils.run('curl -o {0} https://get.docker.com/'.format(script_name),
workdir=utils.WORKDIR)
utils.run('chmod +x {0}'.format(script_name), workdir=utils.WORKDIR)
utils.sudo('bash {0}'.format(script_name), workdir=utils.WORKDIR)
utils.sudo('usermod -aG docker {0}'
.format(ctx.node.properties['ssh_user']))
utils.sudo('service docker stop')
_create_cloudify_bridge()
utils.sudo("sed -i '$ a DOCKER_OPTS=\"--bridge cfy0 "
"--host 172.20.0.1\"' /etc/default/docker")
utils.sudo('service docker start')
开发者ID:cloudify-cosmo,项目名称:cloudify-manager,代码行数:15,代码来源:create.py
示例15: _create_db_tables_and_add_defaults
def _create_db_tables_and_add_defaults():
ctx.logger.info('Creating SQL tables and adding default values...')
script_name = 'create_tables_and_add_defaults.py'
source_script_path = join('components/restservice/config', script_name)
destination_script_path = join(tempfile.gettempdir(), script_name)
ctx.download_resource(source_script_path, destination_script_path)
args_dict = runtime_props['security_configuration']
args_dict['amqp_host'] = runtime_props['rabbitmq_endpoint_ip']
args_dict['amqp_username'] = runtime_props['rabbitmq_username']
args_dict['amqp_password'] = runtime_props['rabbitmq_password']
args_dict['postgresql_host'] = runtime_props['postgresql_host']
args_dict['db_migrate_dir'] = join(
utils.MANAGER_RESOURCES_HOME,
'cloudify',
'migrations'
)
# The script won't have access to the ctx, so we dump the relevant args
# to a JSON file, and pass its path to the script
args_file_location = join(tempfile.gettempdir(), 'security_config.json')
with open(args_file_location, 'w') as f:
json.dump(args_dict, f)
# Directly calling with this python bin, in order to make sure it's run
# in the correct venv
python_path = join(runtime_props['home_dir'], 'env', 'bin', 'python')
result = utils.sudo(
[python_path, destination_script_path, args_file_location]
)
_log_results(result)
utils.remove(args_file_location)
utils.remove(destination_script_path)
开发者ID:isaac-s,项目名称:cloudify-manager-blueprints,代码行数:34,代码来源:configure.py
示例16: _create_db_tables_and_add_users
def _create_db_tables_and_add_users():
ctx.logger.info('Creating SQL tables and adding admin users...')
create_script_path = 'components/restservice/config' \
'/create_tables_and_add_users.py'
create_script_destination = join(tempfile.gettempdir(),
'create_tables_and_add_users.py')
ctx.download_resource(source=create_script_path,
destination=create_script_destination)
# Directly calling with this python bin, in order to make sure it's run
# in the correct venv
python_path = '{0}/env/bin/python'.format(REST_SERVICE_HOME)
runtime_props = ctx.instance.runtime_properties
args_dict = json.loads(runtime_props['security_configuration'])
args_dict['postgresql_host'] = runtime_props['postgresql_host']
# The script won't have access to the ctx, so we dump the relevant args
# to a JSON file, and pass its path to the script
args_file_location = join(tempfile.gettempdir(), 'security_config.json')
with open(args_file_location, 'w') as f:
json.dump(args_dict, f)
result = utils.sudo(
[python_path, create_script_destination, args_file_location]
)
_log_results(result)
utils.remove(args_file_location)
开发者ID:01000101,项目名称:cloudify-manager-blueprints,代码行数:28,代码来源:configure.py
示例17: status
def status(job, status='start/running'):
result = sudo('status %s' % job)
if result.succeeded:
return result.find(status) > -1
else:
return False
开发者ID:josephmisiti,项目名称:fabric-ubuntu-extras,代码行数:7,代码来源:upstart.py
示例18: configure_logstash
def configure_logstash():
logstash_conf_path = '/etc/logstash/conf.d'
runtime_properties = ctx.instance.runtime_properties
rabbitmq_username = runtime_properties.get('rabbitmq_username')
rabbitmq_password = runtime_properties.get('rabbitmq_password')
# Confirm username and password have been supplied for broker before
# continuing.
# Components other than logstash and riemann have this handled in code.
# Note that these are not directly used in this script, but are used by the
# deployed resources, hence the check here.
if not rabbitmq_username or not rabbitmq_password:
ctx.abort_operation(
'Both rabbitmq_username and rabbitmq_password must be supplied '
'and at least 1 character long in the manager blueprint inputs.')
ctx.logger.info('Deploying Logstash configuration...')
utils.deploy_blueprint_resource(
'{0}/logstash.conf'.format(CONFIG_PATH),
'{0}/logstash.conf'.format(logstash_conf_path),
LOGSTASH_SERVICE_NAME)
# Due to a bug in the handling of configuration files,
# configuration files with the same name cannot be deployed.
# Since the logrotate config file is called `logstash`,
# we change the name of the logstash env vars config file
# from logstash to cloudify-logstash to be consistent with
# other service env var files.
init_file = '/etc/init.d/logstash'
utils.replace_in_file(
'sysconfig/\$name',
'sysconfig/cloudify-$name',
init_file)
utils.chmod('755', init_file)
utils.chown('root', 'root', init_file)
ctx.logger.debug('Deploying Logstash sysconfig...')
utils.deploy_blueprint_resource(
'{0}/cloudify-logstash'.format(CONFIG_PATH),
'/etc/sysconfig/cloudify-logstash',
LOGSTASH_SERVICE_NAME)
utils.logrotate(LOGSTASH_SERVICE_NAME)
utils.sudo(['/sbin/chkconfig', 'logstash', 'on'])
utils.clean_var_log_dir(LOGSTASH_SERVICE_NAME)
开发者ID:01000101,项目名称:cloudify-manager-blueprints,代码行数:47,代码来源:configure.py
示例19: install_java
def install_java():
java_source_url = ctx.node.properties['java_rpm_source_url']
ctx.logger.info('Installing Java...')
utils.set_selinux_permissive()
utils.copy_notice('java')
utils.yum_install(java_source_url)
# Make sure the cloudify logs dir exists before we try moving the java log
# there -p will cause it not to error if the dir already exists
utils.mkdir('/var/log/cloudify')
# Java install log is dropped in /var/log.
# Move it to live with the rest of the cloudify logs
if os.path.isfile('/var/log/java_install.log'):
utils.sudo('mv /var/log/java_install.log /var/log/cloudify')
开发者ID:digideskio,项目名称:cloudify-manager-blueprints,代码行数:17,代码来源:create.py
示例20: _create_cloudify_bridge
def _create_cloudify_bridge():
proc, stdout, stderr = utils.sudo('brctl show')
if 'cfy0' not in stdout:
ctx.logger.info('creating cfy0 network bridge...')
utils.sudo('brctl addbr cfy0')
utils.sudo('ip addr add 172.20.0.1/24 dev cfy0')
utils.sudo('ip link set dev cfy0 up')
开发者ID:cloudify-cosmo,项目名称:cloudify-manager,代码行数:7,代码来源:create.py
注:本文中的utils.sudo函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论