salt.cloud.clouds.linode

Linode Cloud Module using Apache Libcloud OR linode-python bindings

The Linode cloud module is used to control access to the Linode VPS system

Use of this module only requires the apikey parameter.

depends:linode-python >= 1.1.1

OR

depends:apache-libcloud >= 0.13.2

Note

The linode-python driver will work with earlier versions of linode-python, but it is highly recommended to use a minimum version of 1.1.1. Earlier versions leak sensitive information into the debug logs.

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

my-linode-config:
  # Linode account api key
  apikey: JVkbSJDGHSDKUKSDJfhsdklfjgsjdkflhjlsdfffhgdgjkenrtuinv
  provider: linode

When used with linode-python, this provider supports cloning existing Linodes. To clone, add a profile with a clonefrom key, and a script_args: -C.

Clonefrom should be the name of the that is the source for the clone. script_args: -C passes a -C to the bootstrap script, which only configures the minion and doesn't try to install a new copy of salt-minion. This way the minion gets new keys and the keys get pre-seeded on the master, and the /etc/salt/minion file has the right 'id:' declaration.

Cloning requires a post 2015-02-01 salt-bootstrap.

salt.cloud.clouds.linode.avail_images(conn=None, call=None)

Return a dict of all available VM images on the cloud provider with relevant data

salt.cloud.clouds.linode.avail_locations(conn=None, call=None)

Return a dict of all available VM locations on the cloud provider with relevant data

salt.cloud.clouds.linode.avail_sizes(conn=None, call=None)

Return a dict of all available VM images on the cloud provider with relevant data

salt.cloud.clouds.linode.boot(LinodeID=None, configid=None)

Execute a boot sequence on a linode

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

Create a single VM from a data dict

salt.cloud.clouds.linode.create_config(vm_, LinodeID=None, root_disk_id=None, swap_disk_id=None)

Create a Linode Config

salt.cloud.clouds.linode.create_disk_from_distro(vm_=None, LinodeID=None, swapsize=None)

Create the disk for the linode

salt.cloud.clouds.linode.create_swap_disk(vm_=None, LinodeID=None, swapsize=None)

Create the disk for the linode

salt.cloud.clouds.linode.destroy(name, conn=None, call=None)

Delete a single VM

salt.cloud.clouds.linode.get_auth(vm_)

Return either NodeAuthSSHKey or NodeAuthPassword, preferring NodeAuthSSHKey if both are provided.

salt.cloud.clouds.linode.get_configured_provider()

Return the first configured instance.

salt.cloud.clouds.linode.get_conn()

Return a conn object for the passed VM data

salt.cloud.clouds.linode.get_disk_size(vm_, size, swap)

Return the size of of the root disk in MB

salt.cloud.clouds.linode.get_image(conn, vm_)

Return the image object to use

salt.cloud.clouds.linode.get_kernels(conn=None)

Get Linode's list of kernels available

salt.cloud.clouds.linode.get_location(conn, vm_)

Return the node location to use

salt.cloud.clouds.linode.get_node(conn, name)

Return a libcloud node for the named VM

salt.cloud.clouds.linode.get_one_kernel(conn=None, name=None)

Return data on one kernel name=None returns latest kernel

salt.cloud.clouds.linode.get_password(vm_)

Return the password to use

salt.cloud.clouds.linode.get_private_ip(vm_)

Return True if a private ip address is requested

salt.cloud.clouds.linode.get_pubkey(vm_)

Return the SSH pubkey to use

salt.cloud.clouds.linode.get_size(conn, vm_)

Return the VM's size object

salt.cloud.clouds.linode.get_ssh_key_filename(vm_)

Return path to filename if get_auth() returns a NodeAuthSSHKey.

salt.cloud.clouds.linode.get_swap(vm_)

Return the amount of swap space to use in MB

salt.cloud.clouds.linode.list_nodes(conn=None, call=None)

Return a list of the VMs that are on the provider

salt.cloud.clouds.linode.list_nodes_full(conn=None, call=None)

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

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

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

salt.cloud.clouds.linode.remove_complex_types(dictionary)

Linode-python is now returning some complex types that are not serializable by msgpack. Kill those.

salt.cloud.clouds.linode.script(vm_)

Return the script deployment object

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

Show the details from the provider concerning an instance

salt.cloud.clouds.linode.waitfor_job(conn=None, LinodeID=None, JobID=None, timeout=300, quiet=True)
salt.cloud.clouds.linode.waitfor_status(conn=None, LinodeID=None, status=None, timeout=300, quiet=True)

Wait for a certain status