salt.cloud.clouds.opennebula

OpenNebula Cloud Module

The OpenNebula cloud module is used to control access to an OpenNebula cloud.

2014.7.0 新版功能.

depends:lxml
depends:OpenNebula installation running version 4.14.

Use of this module requires the xml_rpc, user, and password parameters to be set.

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

my-opennebula-config:
  xml_rpc: http://localhost:2633/RPC2
  user: oneadmin
  password: JHGhgsayu32jsa
  driver: opennebula
salt-cloud -f image_allocate opennebula datastore_name=default \
    data='NAME="My New Image" DESCRIPTION="Description of the image." \
    PATH=/home/one_user/images/image_name.img'
salt-cloud -f secgroup_allocate opennebula \
    data="Name = test RULE = [PROTOCOL = TCP, RULE_TYPE = inbound, \
    RANGE = 1000:2000]"
salt.cloud.clouds.opennebula.avail_images(call=None)

Return available OpenNebula images.

命令行接口CLI 范例:

salt-cloud --list-images opennebula
salt-cloud --function avail_images opennebula
salt-cloud -f avail_images opennebula
salt.cloud.clouds.opennebula.avail_locations(call=None)

Return available OpenNebula locations.

命令行接口CLI 范例:

salt-cloud --list-locations opennebula
salt-cloud --function avail_locations opennebula
salt-cloud -f avail_locations opennebula
salt.cloud.clouds.opennebula.avail_sizes(call=None)

Because sizes are built into templates with OpenNebula, there will be no sizes to return here.

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

Create a single VM from a data dict.

vm_
The dictionary use to create a VM.

命令行接口CLI 范例:

salt-cloud -p my-opennebula-profile vm_name
salt.cloud.clouds.opennebula.destroy(name, call=None)

Destroy a node. Will check termination protection and warn if enabled.

name
The name of the vm to be destroyed.

命令行接口CLI 范例:

salt-cloud --destroy vm_name
salt-cloud -d vm_name
salt-cloud --action destroy vm_name
salt-cloud -a destroy vm_name
salt.cloud.clouds.opennebula.get_cluster_id(kwargs=None, call=None)

Returns a cluster's ID from the given cluster name.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f get_cluster_id opennebula name=my-cluster-name
salt.cloud.clouds.opennebula.get_configured_provider()

Return the first configured instance.

salt.cloud.clouds.opennebula.get_datastore_id(kwargs=None, call=None)

Returns a data store's ID from the given data store name.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f get_datastore_id opennebula name=my-datastore-name
salt.cloud.clouds.opennebula.get_dependencies()

Warn if dependencies aren't met.

salt.cloud.clouds.opennebula.get_host_id(kwargs=None, call=None)

Returns a host's ID from the given host name.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f get_host_id opennebula name=my-host-name
salt.cloud.clouds.opennebula.get_image(vm_)

Return the image object to use.

vm_
The VM dictionary for which to obtain an image.
salt.cloud.clouds.opennebula.get_image_id(kwargs=None, call=None)

Returns an image's ID from the given image name.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f get_image_id opennebula name=my-image-name
salt.cloud.clouds.opennebula.get_location(vm_)

Return the VM's location.

vm_
The VM dictionary for which to obtain a location.
salt.cloud.clouds.opennebula.get_secgroup_id(kwargs=None, call=None)

Returns a security group's ID from the given security group name.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f get_secgroup_id opennebula name=my-secgroup-name
salt.cloud.clouds.opennebula.get_template(vm_)

Return the template id for a VM.

Carbon 新版功能.

vm_
The VM dictionary for which to obtain a template.
salt.cloud.clouds.opennebula.get_template_id(kwargs=None, call=None)

Returns a template's ID from the given template name.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f get_template_id opennebula name=my-template-name
salt.cloud.clouds.opennebula.get_vm_id(kwargs=None, call=None)

Returns a virtual machine's ID from the given virtual machine's name.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f get_vm_id opennebula name=my-vm
salt.cloud.clouds.opennebula.get_vn_id(kwargs=None, call=None)

Returns a virtual network's ID from the given virtual network's name.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f get_vn_id opennebula name=my-vn-name
salt.cloud.clouds.opennebula.image_allocate(call=None, kwargs=None)

Allocates a new image in OpenNebula.

2016.3.0 新版功能.

path
The path to a file containing the template of the image to allocate. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
The data containing the template of the image to allocate. Syntax can be the usual attribute=value or XML. Can be used instead of path.
datastore_id
The ID of the data-store to be used for the new image. Can be used instead of datastore_name.
datastore_name
The name of the data-store to be used for the new image. Can be used instead of datastore_id.

命令行接口CLI 范例:

salt-cloud -f image_allocate opennebula path=/path/to/image_file.txt datastore_id=1
salt-cloud -f image_allocate opennebula datastore_name=default \
    data='NAME="Ubuntu 14.04" PATH="/home/one_user/images/ubuntu_desktop.img" \
    DESCRIPTION="Ubuntu 14.04 for development."'
salt.cloud.clouds.opennebula.image_clone(call=None, kwargs=None)

Clones an existing image.

2016.3.0 新版功能.

name
The name of the new image.
image_id
The ID of the image to be cloned. Can be used instead of image_name.
image_name
The name of the image to be cloned. Can be used instead of image_id.

命令行接口CLI 范例:

salt-cloud -f image_clone opennebula name=my-new-image image_id=10
salt-cloud -f image_clone opennebula name=my-new-image image_name=my-image-to-clone
salt.cloud.clouds.opennebula.image_delete(call=None, kwargs=None)

Deletes the given image from OpenNebula. Either a name or an image_id must be supplied.

2016.3.0 新版功能.

name
The name of the image to delete. Can be used instead of image_id.
image_id
The ID of the image to delete. Can be used instead of name.

命令行接口CLI 范例:

salt-cloud -f image_delete opennebula name=my-image
salt-cloud --function image_delete opennebula image_id=100
salt.cloud.clouds.opennebula.image_info(call=None, kwargs=None)

Retrieves information for a given image. Either a name or an image_id must be supplied.

2016.3.0 新版功能.

name
The name of the image for which to gather information. Can be used instead of image_id.
image_id
The ID of the image for which to gather information. Can be used instead of name.

命令行接口CLI 范例:

salt-cloud -f image_info opennebula name=my-image
salt-cloud --function image_info opennebula image_id=5
salt.cloud.clouds.opennebula.image_persistent(call=None, kwargs=None)

Sets the Image as persistent or not persistent.

2016.3.0 新版功能.

name
The name of the image to set. Can be used instead of image_id.
image_id
The ID of the image to set. Can be used instead of name.
persist
A boolean value to set the image as persistent or not. Set to true for persistent, false for non-persistent.

命令行接口CLI 范例:

salt-cloud -f image_persistent opennebula name=my-image persist=True
salt-cloud --function image_persistent opennebula image_id=5 persist=False
salt.cloud.clouds.opennebula.image_snapshot_delete(call=None, kwargs=None)

Deletes a snapshot from the image.

2016.3.0 新版功能.

image_id
The ID of the image from which to delete the snapshot. Can be used instead of image_name.
image_name
The name of the image from which to delete the snapshot. Can be used instead of image_id.
snapshot_id
The ID of the snapshot to delete.

命令行接口CLI 范例:

salt-cloud -f image_snapshot_delete vm_id=106 snapshot_id=45
salt-cloud -f image_snapshot_delete vm_name=my-vm snapshot_id=111
salt.cloud.clouds.opennebula.image_snapshot_flatten(call=None, kwargs=None)

Flattens the snapshot of an image and discards others.

2016.3.0 新版功能.

image_id
The ID of the image. Can be used instead of image_name.
image_name
The name of the image. Can be used instead of image_id.
snapshot_id
The ID of the snapshot to flatten.

命令行接口CLI 范例:

salt-cloud -f image_snapshot_flatten vm_id=106 snapshot_id=45
salt-cloud -f image_snapshot_flatten vm_name=my-vm snapshot_id=45
salt.cloud.clouds.opennebula.image_snapshot_revert(call=None, kwargs=None)

Reverts an image state to a previous snapshot.

2016.3.0 新版功能.

image_id
The ID of the image to revert. Can be used instead of image_name.
image_name
The name of the image to revert. Can be used instead of image_id.
snapshot_id
The ID of the snapshot to which the image will be reverted.

命令行接口CLI 范例:

salt-cloud -f image_snapshot_revert vm_id=106 snapshot_id=45
salt-cloud -f image_snapshot_revert vm_name=my-vm snapshot_id=120
salt.cloud.clouds.opennebula.image_update(call=None, kwargs=None)

Replaces the image template contents.

2016.3.0 新版功能.

image_id
The ID of the image to update. Can be used instead of image_name.
image_name
The name of the image to update. Can be used instead of image_id.
path
The path to a file containing the template of the image. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the template of the image. Syntax can be the usual attribute=value or XML. Can be used instead of path.
update_type
There are two ways to update an image: replace the whole template or merge the new template with the existing one.

命令行接口CLI 范例:

salt-cloud -f image_update opennebula image_id=0 file=/path/to/image_update_file.txt update_type=replace
salt-cloud -f image_update opennebula image_name="Ubuntu 14.04" update_type=merge \
    data='NAME="Ubuntu Dev" PATH="/home/one_user/images/ubuntu_desktop.img" \
    DESCRIPTION = "Ubuntu 14.04 for development."'
salt.cloud.clouds.opennebula.list_clusters(call=None)

Returns a list of clusters in OpenNebula.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f list_clusters opennebula
salt.cloud.clouds.opennebula.list_datastores(call=None)

Returns a list of data stores on OpenNebula.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f list_datastores opennebula
salt.cloud.clouds.opennebula.list_hosts(call=None)

Returns a list of hosts on OpenNebula.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f list_hosts opennebula
salt.cloud.clouds.opennebula.list_nodes(call=None)

Return a list of VMs on OpenNebula.

命令行接口CLI 范例:

salt-cloud -Q
salt-cloud --query
salt-cloud --function list_nodes opennebula
salt-cloud -f list_nodes opennebula
salt.cloud.clouds.opennebula.list_nodes_full(call=None)

Return a list of the VMs on OpenNebula.

命令行接口CLI 范例:

salt-cloud -F
salt-cloud --full-query
salt-cloud --function list_nodes_full opennebula
salt-cloud -f list_nodes_full opennebula
salt.cloud.clouds.opennebula.list_nodes_select(call=None)

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

salt.cloud.clouds.opennebula.list_security_groups(call=None)

Lists all security groups available to the user and the user's groups.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f list_security_groups opennebula
salt.cloud.clouds.opennebula.list_templates(call=None)

Lists all templates available to the user and the user's groups.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f list_templates opennebula
salt.cloud.clouds.opennebula.list_vns(call=None)

Lists all virtual networks available to the user and the user's groups.

2016.3.0 新版功能.

命令行接口CLI 范例:

salt-cloud -f list_vns opennebula
salt.cloud.clouds.opennebula.reboot(name, call=None)

Reboot a VM.

2016.3.0 新版功能.

name
The name of the VM to reboot.

命令行接口CLI 范例:

salt-cloud -a reboot my-vm
salt.cloud.clouds.opennebula.secgroup_allocate(call=None, kwargs=None)

Allocates a new security group in OpenNebula.

2016.3.0 新版功能.

path
The path to a file containing the template of the security group. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
The template data of the security group. Syntax can be the usual attribute=value or XML. Can be used instead of path.

命令行接口CLI 范例:

salt-cloud -f secgroup_allocate opennebula path=/path/to/secgroup_file.txt
salt-cloud -f secgroup_allocate opennebula \
    data="NAME = test RULE = [PROTOCOL = TCP, RULE_TYPE = inbound, \
    RANGE = 1000:2000]"
salt.cloud.clouds.opennebula.secgroup_clone(call=None, kwargs=None)

Clones an existing security group.

2016.3.0 新版功能.

name
The name of the new template.
secgroup_id
The ID of the security group to be cloned. Can be used instead of secgroup_name.
secgroup_name
The name of the security group to be cloned. Can be used instead of secgroup_id.

命令行接口CLI 范例:

salt-cloud -f secgroup_clone opennebula name=my-cloned-secgroup secgroup_id=0
salt-cloud -f secgroup_clone opennebula name=my-cloned-secgroup secgroup_name=my-secgroup
salt.cloud.clouds.opennebula.secgroup_delete(call=None, kwargs=None)

Deletes the given security group from OpenNebula. Either a name or a secgroup_id must be supplied.

2016.3.0 新版功能.

name
The name of the security group to delete. Can be used instead of secgroup_id.
secgroup_id
The ID of the security group to delete. Can be used instead of name.

命令行接口CLI 范例:

salt-cloud -f secgroup_delete opennebula name=my-secgroup
salt-cloud --function secgroup_delete opennebula secgroup_id=100
salt.cloud.clouds.opennebula.secgroup_info(call=None, kwargs=None)

Retrieves information for the given security group. Either a name or a secgroup_id must be supplied.

2016.3.0 新版功能.

name
The name of the security group for which to gather information. Can be used instead of secgroup_id.
secgroup_id
The ID of the security group for which to gather information. Can be used instead of name.

命令行接口CLI 范例:

salt-cloud -f secgroup_info opennebula name=my-secgroup
salt-cloud --function secgroup_info opennebula secgroup_id=5
salt.cloud.clouds.opennebula.secgroup_update(call=None, kwargs=None)

Replaces the security group template contents.

2016.3.0 新版功能.

secgroup_id
The ID of the security group to update. Can be used instead of secgroup_name.
secgroup_name
The name of the security group to update. Can be used instead of secgroup_id.
path
The path to a file containing the template of the security group. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
The template data of the security group. Syntax can be the usual attribute=value or XML. Can be used instead of path.
update_type
There are two ways to update a security group: replace the whole template or merge the new template with the existing one.

命令行接口CLI 范例:

salt-cloud --function secgroup_update opennebula secgroup_id=100 \
    path=/path/to/secgroup_update_file.txt \
    update_type=replace
salt-cloud -f secgroup_update opennebula secgroup_name=my-secgroup update_type=merge \
    data="Name = test RULE = [PROTOCOL = TCP, RULE_TYPE = inbound, RANGE = 1000:2000]"
salt.cloud.clouds.opennebula.show_instance(name, call=None)

Show the details from OpenNebula concerning a named VM.

name
The name of the VM for which to display details.
call
Type of call to use with this function such as function.

命令行接口CLI 范例:

salt-cloud --action show_instance vm_name
salt-cloud -a show_instance vm_name
salt.cloud.clouds.opennebula.start(name, call=None)

Start a VM.

2016.3.0 新版功能.

name
The name of the VM to start.

命令行接口CLI 范例:

salt-cloud -a start my-vm
salt.cloud.clouds.opennebula.stop(name, call=None)

Stop a VM.

2016.3.0 新版功能.

name
The name of the VM to stop.

命令行接口CLI 范例:

salt-cloud -a stop my-vm
salt.cloud.clouds.opennebula.template_allocate(call=None, kwargs=None)

Allocates a new template in OpenNebula.

2016.3.0 新版功能.

path
The path to a file containing the elements of the template to be allocated. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the elements of the template to be allocated. Syntax can be the usual attribute=value or XML. Can be used instead of path.

命令行接口CLI 范例:

salt-cloud -f template_allocate opennebula path=/path/to/template_file.txt
salt-cloud -f template_allocate opennebula \
    data='CPU="1.0" DISK=[IMAGE="Ubuntu-14.04"] GRAPHICS=[LISTEN="0.0.0.0",TYPE="vnc"] \
    MEMORY="1024" NETWORK="yes" NIC=[NETWORK="192net",NETWORK_UNAME="oneadmin"] \
    OS=[ARCH="x86_64"] SUNSTONE_CAPACITY_SELECT="YES" SUNSTONE_NETWORK_SELECT="YES" \
    VCPU="1"'
salt.cloud.clouds.opennebula.template_clone(call=None, kwargs=None)

Clones an existing virtual machine template.

2016.3.0 新版功能.

name
The name of the new template.
template_id
The ID of the template to be cloned. Can be used instead of template_name.
template_name
The name of the template to be cloned. Can be used instead of template_id.

命令行接口CLI 范例:

salt-cloud -f template_clone opennebula name=my-new-template template_id=0
salt-cloud -f template_clone opennebula name=my-new-template template_name=my-template
salt.cloud.clouds.opennebula.template_delete(call=None, kwargs=None)

Deletes the given template from OpenNebula. Either a name or a template_id must be supplied.

2016.3.0 新版功能.

name
The name of the template to delete. Can be used instead of template_id.
template_id
The ID of the template to delete. Can be used instead of name.

命令行接口CLI 范例:

salt-cloud -f template_delete opennebula name=my-template
salt-cloud --function template_delete opennebula template_id=5
salt.cloud.clouds.opennebula.template_instantiate(call=None, kwargs=None)

Instantiates a new virtual machine from a template.

2016.3.0 新版功能.

注解

template_instantiate creates a VM on OpenNebula from a template, but it does not install Salt on the new VM. Use the create function for that functionality: salt-cloud -p opennebula-profile vm-name.

vm_name
Name for the new VM instance.
template_id
The ID of the template from which the VM will be created. Can be used instead of template_name.
template_name
The name of the template from which the VM will be created. Can be used instead of template_id.

命令行接口CLI 范例:

salt-cloud -f template_instantiate opennebula vm_name=my-new-vm template_id=0
salt.cloud.clouds.opennebula.template_update(call=None, kwargs=None)

Replaces the template contents.

2016.3.0 新版功能.

template_id
The ID of the template to update. Can be used instead of template_name.
template_name
The name of the template to update. Can be used instead of template_id.
path
The path to a file containing the elements of the template to be updated. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the elements of the template to be updated. Syntax can be the usual attribute=value or XML. Can be used instead of path.
update_type
There are two ways to update a template: replace the whole template or merge the new template with the existing one.

命令行接口CLI 范例:

salt-cloud --function template_update opennebula template_id=1 update_type=replace \
    path=/path/to/template_update_file.txt
salt-cloud -f template_update opennebula template_name=my-template update_type=merge \
    data='CPU="1.0" DISK=[IMAGE="Ubuntu-14.04"] GRAPHICS=[LISTEN="0.0.0.0",TYPE="vnc"] \
    MEMORY="1024" NETWORK="yes" NIC=[NETWORK="192net",NETWORK_UNAME="oneadmin"] \
    OS=[ARCH="x86_64"] SUNSTONE_CAPACITY_SELECT="YES" SUNSTONE_NETWORK_SELECT="YES" \
    VCPU="1"'
salt.cloud.clouds.opennebula.vm_action(name, kwargs=None, call=None)

Submits an action to be performed on a given virtual machine.

2016.3.0 新版功能.

name
The name of the VM to action.
action
The action to be performed on the VM. Available options include:
  • boot
  • delete
  • delete-recreate
  • hold
  • poweroff
  • poweroff-hard
  • reboot
  • reboot-hard
  • release
  • resched
  • resume
  • shutdown
  • shutdown-hard
  • stop
  • suspend
  • undeploy
  • undeploy-hard
  • unresched

命令行接口CLI 范例:

salt-cloud -a vm_action my-vm action='release'
salt.cloud.clouds.opennebula.vm_allocate(call=None, kwargs=None)

Allocates a new virtual machine in OpenNebula.

2016.3.0 新版功能.

path
The path to a file defining the template of the VM to allocate. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the template definitions of the VM to allocate. Syntax can be the usual attribute=value or XML. Can be used instead of path.
hold
If this parameter is set to True, the VM will be created in the HOLD state. If not set, the VM is created in the PENDING state. Default is False.

命令行接口CLI 范例:

salt-cloud -f vm_allocate path=/path/to/vm_template.txt
salt-cloud --function vm_allocate path=/path/to/vm_template.txt hold=True
salt.cloud.clouds.opennebula.vm_attach(name, kwargs=None, call=None)

Attaches a new disk to the given virtual machine.

2016.3.0 新版功能.

name
The name of the VM for which to attach the new disk.
path
The path to a file containing a single disk vector attribute. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the data needed to attach a single disk vector attribute. Syntax can be the usual attribute=value or XML. Can be used instead of path.

命令行接口CLI 范例:

salt-cloud -a vm_attach my-vm path=/path/to/disk_file.txt
salt-cloud -a vm_attach my-vm data="DISK=[DISK_ID=1]"
salt.cloud.clouds.opennebula.vm_attach_nic(name, kwargs=None, call=None)

Attaches a new network interface to the given virtual machine.

2016.3.0 新版功能.

name
The name of the VM for which to attach the new network interface.
path
The path to a file containing a single NIC vector attribute. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the single NIC vector attribute to attach to the VM. Syntax can be the usual attribute=value or XML. Can be used instead of path.

命令行接口CLI 范例:

salt-cloud -a vm_attach_nic my-vm path=/path/to/nic_file.txt
salt-cloud -a vm_attach_nic my-vm data="NIC=[NETWORK_ID=1]"
salt.cloud.clouds.opennebula.vm_deploy(name, kwargs=None, call=None)

Initiates the instance of the given VM on the target host.

2016.3.0 新版功能.

name
The name of the VM to deploy.
host_id
The ID of the target host where the VM will be deployed. Can be used instead of host_name.
host_name
The name of the target host where the VM will be deployed. Can be used instead of host_id.
capacity_maintained
True to enforce the Host capacity is not over-committed. This parameter is only acknowledged for users in the oneadmin group. Host capacity will be always enforced for regular users.
datastore_id
The ID of the target system data-store where the VM will be deployed. Optional and can be used instead of datastore_name. If neither datastore_id nor datastore_name are set, OpenNebula will choose the data-store.
datastore_name
The name of the target system data-store where the VM will be deployed. Optional, and can be used instead of datastore_id. If neither datastore_id nor datastore_name are set, OpenNebula will choose the data-store.

命令行接口CLI 范例:

salt-cloud -a vm_deploy my-vm host_id=0
salt-cloud -a vm_deploy my-vm host_id=1 capacity_maintained=False
salt-cloud -a vm_deploy my-vm host_name=host01 datastore_id=1
salt-cloud -a vm_deploy my-vm host_name=host01 datastore_name=default
salt.cloud.clouds.opennebula.vm_detach(name, kwargs=None, call=None)

Detaches a disk from a virtual machine.

2016.3.0 新版功能.

name
The name of the VM from which to detach the disk.
disk_id
The ID of the disk to detach.

命令行接口CLI 范例:

salt-cloud -a vm_detach my-vm disk_id=1
salt.cloud.clouds.opennebula.vm_detach_nic(name, kwargs=None, call=None)

Detaches a disk from a virtual machine.

2016.3.0 新版功能.

name
The name of the VM from which to detach the network interface.
nic_id
The ID of the nic to detach.

命令行接口CLI 范例:

salt-cloud -a vm_detach_nic my-vm nic_id=1
salt.cloud.clouds.opennebula.vm_disk_save(name, kwargs=None, call=None)

Sets the disk to be saved in the given image.

2016.3.0 新版功能.

name
The name of the VM containing the disk to save.
disk_id
The ID of the disk to save.
image_name
The name of the new image where the disk will be saved.
image_type
The type for the new image. If not set, then the default ONED Configuration will be used. Other valid types include: OS, CDROM, DATABLOCK, KERNEL, RAMDISK, and CONTEXT.
snapshot_id
The ID of the snapshot to export. If not set, the current image state will be used.

命令行接口CLI 范例:

salt-cloud -a vm_disk_save my-vm disk_id=1 image_name=my-new-image
salt-cloud -a vm_disk_save my-vm disk_id=1 image_name=my-new-image image_type=CONTEXT snapshot_id=10
salt.cloud.clouds.opennebula.vm_disk_snapshot_create(name, kwargs=None, call=None)

Takes a new snapshot of the disk image.

2016.3.0 新版功能.

name
The name of the VM of which to take the snapshot.
disk_id
The ID of the disk to save.
description
The description for the snapshot.

命令行接口CLI 范例:

salt-cloud -a vm_disk_snapshot_create my-vm disk_id=0 description="My Snapshot Description"
salt.cloud.clouds.opennebula.vm_disk_snapshot_delete(name, kwargs=None, call=None)

Deletes a disk snapshot based on the given VM and the disk_id.

2016.3.0 新版功能.

name
The name of the VM containing the snapshot to delete.
disk_id
The ID of the disk to save.
snapshot_id
The ID of the snapshot to be deleted.

命令行接口CLI 范例:

salt-cloud -a vm_disk_snapshot_delete my-vm disk_id=0 snapshot_id=6
salt.cloud.clouds.opennebula.vm_disk_snapshot_revert(name, kwargs=None, call=None)

Reverts a disk state to a previously taken snapshot.

2016.3.0 新版功能.

name
The name of the VM containing the snapshot.
disk_id
The ID of the disk to revert its state.
snapshot_id
The ID of the snapshot to which the snapshot should be reverted.

命令行接口CLI 范例:

salt-cloud -a vm_disk_snapshot_revert my-vm disk_id=0 snapshot_id=6
salt.cloud.clouds.opennebula.vm_info(name, call=None)

Retrieves information for a given virtual machine. A VM name must be supplied.

2016.3.0 新版功能.

name
The name of the VM for which to gather information.

命令行接口CLI 范例:

salt-cloud -a vm_info my-vm
salt.cloud.clouds.opennebula.vm_migrate(name, kwargs=None, call=None)

Migrates the specified virtual machine to the specified target host.

2016.3.0 新版功能.

name
The name of the VM to migrate.
host_id
The ID of the host to which the VM will be migrated. Can be used instead of host_name.
host_name
The name of the host to which the VM will be migrated. Can be used instead of host_id.
live_migration
If set to True, a live-migration will be performed. Default is False.
capacity_maintained
True to enforce the Host capacity is not over-committed. This parameter is only acknowledged for users in the oneadmin group. Host capacity will be always enforced for regular users.
datastore_id
The target system data-store ID where the VM will be migrated. Can be used instead of datastore_name.
datastore_name
The name of the data-store target system where the VM will be migrated. Can be used instead of datastore_id.

命令行接口CLI 范例:

salt-cloud -a vm_migrate my-vm host_id=0 datastore_id=1
salt-cloud -a vm_migrate my-vm host_id=0 datastore_id=1 live_migration=True
salt-cloud -a vm_migrate my-vm host_name=host01 datastore_name=default
salt.cloud.clouds.opennebula.vm_monitoring(name, call=None)

Returns the monitoring records for a given virtual machine. A VM name must be supplied.

The monitoring information returned is a list of VM elements. Each VM element contains the complete dictionary of the VM with the updated information returned by the poll action.

2016.3.0 新版功能.

name
The name of the VM for which to gather monitoring records.

命令行接口CLI 范例:

salt-cloud -a vm_monitoring my-vm
salt.cloud.clouds.opennebula.vm_resize(name, kwargs=None, call=None)

Changes the capacity of the virtual machine.

2016.3.0 新版功能.

name
The name of the VM to resize.
path
The path to a file containing new capacity elements CPU, VCPU, MEMORY. If one of them is not present, or its value is 0, the VM will not be re-sized. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the new capacity elements CPU, VCPU, and MEMORY. If one of them is not present, or its value is 0, the VM will not be re-sized. Can be used instead of path.
capacity_maintained
True to enforce the Host capacity is not over-committed. This parameter is only acknowledged for users in the oneadmin group. Host capacity will be always enforced for regular users.

命令行接口CLI 范例:

salt-cloud -a vm_resize my-vm path=/path/to/capacity_template.txt
salt-cloud -a vm_resize my-vm path=/path/to/capacity_template.txt capacity_maintained=False
salt-cloud -a vm_resize my-vm data="CPU=1 VCPU=1 MEMORY=1024"
salt.cloud.clouds.opennebula.vm_snapshot_create(vm_name, kwargs=None, call=None)

Creates a new virtual machine snapshot from the provided VM.

2016.3.0 新版功能.

vm_name
The name of the VM from which to create the snapshot.
snapshot_name
The name of the snapshot to be created.

命令行接口CLI 范例:

salt-cloud -a vm_snapshot_create my-vm snapshot_name=my-new-snapshot
salt.cloud.clouds.opennebula.vm_snapshot_delete(vm_name, kwargs=None, call=None)

Deletes a virtual machine snapshot from the provided VM.

2016.3.0 新版功能.

vm_name
The name of the VM from which to delete the snapshot.
snapshot_id
The ID of the snapshot to be deleted.

命令行接口CLI 范例:

salt-cloud -a vm_snapshot_delete my-vm snapshot_id=8
salt.cloud.clouds.opennebula.vm_snapshot_revert(vm_name, kwargs=None, call=None)

Reverts a virtual machine to a snapshot

2016.3.0 新版功能.

vm_name
The name of the VM to revert.
snapshot_id
The snapshot ID.

命令行接口CLI 范例:

salt-cloud -a vm_snapshot_revert my-vm snapshot_id=42
salt.cloud.clouds.opennebula.vm_update(name, kwargs=None, call=None)

Replaces the user template contents.

2016.3.0 新版功能.

name
The name of the VM to update.
path
The path to a file containing new user template contents. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the new user template contents. Syntax can be the usual attribute=value or XML. Can be used instead of path.
update_type
There are two ways to update a VM: replace the whole template or merge the new template with the existing one.

命令行接口CLI 范例:

salt-cloud -a vm_update my-vm path=/path/to/user_template_file.txt update_type='replace'
salt.cloud.clouds.opennebula.vn_add_ar(call=None, kwargs=None)

Adds address ranges to a given virtual network.

2016.3.0 新版功能.

vn_id
The ID of the virtual network to add the address range. Can be used instead of vn_name.
vn_name
The name of the virtual network to add the address range. Can be used instead of vn_id.
path
The path to a file containing the template of the address range to add. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the template of the address range to add. Syntax can be the usual attribute=value or XML. Can be used instead of path.

命令行接口CLI 范例:

salt-cloud -f vn_add_ar opennebula vn_id=3 path=/path/to/address_range.txt
salt-cloud -f vn_add_ar opennebula vn_name=my-vn \
    data="AR=[TYPE=IP4, IP=192.168.0.5, SIZE=10]"
salt.cloud.clouds.opennebula.vn_allocate(call=None, kwargs=None)

Allocates a new virtual network in OpenNebula.

2016.3.0 新版功能.

path
The path to a file containing the template of the virtual network to allocate. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the template of the virtual network to allocate. Syntax can be the usual attribute=value or XML. Can be used instead of path.
cluster_id
The ID of the cluster for which to add the new virtual network. Can be used instead of cluster_name. If neither cluster_id nor cluster_name are provided, the virtual network won’t be added to any cluster.
cluster_name
The name of the cluster for which to add the new virtual network. Can be used instead of cluster_id. If neither cluster_name nor cluster_id are provided, the virtual network won't be added to any cluster.

命令行接口CLI 范例:

salt-cloud -f vn_allocate opennebula path=/path/to/vn_file.txt
salt.cloud.clouds.opennebula.vn_delete(call=None, kwargs=None)

Deletes the given virtual network from OpenNebula. Either a name or a vn_id must be supplied.

2016.3.0 新版功能.

name
The name of the virtual network to delete. Can be used instead of vn_id.
vn_id
The ID of the virtual network to delete. Can be used instead of name.

命令行接口CLI 范例:

salt-cloud -f vn_delete opennebula name=my-virtual-network
salt-cloud --function vn_delete opennebula vn_id=3
salt.cloud.clouds.opennebula.vn_free_ar(call=None, kwargs=None)

Frees a reserved address range from a virtual network.

2016.3.0 新版功能.

vn_id
The ID of the virtual network from which to free an address range. Can be used instead of vn_name.
vn_name
The name of the virtual network from which to free an address range. Can be used instead of vn_id.
ar_id
The ID of the address range to free.

命令行接口CLI 范例:

salt-cloud -f vn_free_ar opennebula vn_id=3 ar_id=1
salt-cloud -f vn_free_ar opennebula vn_name=my-vn ar_id=1
salt.cloud.clouds.opennebula.vn_hold(call=None, kwargs=None)

Holds a virtual network lease as used.

2016.3.0 新版功能.

vn_id
The ID of the virtual network from which to hold the lease. Can be used instead of vn_name.
vn_name
The name of the virtual network from which to hold the lease. Can be used instead of vn_id.
path
The path to a file defining the template of the lease to hold. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the template of the lease to hold. Syntax can be the usual attribute=value or XML. Can be used instead of path.

命令行接口CLI 范例:

salt-cloud -f vn_hold opennebula vn_id=3 path=/path/to/vn_hold_file.txt
salt-cloud -f vn_hold opennebula vn_name=my-vn data="LEASES=[IP=192.168.0.5]"
salt.cloud.clouds.opennebula.vn_info(call=None, kwargs=None)

Retrieves information for the virtual network.

2016.3.0 新版功能.

name
The name of the virtual network for which to gather information. Can be used instead of vn_id.
vn_id
The ID of the virtual network for which to gather information. Can be used instead of name.

命令行接口CLI 范例:

salt-cloud -f vn_info opennebula vn_id=3
salt-cloud --function vn_info opennebula name=public
salt.cloud.clouds.opennebula.vn_release(call=None, kwargs=None)

Releases a virtual network lease that was previously on hold.

2016.3.0 新版功能.

vn_id
The ID of the virtual network from which to release the lease. Can be used instead of vn_name.
vn_name
The name of the virtual network from which to release the lease. Can be used instead of vn_id.
path
The path to a file defining the template of the lease to release. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the template defining the lease to release. Syntax can be the usual attribute=value or XML. Can be used instead of path.

命令行接口CLI 范例:

salt-cloud -f vn_release opennebula vn_id=3 path=/path/to/vn_release_file.txt
salt-cloud =f vn_release opennebula vn_name=my-vn data="LEASES=[IP=192.168.0.5]"
salt.cloud.clouds.opennebula.vn_reserve(call=None, kwargs=None)

Reserve network addresses.

2016.3.0 新版功能.

vn_id
The ID of the virtual network from which to reserve addresses. Can be used instead of vn_name.
vn_name
The name of the virtual network from which to reserve addresses. Can be used instead of vn_id.
path
The path to a file defining the template of the address reservation. Syntax within the file can be the usual attribute=value or XML. Can be used instead of data.
data
Contains the template defining the address reservation. Syntax can be the usual attribute=value or XML. Data provided must be wrapped in double quotes. Can be used instead of path.

命令行接口CLI 范例:

salt-cloud -f vn_reserve opennebula vn_id=3 path=/path/to/vn_reserve_file.txt
salt-cloud -f vn_reserve opennebula vn_name=my-vn data="SIZE=10 AR_ID=8 NETWORK_ID=1"