PLEASE NOTE: This module is currently in early development, and considered to be experimental and unstable. It is not recommended for production use. Unless you are actively developing code in this module, you should use the OpenStack module instead.
OpenStack is an open source project that is in use by a number a cloud providers, each of which have their own ways of using it.
The OpenStack Nova module for Salt Cloud was bootstrapped from the OpenStack module for Salt Cloud, which uses a libcloud-based connection. The Nova module is designed to use the nova and glance modules already built into Salt.
These modules use the Python novaclient and glanceclient libraries, respectively. In order to use this module, the proper salt configuration must also be in place. This can be specified in the master config, the minion config, a set of grains or a set of pillars.
my_openstack_profile:
keystone.user: admin
keystone.password: verybadpass
keystone.tenant: admin
keystone.auth_url: 'http://127.0.0.1:5000/v2.0/'
Note that there is currently a dependency upon netaddr. This can be installed on Debian-based systems by means of the python-netaddr package.
This module currently requires the latest develop branch of Salt to be installed.
This module has been tested to work with HP Cloud and Rackspace. See the documentation for specific options for either of these providers. These examples could be set up in the cloud configuration at /etc/salt/cloud.providers or /etc/salt/cloud.providers.d/openstack.conf:
my-openstack-config:
# The ID of the minion that will execute the salt nova functions
auth_minion: myminion
# The name of the configuration profile to use on said minion
config_profile: my_openstack_profile
ssh_key_name: mykey
# The OpenStack Nova network UUIDs
networks:
- fixed:
- 4402cd51-37ee-435e-a966-8245956dc0e6
- floating:
- Ext-Net
provider: nova
userdata_file: /tmp/userdata.txt
For local installations that only use private IP address ranges, the following option may be useful. Using the old syntax:
my-openstack-config:
# Ignore IP addresses on this network for bootstrap
ignore_cidr: 192.168.50.0/24
Return a dict of all available VM images on the cloud provider.
Would normally return a list of available datacenters (ComputeRegions? Availability Zones?), but those don't seem to be available via the nova client.
Return a dict of all available VM sizes on the cloud provider.
Create a single VM from a data dict
Delete a single VM
Return the first configured instance.
Return a conn object for the passed VM data
Return the image object to use
Return the VM's size object
Return True if we are to ignore the specified IP. Compatible with IPv4.
Return a list of the VMs that in this location
Return a list of the VMs that in this location
Return a list of the VMs that are on the provider, with select fields
Determine if we should wait for the managed cloud automation before running. Either 'False' (default) or 'True'.
Return the preferred Internet protocol. Either 'ipv4' (default) or 'ipv6'.
Determine if we should wait for rackconnect automation before running. Either 'False' (default) or 'True'.
Reboot a single VM
Return the script deployment object
Return the ssh_interface type to connect to. Either 'public_ips' (default) or 'private_ips'.
Current Salt release: 2014.1.6
Docs for previous releases on salt.rtfd.org.