salt.cloud.clouds.profitbricks#
ProfitBricks Cloud Module#
The ProfitBricks SaltStack cloud module allows a ProfitBricks server to be automatically deployed and bootstraped with Salt.
- depends:
profitbrick >= 3.1.0
The module requires ProfitBricks credentials to be supplied along with an existing virtual datacenter UUID where the server resources will reside. The server should also be assigned a public LAN, a private LAN, or both along with SSH key pairs. ...
Set up the cloud configuration at /etc/salt/cloud.providers or
/etc/salt/cloud.providers.d/profitbricks.conf:
my-profitbricks-config:
driver: profitbricks
# The ProfitBricks login username
username: user@example.com
# The ProfitBricks login password
password: secretpassword
# The ProfitBricks virtual datacenter UUID
datacenter_id: <UUID>
# SSH private key filename
ssh_private_key: /path/to/private.key
# SSH public key filename
ssh_public_key: /path/to/public.key
my-profitbricks-profile:
provider: my-profitbricks-config
# Name of a predefined server size.
size: Micro Instance
# Assign CPU family to server.
cpu_family: INTEL_XEON
# Number of CPU cores to allocate to node (overrides server size).
cores: 4
# Amount of RAM in multiples of 256 MB (overrides server size).
ram: 4096
# The server availability zone.
availability_zone: ZONE_1
# Name or UUID of the HDD image to use.
image: <UUID>
# Image alias could be provided instead of image.
# Example 'ubuntu:latest'
#image_alias: <IMAGE_ALIAS>
# Size of the node disk in GB (overrides server size).
disk_size: 40
# Type of disk (HDD or SSD).
disk_type: SSD
# Storage availability zone to use.
disk_availability_zone: ZONE_2
# Assign the server to the specified public LAN.
public_lan: <ID>
# Assign firewall rules to the network interface.
public_firewall_rules:
SSH:
protocol: TCP
port_range_start: 22
port_range_end: 22
# Assign the server to the specified private LAN.
private_lan: <ID>
# Enable NAT on the private NIC.
nat: true
# Assign additional volumes to the server.
volumes:
data-volume:
disk_size: 500
disk_availability_zone: ZONE_3
log-volume:
disk_size: 50
disk_type: SSD
To use a private IP for connecting and bootstrapping node:
my-profitbricks-profile:
ssh_interface: private_lan
Set deploy to False if Salt should not be installed on the node.
my-profitbricks-profile:
deploy: False
- salt.cloud.clouds.profitbricks.avail_images(call=None)#
Return a list of the images that are on the provider
- salt.cloud.clouds.profitbricks.avail_locations(call=None)#
Return a dict of all available VM locations on the cloud provider with relevant data
- salt.cloud.clouds.profitbricks.avail_sizes(call=None)#
Return a dict of all available VM sizes on the cloud provider with relevant data. Latest version can be found at:
- salt.cloud.clouds.profitbricks.create(vm_)#
Create a single VM from a data dict
- salt.cloud.clouds.profitbricks.create_datacenter(call=None, kwargs=None)#
Creates a virtual datacenter based on supplied parameters.
CLI Example:
salt-cloud -f create_datacenter profitbricks name=mydatacenter location=us/las description="my description"
- salt.cloud.clouds.profitbricks.create_loadbalancer(call=None, kwargs=None)#
Creates a loadbalancer within the datacenter from the provider config.
CLI Example:
salt-cloud -f create_loadbalancer profitbricks name=mylb
- salt.cloud.clouds.profitbricks.destroy(name, call=None)#
destroy a machine by name
- Parameters:
name -- name given to the machine
call -- call value in this case is 'action'
- Returns:
array of booleans , true if successfully stopped and true if successfully removed
CLI Example:
salt-cloud -d vm_name
- salt.cloud.clouds.profitbricks.get_configured_provider()#
Return the first configured instance.
- salt.cloud.clouds.profitbricks.get_conn()#
Return a conn object for the passed VM data
- salt.cloud.clouds.profitbricks.get_datacenter(conn)#
Return the datacenter from the config provider datacenter ID
- salt.cloud.clouds.profitbricks.get_datacenter_id()#
Return datacenter ID from provider configuration
- salt.cloud.clouds.profitbricks.get_dependencies()#
Warn if dependencies are not met.
- salt.cloud.clouds.profitbricks.get_disk_type(vm_)#
Return the type of disk to use. Either 'HDD' (default) or 'SSD'.
- salt.cloud.clouds.profitbricks.get_image(vm_)#
Return the image object to use
- salt.cloud.clouds.profitbricks.get_key_filename(vm_)#
Check SSH private key file and return absolute path if exists.
- salt.cloud.clouds.profitbricks.get_node(conn, name)#
Return a node for the named VM
- salt.cloud.clouds.profitbricks.get_public_keys(vm_)#
Retrieve list of SSH public keys.
- salt.cloud.clouds.profitbricks.get_size(vm_)#
Return the VM's size object
- salt.cloud.clouds.profitbricks.get_wait_timeout(vm_)#
Return the wait_for_timeout for resource provisioning.
- salt.cloud.clouds.profitbricks.list_datacenters(conn=None, call=None)#
List all the data centers
CLI Example:
salt-cloud -f list_datacenters my-profitbricks-config
- salt.cloud.clouds.profitbricks.list_images(call=None, kwargs=None)#
List all the images with alias by location
CLI Example:
salt-cloud -f list_images my-profitbricks-config location=us/las
- salt.cloud.clouds.profitbricks.list_loadbalancers(call=None)#
Return a list of the loadbalancers that are on the provider
- salt.cloud.clouds.profitbricks.list_nodes(conn=None, call=None)#
Return a list of VMs that are on the provider
- salt.cloud.clouds.profitbricks.list_nodes_full(conn=None, call=None)#
Return a list of the VMs that are on the provider, with all fields
- salt.cloud.clouds.profitbricks.reboot(name, call=None)#
reboot a machine by name :param name: name given to the machine :param call: call value in this case is 'action' :return: true if successful
CLI Example:
salt-cloud -a reboot vm_name
- salt.cloud.clouds.profitbricks.reserve_ipblock(call=None, kwargs=None)#
Reserve the IP Block
- salt.cloud.clouds.profitbricks.set_public_lan(lan_id)#
Enables public Internet access for the specified public_lan. If no public LAN is available, then a new public LAN is created.
- salt.cloud.clouds.profitbricks.show_instance(name, call=None)#
Show the details from the provider concerning an instance
- salt.cloud.clouds.profitbricks.signal_event(vm_, event, description)#
- salt.cloud.clouds.profitbricks.ssh_interface(vm_)#
Return the ssh_interface type to connect to. Either 'public_ips' (default) or 'private_ips'.
- salt.cloud.clouds.profitbricks.start(name, call=None)#
start a machine by name :param name: name given to the machine :param call: call value in this case is 'action' :return: true if successful
CLI Example:
salt-cloud -a start vm_name
- salt.cloud.clouds.profitbricks.stop(name, call=None)#
stop a machine by name :param name: name given to the machine :param call: call value in this case is 'action' :return: true if successful
CLI Example:
salt-cloud -a stop vm_name
- salt.cloud.clouds.profitbricks.version_compatible(version)#
Checks profitbricks version