salt.modules.libcloud_compute

Apache Libcloud Compute Management

Connection module for Apache Libcloud Compute management for a full list of supported clouds, see http://libcloud.readthedocs.io/en/latest/compute/supported_providers.html

Clouds include Amazon EC2, Azure, Google GCE, VMware, OpenStack Nova

New in version 2018.3.0.

configuration:

This module uses a configuration profile for one or multiple cloud providers

libcloud_compute:
    profile_test1:
      driver: google
      key: service-account@googlecloud.net
      secret: /path/to.key.json
    profile_test2:
      driver: arm
      key: 12345
      secret: mysecret
depends:

apache-libcloud

salt.modules.libcloud_compute.attach_volume(node_id, volume_id, profile, device=None, **libcloud_kwargs)

Attaches volume to node.

Parameters:
  • node_id (str) -- Node ID to target

  • volume_id (str) -- Volume ID from which to attach

  • profile (str) -- The profile key

  • device (str) -- Where the device is exposed, e.g. '/dev/sdb'

  • libcloud_kwargs (dict) -- Extra arguments for the driver's attach_volume method

CLI Example:

salt myminion libcloud_compute.detach_volume vol1 profile1
salt.modules.libcloud_compute.copy_image(source_region, image_id, name, profile, description=None, **libcloud_kwargs)

Copies an image from a source region to the current region.

Parameters:
  • source_region (str) -- Region to copy the node from.

  • image_id (str) -- Image to copy.

  • name (str) -- name for new image.

  • profile (str) -- The profile key

  • description -- description for new image.

  • libcloud_kwargs (dict) -- Extra arguments for the driver's copy_image method

CLI Example:

salt myminion libcloud_compute.copy_image us-east1 image1 'new image' profile1
salt.modules.libcloud_compute.create_image(node_id, name, profile, description=None, **libcloud_kwargs)

Create an image from a node

Parameters:
  • node_id (str) -- Node to run the task on.

  • name (str) -- name for new image.

  • profile (str) -- The profile key

  • description (description) -- description for new image.

  • libcloud_kwargs (dict) -- Extra arguments for the driver's create_image method

CLI Example:

salt myminion libcloud_compute.create_image server1 my_image profile1
salt myminion libcloud_compute.create_image server1 my_image profile1 description='test image'
salt.modules.libcloud_compute.create_key_pair(name, profile, **libcloud_kwargs)

Create a single key pair by name

Parameters:
  • name (str) -- Name of the key pair to create.

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's create_key_pair method

CLI Example:

salt myminion libcloud_compute.create_key_pair pair1 profile1
salt.modules.libcloud_compute.create_volume(size, name, profile, location_id=None, **libcloud_kwargs)

Create a storage volume

Parameters:
  • size (int) -- Size of volume in gigabytes (required)

  • name (str) -- Name of the volume to be created

  • location_id (str) -- Which data center to create a volume in. If empty, undefined behavior will be selected. (optional)

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's list_volumes method

CLI Example:

salt myminion libcloud_compute.create_volume 1000 vol1 profile1
salt.modules.libcloud_compute.create_volume_snapshot(volume_id, profile, name=None, **libcloud_kwargs)

Create a storage volume snapshot

Parameters:
  • volume_id (str) -- Volume ID from which to create the new snapshot.

  • profile (str) -- The profile key

  • name (str) -- Name of the snapshot to be created (optional)

  • libcloud_kwargs (dict) -- Extra arguments for the driver's create_volume_snapshot method

CLI Example:

salt myminion libcloud_compute.create_volume_snapshot vol1 profile1
salt.modules.libcloud_compute.delete_image(image_id, profile, **libcloud_kwargs)

Delete an image of a node

Parameters:
  • image_id (str) -- Image to delete

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's delete_image method

CLI Example:

salt myminion libcloud_compute.delete_image image1 profile1
salt.modules.libcloud_compute.delete_key_pair(name, profile, **libcloud_kwargs)

Delete a key pair

Parameters:
  • name (str) -- Key pair name.

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's import_key_pair_from_xxx method

CLI Example:

salt myminion libcloud_compute.delete_key_pair pair1 profile1
salt.modules.libcloud_compute.destroy_node(node_id, profile, **libcloud_kwargs)

Destroy a node in the cloud

Parameters:
  • node_id (str) -- Unique ID of the node to destroy

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's destroy_node method

CLI Example:

salt myminion libcloud_compute.destry_node as-2346 profile1
salt.modules.libcloud_compute.destroy_volume(volume_id, profile, **libcloud_kwargs)

Destroy a volume.

Parameters:
  • volume_id (str) -- Volume ID from which to destroy

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's destroy_volume method

CLI Example:

salt myminion libcloud_compute.destroy_volume vol1 profile1
salt.modules.libcloud_compute.destroy_volume_snapshot(volume_id, snapshot_id, profile, **libcloud_kwargs)

Destroy a volume snapshot.

Parameters:
  • volume_id (str) -- Volume ID from which the snapshot belongs

  • snapshot_id (str) -- Volume Snapshot ID from which to destroy

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's destroy_volume_snapshot method

CLI Example:

salt myminion libcloud_compute.destroy_volume_snapshot snap1 profile1
salt.modules.libcloud_compute.detach_volume(volume_id, profile, **libcloud_kwargs)

Detaches a volume from a node.

Parameters:
  • volume_id (str) -- Volume ID from which to detach

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's detach_volume method

CLI Example:

salt myminion libcloud_compute.detach_volume vol1 profile1
salt.modules.libcloud_compute.extra(method, profile, **libcloud_kwargs)

Call an extended method on the driver

Parameters:
  • method (str) -- Driver's method name

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's method

CLI Example:

salt myminion libcloud_compute.extra ex_get_permissions google container_name=my_container object_name=me.jpg --out=yaml
salt.modules.libcloud_compute.get_image(image_id, profile, **libcloud_kwargs)

Get an image of a node

Parameters:
  • image_id (str) -- Image to fetch

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's delete_image method

CLI Example:

salt myminion libcloud_compute.get_image image1 profile1
salt.modules.libcloud_compute.get_key_pair(name, profile, **libcloud_kwargs)

Get a single key pair by name

Parameters:
  • name (str) -- Name of the key pair to retrieve.

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's get_key_pair method

CLI Example:

salt myminion libcloud_compute.get_key_pair pair1 profile1
salt.modules.libcloud_compute.import_key_pair(name, key, profile, key_type=None, **libcloud_kwargs)

Import a new public key from string or a file path

Parameters:
  • name (str) -- Key pair name.

  • key (str or path str) -- Public key material, the string or a path to a file

  • profile (str) -- The profile key

  • key_type (str) -- The key pair type, either FILE or STRING. Will detect if not provided and assume that if the string is a path to an existing path it is a FILE, else STRING.

  • libcloud_kwargs (dict) -- Extra arguments for the driver's import_key_pair_from_xxx method

CLI Example:

salt myminion libcloud_compute.import_key_pair pair1 key_value_data123 profile1
salt myminion libcloud_compute.import_key_pair pair1 /path/to/key profile1
salt.modules.libcloud_compute.list_images(profile, location_id=None, **libcloud_kwargs)

Return a list of images for this cloud

Parameters:
  • profile (str) -- The profile key

  • location_id (str) -- The location key, from list_locations

  • libcloud_kwargs (dict) -- Extra arguments for the driver's list_images method

CLI Example:

salt myminion libcloud_compute.list_images profile1
salt.modules.libcloud_compute.list_key_pairs(profile, **libcloud_kwargs)

List all the available key pair objects.

Parameters:
  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's list_key_pairs method

CLI Example:

salt myminion libcloud_compute.list_key_pairs profile1
salt.modules.libcloud_compute.list_locations(profile, **libcloud_kwargs)

Return a list of locations for this cloud

Parameters:
  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's list_locations method

CLI Example:

salt myminion libcloud_compute.list_locations profile1
salt.modules.libcloud_compute.list_nodes(profile, **libcloud_kwargs)

Return a list of nodes

Parameters:
  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's list_nodes method

CLI Example:

salt myminion libcloud_compute.list_nodes profile1
salt.modules.libcloud_compute.list_sizes(profile, location_id=None, **libcloud_kwargs)

Return a list of node sizes

Parameters:
  • profile (str) -- The profile key

  • location_id (str) -- The location key, from list_locations

  • libcloud_kwargs (dict) -- Extra arguments for the driver's list_sizes method

CLI Example:

salt myminion libcloud_compute.list_sizes profile1
salt myminion libcloud_compute.list_sizes profile1 us-east1
salt.modules.libcloud_compute.list_volume_snapshots(volume_id, profile, **libcloud_kwargs)

Return a list of storage volumes snapshots for this cloud

Parameters:
  • volume_id (str) -- The volume identifier

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's list_volume_snapshots method

CLI Example:

salt myminion libcloud_compute.list_volume_snapshots vol1 profile1
salt.modules.libcloud_compute.list_volumes(profile, **libcloud_kwargs)

Return a list of storage volumes for this cloud

Parameters:
  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's list_volumes method

CLI Example:

salt myminion libcloud_compute.list_volumes profile1
salt.modules.libcloud_compute.reboot_node(node_id, profile, **libcloud_kwargs)

Reboot a node in the cloud

Parameters:
  • node_id (str) -- Unique ID of the node to reboot

  • profile (str) -- The profile key

  • libcloud_kwargs (dict) -- Extra arguments for the driver's reboot_node method

CLI Example:

salt myminion libcloud_compute.reboot_node as-2346 profile1