%PDF- %PDF-
| Direktori : /proc/self/root/proc/self/root/usr/lib/python2.7/site-packages/salt/states/ |
| Current File : //proc/self/root/proc/self/root/usr/lib/python2.7/site-packages/salt/states/esxvm.pyc |
�
���^c @@ sH d Z d d l m Z m Z m Z d d l Z d d l Z d d l Z d d l j
j Z d d l m
Z
y d d l Z e Z Wn e k
r� e Z n Xy d d l m Z e Z Wn e k
r� e Z n Xe j e � Z d � Z d d d d e e e d � Z d � Z d d d e d � Z d d d d e d
� Z e d � Z d S( u�
Salt state to create, update VMware ESXi Virtual Machines.
Dependencies
============
- pyVmomi
- jsonschema
States
======
vm_configured
-------------
Enforces correct virtual machine configuration. Creates, updates and registers
a virtual machine.
This state identifies the action which should be taken for the virtual machine
and applies that action via the create, update, register state functions.
Supported proxies: esxvm
Example:
1. Get the virtual machine ``my_vm`` status with an ``esxvm`` proxy:
Proxy minion configuration for ``esxvm`` proxy:
.. code-block:: yaml
proxy:
proxytype: esxvm
datacenter: my_dc
vcenter: vcenter.fake.com
mechanism: sspi
domain: fake.com
principal: host
State configuration:
.. code-block:: yaml
myvm_state:
esxvm.vm_configured:
- vm_name: my_vm
- cpu: {{ {'count': 4, 'cores_per_socket': 2} }}
- memory: {{ {'size': 16384, 'unit': 'MB'} }}
- image: rhel7_64Guest
- version: vmx-12
- interfaces: {{ [{
'adapter': 'Network adapter 1',
'name': 'my_pg1',
'switch_type': 'distributed',
'adapter_type': 'vmxnet3',
'mac': '00:50:56:00:01:02,
'connectable': { 'start_connected': true,
'allow_guest_control': true,
'connected': true}},
{
'adapter': 'Network adapter 2',
'name': 'my_pg2',
'switch_type': 'distributed',
'adapter_type': 'vmxnet3',
'mac': '00:50:56:00:01:03',
'connectable': { 'start_connected': true,
'allow_guest_control': true,
'connected': true}}
] }}
- disks: {{ [{
'adapter': 'Hard disk 1',
'unit': 'MB',
'size': 51200,
'filename': 'my_vm/sda.vmdk',
'datastore': 'my_datastore',
'address': '0:0',
'thin_provision': true,
'eagerly_scrub': false,
'controller': 'SCSI controller 0'},
{
'adapter': 'Hard disk 2',
'unit': 'MB',
'size': 10240,
'filename': 'my_vm/sdb.vmdk',
'datastore': 'my_datastore',
'address': '0:1',
'thin_provision': true,
'eagerly_scrub': false,
'controller': 'SCSI controller 0'}
] }}
- scsi_devices: {{ [{
'adapter': 'SCSI controller 0',
'type': 'paravirtual',
'bus_sharing': 'no_sharing',
'bus_number': 0}
] }}
- serial_ports: {{ [{
'adapter': 'Serial port 1',
'type': 'network',
'yield': false,
'backing': {
'uri': 'my_uri',
'direction': 'server',
'filename': 'my_file'},
'connectable': {
'start_connected': true,
'allow_guest_control': true,
'connected': true}}
] }}
- datacenter: {{ 'my_dc' }}
- datastore: 'my_datastore'
- placement: {{ {'cluster': 'my_cluster'} }}
- cd_dvd_drives: {{ [] }}
- advanced_configs: {{ {'my_param': '1'} }}
- template: false
- tools: false
- power_on: false
- deploy: false
vm_updated
----------
Updates a virtual machine to a given configuration.
vm_created
----------
Creates a virtual machine with a given configuration.
vm_registered
-------------
Registers a virtual machine with it's configuration file path.
Dependencies
============
pyVmomi
-------
PyVmomi can be installed via pip:
.. code-block:: bash
pip install pyVmomi
.. note::
Version 6.0 of pyVmomi has some problems with SSL error handling on
certain versions of Python. If using version 6.0 of pyVmomi, Python 2.6,
Python 2.7.9, or newer must be present. This is due to an upstream
dependency in pyVmomi 6.0 that is not supported in Python versions
2.7 to 2.7.8. If the version of Python is not in the supported range,
you will need to install an earlier version of pyVmomi.
See `Issue #29537`_ for more information.
.. _Issue #29537: https://github.com/saltstack/salt/issues/29537
Based on the note above, to install an earlier version of pyVmomi than the
version currently listed in PyPi, run the following:
.. code-block:: bash
pip install pyVmomi==6.0.0.2016.4
The 5.5.0.2014.1.1 is a known stable version that this original ESXi State
Module was developed against. To be able to connect through SSPI you must
use pyvmomi 6.0.0.2016.4 or above. The ESXVM State Module was tested with
this version.
About
-----
This state module was written to be used in conjunction with Salt's
:mod:`ESXi Proxy Minion <salt.proxy.esxi>` For a tutorial on how to use Salt's
ESXi Proxy Minion, please refer to the
:ref:`ESXi Proxy Minion Tutorial <tutorial-esxi-proxy>` for
configuration examples, dependency installation instructions, how to run remote
execution functions against ESXi hosts via a Salt Proxy Minion, and a larger state
example.
i ( t absolute_importt print_functiont unicode_literalsN( t ESXVirtualMachineConfigSchema( t VmomiSupportc C@ s[ t s t d f St s t d f Sd t j k rW t j d k rW t j d k rW t d f St S(
Nu/ State module did not load: jsonschema not foundu, State module did not load: pyVmomi not foundu vim25/6.0i i i ua State module did not load: Incompatible versions of Python and pyVmomi present. See Issue #29537.( i i ( i i i ( t HAS_JSONSCHEMAt Falset HAS_PYVMOMIR t
versionMapt syst version_infot True( ( ( s5 /usr/lib/python2.7/site-packages/salt/states/esxvm.pyt __virtual__� s
c C@ s� i | d 6d'