# salt.modules.cloud

Salt-specific interface for calling Salt Cloud directly

salt.modules.cloud.action(fun=None, cloudmap=None, names=None, provider=None, instance=None, **kwargs)

  Execute a single action on the given provider/instance

  CLI Example:

      salt minionname cloud.action start instance=myinstance
      salt minionname cloud.action stop instance=myinstance
      salt minionname cloud.action show_image provider=my-ec2-config image=ami-1624987f

salt.modules.cloud.create(provider, names, opts=None, **kwargs)

  Create an instance using Salt Cloud

  CLI Example:

      salt minionname cloud.create my-ec2-config myinstance image=ami-1624987f size='t1.micro' ssh_username=ec2-user securitygroup=default delvol_on_destroy=True

salt.modules.cloud.destroy(names)

  Destroy the named VM(s)

  CLI Example:

      salt minionname cloud.destroy myinstance

salt.modules.cloud.full_query(query_type='list_nodes_full')

  List all available cloud provider data

  CLI Example:

      salt minionname cloud.full_query

salt.modules.cloud.get_instance(name, provider=None)

  Return details on an instance.

  Similar to the cloud action show_instance but returns only the instance details.

  CLI Example:

      salt minionname cloud.get_instance myinstance

  SLS Example:

      {{ salt['cloud.get_instance']('myinstance')['mac_address'] }}

salt.modules.cloud.has_instance(name, provider=None)

  Return true if the instance is found on a provider

  CLI Example:

      salt minionname cloud.has_instance myinstance

salt.modules.cloud.list_images(provider='all')

  List cloud provider images for the given providers

  CLI Example:

      salt minionname cloud.list_images my-gce-config

salt.modules.cloud.list_locations(provider='all')

  List cloud provider locations for the given providers

  CLI Example:

      salt minionname cloud.list_locations my-gce-config

salt.modules.cloud.list_sizes(provider='all')

  List cloud provider sizes for the given providers

  CLI Example:

      salt minionname cloud.list_sizes my-gce-config

salt.modules.cloud.map_run(path=None, **kwargs)

  Execute a salt cloud map file

  Cloud Map data can be retrieved from several sources:

  - a local file (provide the path to the file to the 'path' argument)

  - a JSON-formatted map directly (provide the appropriately formatted to using the 'map_data' argument)

  - the Salt Pillar (provide the map name of under 'pillar:cloud:maps' to the 'map_pillar' argument)

  Note

  Only one of these sources can be read at a time. The options are listed in their order of precedence.

  CLI Examples:

      salt minionname cloud.map_run /path/to/cloud.map
      salt minionname cloud.map_run path=/path/to/cloud.map
      salt minionname cloud.map_run map_pillar='<map_pillar>'
        .. versionchanged:: 2018.3.1
      salt minionname cloud.map_run map_data='<actual map data>'

salt.modules.cloud.network_create(provider, names, **kwargs)

  Create private network

  CLI Example:

      salt minionname cloud.network_create my-nova names=['salt'] cidr='192.168.100.0/24'

salt.modules.cloud.network_list(provider)

  List private networks

  CLI Example:

      salt minionname cloud.network_list my-nova

salt.modules.cloud.profile_(profile, names, vm_overrides=None, opts=None, **kwargs)

  Spin up an instance using Salt Cloud

  CLI Example:

      salt minionname cloud.profile my-gce-config myinstance

salt.modules.cloud.query(query_type='list_nodes')

  List cloud provider data for all providers

  CLI Examples:

      salt minionname cloud.query
      salt minionname cloud.query list_nodes_full
      salt minionname cloud.query list_nodes_select

salt.modules.cloud.select_query(query_type='list_nodes_select')

  List selected nodes

  CLI Example:

      salt minionname cloud.select_query

salt.modules.cloud.virtual_interface_create(provider, names, **kwargs)

  Attach private interfaces to a server

  CLI Example:

      salt minionname cloud.virtual_interface_create my-nova names=['salt-master'] net_name='salt'

salt.modules.cloud.virtual_interface_list(provider, names, **kwargs)

  List virtual interfaces on a server

  CLI Example:

      salt minionname cloud.virtual_interface_list my-nova names=['salt-master']

salt.modules.cloud.volume_attach(provider, names, **kwargs)

  Attach volume to a server

  CLI Example:

      salt minionname cloud.volume_attach my-nova myblock server_name=myserver device='/dev/xvdf'

salt.modules.cloud.volume_create(provider, names, **kwargs)

  Create volume

  CLI Example:

      salt minionname cloud.volume_create my-nova myblock size=100 voltype=SSD

salt.modules.cloud.volume_delete(provider, names, **kwargs)

  Delete volume

  CLI Example:

      salt minionname cloud.volume_delete my-nova myblock

salt.modules.cloud.volume_detach(provider, names, **kwargs)

  Detach volume from a server

  CLI Example:

      salt minionname cloud.volume_detach my-nova myblock server_name=myserver

salt.modules.cloud.volume_list(provider)

  List block storage volumes

  CLI Example:

      salt minionname cloud.volume_list my-nova