# salt.cloud.clouds.vultrpy

## Vultr Cloud Module using python-vultr bindings

Added in version 2016.3.0.

The Vultr cloud module is used to control access to the Vultr VPS system.

Use of this module only requires the `api_key` parameter.

Set up the cloud configuration at `/etc/salt/cloud.providers` or `/etc/salt/cloud.providers.d/vultr.conf`:

    my-vultr-config:
      # Vultr account api key
      api_key: <supersecretapi_key>
      driver: vultr

Set up the cloud profile at `/etc/salt/cloud.profiles` or `/etc/salt/cloud.profiles.d/vultr.conf`:

    nyc-4gb-4cpu-ubuntu-14-04:
      location: 1
      provider: my-vultr-config
      image: 160
      size: 95
      enable_private_network: True

This driver also supports Vultr's startup script feature. You can list startup scripts in your account with

    salt-cloud -f list_scripts <name of vultr provider>

That list will include the IDs of the scripts in your account. Thus, if you have a script called 'setup-networking' with an ID of 493234 you can specify that startup script in a profile like so:

    nyc-2gb-1cpu-ubuntu-17-04:
      location: 1
      provider: my-vultr-config
      image: 223
      size: 13
      startup_script_id: 493234

Similarly you can also specify a fiewall group ID using the option firewall_group_id. You can list firewall groups with

    salt-cloud -f list_firewall_groups <name of vultr provider>

To specify SSH keys to be preinstalled on the server, use the ssh_key_names setting

    nyc-2gb-1cpu-ubuntu-17-04:
      location: 1
      provider: my-vultr-config
      image: 223
      size: 13
      ssh_key_names: dev1,dev2,salt-master

You can list SSH keys available on your account using

    salt-cloud -f list_keypairs <name of vultr provider>

salt.cloud.clouds.vultrpy.avail_firewall_groups(conn=None)

  return available firewall groups

salt.cloud.clouds.vultrpy.avail_images(conn=None)

  Return available images

salt.cloud.clouds.vultrpy.avail_keys(conn=None)

  return available SSH keys

salt.cloud.clouds.vultrpy.avail_locations(conn=None)

  return available datacenter locations

salt.cloud.clouds.vultrpy.avail_scripts(conn=None)

  return available startup scripts

salt.cloud.clouds.vultrpy.avail_sizes(conn=None)

  Return available sizes ("plans" in VultrSpeak)

salt.cloud.clouds.vultrpy.create(vm_)

  Create a single VM from a data dict

salt.cloud.clouds.vultrpy.destroy(name)

  Remove a node from Vultr

salt.cloud.clouds.vultrpy.get_configured_provider()

  Return the first configured instance

salt.cloud.clouds.vultrpy.list_firewall_groups(conn=None, call=None)

  return list of firewall groups

salt.cloud.clouds.vultrpy.list_keypairs(conn=None, call=None)

  return list of SSH keys

salt.cloud.clouds.vultrpy.list_nodes(**kwargs)

  Return basic data on nodes

salt.cloud.clouds.vultrpy.list_nodes_full(**kwargs)

  Return all data on nodes

salt.cloud.clouds.vultrpy.list_nodes_select(conn=None, call=None)

  Return a list of the VMs that are on the provider, with select fields

salt.cloud.clouds.vultrpy.list_scripts(conn=None, call=None)

  return list of Startup Scripts

salt.cloud.clouds.vultrpy.show_instance(name, call=None)

  Show the details from the provider concerning an instance

salt.cloud.clouds.vultrpy.show_keypair(kwargs=None, call=None)

  return list of SSH keys

salt.cloud.clouds.vultrpy.start(*args, **kwargs)

  Execute a "start" action on a VM

salt.cloud.clouds.vultrpy.stop(*args, **kwargs)

  Execute a "stop" action on a VM