Exemple #1
0
def detach_volume(profile, cluster, instance, volume, secret_key,
                  log_write_url, girder_callback_info):

    playbook = os.path.join(get_playbook_directory(), 'volumes', 'ec2',
                            'detach.yml')

    extra_vars = {
        'girder_volume_id': volume['_id'],
        'girder_cluster_id': cluster['_id'],
        'volume_id': volume['ec2']['id'],
        'instance_id': instance['instance_id'],
        'path': volume['path'],
        'region': profile['regionName'],
        'ansible_ssh_private_key_file': _key_path(profile),
        'ansible_user': cluster['config']['ssh']['user']
    }

    extra_vars.update(girder_callback_info)

    env = os.environ.copy()
    env.update({
        'AWS_ACCESS_KEY_ID': profile['accessKeyId'],
        'AWS_SECRET_ACCESS_KEY': secret_key,
        'ANSIBLE_HOST_KEY_CHECKING': 'false',
        'ANSIBLE_CALLBACK_PLUGINS': get_callback_plugins_path(),
        'LOG_WRITE_URL': log_write_url,
        'GIRDER_TOKEN': girder_callback_info['girder_token'],
        'ANSIBLE_LIBRARY': get_library_path()
    })

    inventory = simple_inventory({'head': [instance['public_ip']]})

    with inventory.to_tempfile() as inventory_path:
        run_playbook(playbook, inventory_path, extra_vars, verbose=2, env=env)
Exemple #2
0
def delete_volume(profile, volume, secret_key, girder_callback_info):

    playbook = os.path.join(get_playbook_directory(),
                            'volumes', 'ec2', 'delete.yml')

    extra_vars = {
        'girder_volume_id': volume['_id'],
        'volume_id': volume['ec2']['id'],
        'region': profile['regionName'],
        'ansible_ssh_private_key_file': _key_path(profile),
    }

    extra_vars.update(girder_callback_info)

    env = os.environ.copy()
    env.update({'AWS_ACCESS_KEY_ID': profile['accessKeyId'],
                'AWS_SECRET_ACCESS_KEY': secret_key,
                'ANSIBLE_HOST_KEY_CHECKING': 'false',
                'ANSIBLE_CALLBACK_PLUGINS': get_callback_plugins_path(),
                'ANSIBLE_LIBRARY': get_library_path()})

    inventory = simple_inventory('localhost')

    with inventory.to_tempfile() as inventory_path:
        run_playbook(playbook, inventory_path,
                     extra_vars, verbose=2, env=env)
Exemple #3
0
def detach_volume(profile, cluster, instance, volume,
                  secret_key, girder_callback_info):

    playbook = os.path.join(get_playbook_directory(),
                            'volumes', 'ec2', 'detach.yml')

    extra_vars = {
        'girder_volume_id': volume['_id'],
        'girder_cluster_id': cluster['_id'],
        'volume_id': volume['ec2']['id'],
        'instance_id': instance['instance_id'],
        'path': volume['path'],
        'region': profile['regionName'],
        'ansible_ssh_private_key_file': _key_path(profile),
        'ansible_user': cluster['config']['ssh']['user']
    }

    extra_vars.update(girder_callback_info)

    env = os.environ.copy()
    env.update({'AWS_ACCESS_KEY_ID': profile['accessKeyId'],
                'AWS_SECRET_ACCESS_KEY': secret_key,
                'ANSIBLE_HOST_KEY_CHECKING': 'false',
                'ANSIBLE_CALLBACK_PLUGINS': get_callback_plugins_path(),
                'ANSIBLE_LIBRARY': get_library_path()})

    inventory = simple_inventory({'head': [instance['public_ip']]})

    with inventory.to_tempfile() as inventory_path:
        run_playbook(playbook, inventory_path,
                     extra_vars, verbose=2, env=env)
Exemple #4
0
def get_playbook_variables(cluster, profile, extra_vars):
    # Default variables all playbooks will need
    playbook_variables = {
        'cluster_region': profile['regionName'],
        'cluster_zone': profile['availabilityZone'],
        'cluster_id': cluster['_id'],
        'ansible_ssh_private_key_file': _key_path(profile)
    }

    # Update with variables passed in from the cluster adapater
    playbook_variables.update(extra_vars)

    # If no keyname is provided use the one associated with the profile
    if 'aws_keyname' not in playbook_variables:
        playbook_variables['aws_keyname'] = profile['_id']

    return playbook_variables
Exemple #5
0
def get_playbook_variables(cluster, profile, extra_vars):
    # Default variables all playbooks will need
    playbook_variables = {
        'cluster_region': profile['regionName'],
        'cluster_zone': profile['availabilityZone'],
        'cluster_id': cluster['_id'],
        'ansible_ssh_private_key_file': _key_path(profile)
    }

    # Update with variables passed in from the cluster adapater
    playbook_variables.update(extra_vars)

    # If no keyname is provided use the one associated with the profile
    if 'aws_keyname' not in playbook_variables:
        playbook_variables['aws_keyname'] = profile['_id']

    return playbook_variables