salt.modules.nova#
Module for handling OpenStack Nova calls
- depends:
novaclient Python module
- configuration:
This module is not usable until the user, password, tenant, and auth URL are specified either in a pillar or in the minion's config file. For example:
keystone.user: admin keystone.password: verybadpass keystone.tenant: admin keystone.auth_url: 'http://127.0.0.1:5000/v2.0/' # Optional keystone.region_name: 'RegionOne'
If configuration for multiple OpenStack accounts is required, they can be set up as different configuration profiles: For example:
openstack1: keystone.user: admin keystone.password: verybadpass keystone.tenant: admin keystone.auth_url: 'http://127.0.0.1:5000/v2.0/' openstack2: keystone.user: admin keystone.password: verybadpass keystone.tenant: admin keystone.auth_url: 'http://127.0.0.2:5000/v2.0/'
With this configuration in place, any of the nova functions can make use of a configuration profile by declaring it explicitly. For example:
salt '*' nova.flavor_list profile=openstack1
To use keystoneauth1 instead of keystoneclient, include the use_keystoneauth option in the pillar or minion config.
Note
This is required to use keystone v3 as for authentication.
keystone.user: admin keystone.password: verybadpass keystone.tenant: admin keystone.auth_url: 'http://127.0.0.1:5000/v3/' keystone.use_keystoneauth: true keystone.verify: '/path/to/custom/certs/ca-bundle.crt'
Note
By default the nova module will attempt to verify its connection utilizing the system certificates. If you need to verify against another bundle of CA certificates or want to skip verification altogether you will need to specify the verify option. You can specify True or False to verify (or not) against system certificates, a path to a bundle or CA certs to check against, or None to allow keystoneauth to search for the certificates on its own. (defaults to True)
- salt.modules.nova.boot(name, flavor_id=0, image_id=0, profile=None, timeout=300)#
Boot (create) a new instance
- name
Name of the new instance (must be first)
- flavor_id
Unique integer ID for the flavor
- image_id
Unique integer ID for the image
- timeout
How long to wait, after creating the instance, for the provider to return information about it (default 300 seconds).
New in version 2014.1.0.
CLI Example:
salt '*' nova.boot myinstance flavor_id=4596 image_id=2
The flavor_id and image_id are obtained from nova.flavor_list and nova.image_list
salt '*' nova.flavor_list salt '*' nova.image_list
- salt.modules.nova.delete(instance_id, profile=None)#
Delete an instance
- instance_id
ID of the instance to be deleted
CLI Example:
salt '*' nova.delete 1138
- salt.modules.nova.flavor_create(name, flavor_id=0, ram=0, disk=0, vcpus=1, profile=None)#
Add a flavor to nova (nova flavor-create). The following parameters are required:
- name
Name of the new flavor (must be first)
- flavor_id
Unique integer ID for the new flavor
- ram
Memory size in MB
- disk
Disk size in GB
- vcpus
Number of vcpus
CLI Example:
salt '*' nova.flavor_create myflavor flavor_id=6 ram=4096 disk=10 vcpus=1
- salt.modules.nova.flavor_delete(flavor_id, profile=None)#
Delete a flavor from nova by id (nova flavor-delete)
CLI Example:
salt '*' nova.flavor_delete 7
- salt.modules.nova.flavor_list(profile=None)#
Return a list of available flavors (nova flavor-list)
CLI Example:
salt '*' nova.flavor_list
- salt.modules.nova.image_list(name=None, profile=None)#
Return a list of available images (nova images-list + nova image-show) If a name is provided, only that image will be displayed.
CLI Examples:
salt '*' nova.image_list salt '*' nova.image_list myimage
- salt.modules.nova.image_meta_delete(image_id=None, name=None, keys=None, profile=None)#
Delete a key=value pair from the metadata for an image (nova image-meta set)
CLI Examples:
salt '*' nova.image_meta_delete 6f52b2ff-0b31-4d84-8fd1-af45b84824f6 keys=cheese salt '*' nova.image_meta_delete name=myimage keys=salad,beans
- salt.modules.nova.image_meta_set(image_id=None, name=None, profile=None, **kwargs)#
Sets a key=value pair in the metadata for an image (nova image-meta set)
CLI Examples:
salt '*' nova.image_meta_set 6f52b2ff-0b31-4d84-8fd1-af45b84824f6 cheese=gruyere salt '*' nova.image_meta_set name=myimage salad=pasta beans=baked
- salt.modules.nova.keypair_add(name, pubfile=None, pubkey=None, profile=None)#
Add a keypair to nova (nova keypair-add)
CLI Examples:
salt '*' nova.keypair_add mykey pubfile=/home/myuser/.ssh/id_rsa.pub salt '*' nova.keypair_add mykey pubkey='ssh-rsa <key> myuser@mybox'
- salt.modules.nova.keypair_delete(name, profile=None)#
Add a keypair to nova (nova keypair-delete)
CLI Example:
salt '*' nova.keypair_delete mykey
- salt.modules.nova.keypair_list(profile=None)#
Return a list of available keypairs (nova keypair-list)
CLI Example:
salt '*' nova.keypair_list
- salt.modules.nova.list_(profile=None)#
To maintain the feel of the nova command line, this function simply calls the server_list function.
CLI Example:
salt '*' nova.list
- salt.modules.nova.lock(instance_id, profile=None)#
Lock an instance
- instance_id
ID of the instance to be locked
CLI Example:
salt '*' nova.lock 1138
- salt.modules.nova.resume(instance_id, profile=None)#
Resume an instance
- instance_id
ID of the instance to be resumed
CLI Example:
salt '*' nova.resume 1138
- salt.modules.nova.secgroup_create(name, description, profile=None)#
Add a secgroup to nova (nova secgroup-create)
CLI Example:
salt '*' nova.secgroup_create mygroup 'This is my security group'
- salt.modules.nova.secgroup_delete(name, profile=None)#
Delete a secgroup to nova (nova secgroup-delete)
CLI Example:
salt '*' nova.secgroup_delete mygroup
- salt.modules.nova.secgroup_list(profile=None)#
Return a list of available security groups (nova items-list)
CLI Example:
salt '*' nova.secgroup_list
- salt.modules.nova.server_by_name(name, profile=None)#
Return information about a server
- name
Server Name
CLI Example:
salt '*' nova.server_by_name myserver profile=openstack
- salt.modules.nova.server_list(profile=None)#
Return list of active servers
CLI Example:
salt '*' nova.server_list
- salt.modules.nova.server_list_detailed(profile=None)#
Return detailed list of active servers
CLI Example:
salt '*' nova.server_list_detailed
- salt.modules.nova.server_show(server_id, profile=None)#
Return detailed information for an active server
CLI Example:
salt '*' nova.server_show <server_id>
- salt.modules.nova.show(server_id, profile=None)#
To maintain the feel of the nova command line, this function simply calls the server_show function.
CLI Example:
salt '*' nova.show
- salt.modules.nova.suspend(instance_id, profile=None)#
Suspend an instance
- instance_id
ID of the instance to be suspended
CLI Example:
salt '*' nova.suspend 1138
- salt.modules.nova.volume_attach(name, server_name, device='/dev/xvdb', profile=None, timeout=300)#
Attach a block storage volume
- name
Name of the new volume to attach
- server_name
Name of the server to attach to
- device
Name of the device on the server
- profile
Profile to build on
CLI Example:
salt '*' nova.volume_attach myblock slice.example.com profile=openstack salt '*' nova.volume_attach myblock server.example.com device='/dev/xvdb' profile=openstack
- salt.modules.nova.volume_create(name, size=100, snapshot=None, voltype=None, profile=None)#
Create a block storage volume
- name
Name of the new volume (must be first)
- size
Volume size
- snapshot
Block storage snapshot id
- voltype
Type of storage
- profile
Profile to build on
CLI Example:
salt '*' nova.volume_create myblock size=300 profile=openstack
- salt.modules.nova.volume_delete(name, profile=None)#
Destroy the volume
- name
Name of the volume
- profile
Profile to build on
CLI Example:
salt '*' nova.volume_delete myblock profile=openstack
- salt.modules.nova.volume_detach(name, profile=None, timeout=300)#
Attach a block storage volume
- name
Name of the new volume to attach
- server_name
Name of the server to detach from
- profile
Profile to build on
CLI Example:
salt '*' nova.volume_detach myblock profile=openstack
- salt.modules.nova.volume_list(search_opts=None, profile=None)#
List storage volumes
- search_opts
Dictionary of search options
- profile
Profile to use
CLI Example:
salt '*' nova.volume_list search_opts='{"display_name": "myblock"}' profile=openstack
- salt.modules.nova.volume_show(name, profile=None)#
Create a block storage volume
- name
Name of the volume
- profile
Profile to use
CLI Example:
salt '*' nova.volume_show myblock profile=openstack