2015-02-13 16:14:41 +00:00
============================
2014-03-22 16:44:59 +00:00
Getting Started With Proxmox
2015-02-13 16:14:41 +00:00
============================
2014-03-22 16:44:59 +00:00
2014-12-11 15:51:43 +00:00
Proxmox Virtual Environment is a complete server virtualization management solution,
[develop] Merge forward from 2016.3 to develop (#32494)
* fix sorting by latest version when called with an attribute
* remove reference to master_alive_check
* Fixes saltstack/salt#28262
* Resolve memory leak in authentication
* outputter virt_list does not exist anymore
* Update proxmox documentation
* Fix documentation on boto_asg and boto_elb modules and states
* modules.win_timezone: don't list all zones in debug log
* Correcty index glusterfs bricks
Fixes issue #32311
* Cleaner deprecation process with decorators
* Add deprecation decorator scaffold
* Capture type error and unhandled exceptions while function calls
* Aware of the current and future version of deprecation
* Implement initially is_deprecated decorator
* Add an alias for the capitalization
* Fix capitalization easier way
* Remove an extra line
* Add successor name to the deprecation decorator.
* Granulate logging and error messages.
* Implement function swapper
* Raise later the caught exception
* Clarify exception message
* Save function original name
* Remove an extra line
* Hide an alternative hidden function name in the error message, preserving the error itself
* Rename variable as private
* Add a method to detect if a function is using its previous version
* Message to the log and/or raise an exception accordingly to the status of used function
* Log an error along with the exception
* Add internal method documentation
* Add documentation and usage process for decorator "is_deprecated"
* Add documentation and process usage for the decorator "with_deprecated"
* Hide private method name
* Fix PEP8, re-word the error message
* Deprecate basic uptime function
* Add initial decorator unit test
* Rename old/new functions, mock versions
* Move frequent data to the test setup
* Add logging on EOL exception
* Rename and document high to low version test on is_deprecated
* Implement a test on low to high version of is_deprecated decorator
* Add a correction to the test description
* Remove a dead code
* Implement a test for high to low version on is_deprecated, using with_successor param
* Correct typso adn mistaeks
* Implement high to low version with successor param on is_deprecated
* Setup a virtual name for the module
* Implement test for with_deprecated should raise an exception if same deprecated function not found
* Implement test for with_deprecated an old function is picked up if configured
* Correct test description purpose
* Implement test with_deprecated when no deprecation is requested
* Add logging test to the configured deprecation request
* Add logging testing when deprecated version wasn't requested
* Implement test EOL for with_deprecated decorator
* Correct test explanation
* Rename the test
* Implement with_deprecated no EOL, deprecated other function name
* Implement with_deprecated, deprecated other function name, EOL reached
* Add test description for the with_deprecated + with_name + EOL
* Fix confusing test names
* Add logging test to the is_deprecated decorator when function as not found.
* Add more test point to each test, remove empty lines
* Bugfix: at certain conditions a wrong alias name is reported to the log
* Fix a typo in a comment
* Add test for the logging
* Disable a pylint: None will _never_ be raised
* Fix test for the deprecated "status.uptime" version
* Bugfix: Do not yank raised exceptions
* Remove unnecessary decorator
* Add test for the new uptime
* Add test for the new uptime fails when /proc/uptime does not exists
* Rename old test case
* Skip test for the UTC time, unless freeze time is used.
* Fix pylint
* Fix documentation
* Bugfix: proxy-pass the docstring of the decorated function
* Lint fix
* Fixes saltstack/salt#28262 for 2015.5 branch
* Update master config docs
* Improve git_pillar documentation/logging
* Add note about different behavior of top file in git_pillar
* Make log entry for a missing pillar SLS file more accurate for git_pillar
* FreeBSD supports packages in format java/openjdk7 so the prior commit broke that functionality. Check freebsd/pkg#1409 for more info.
* FreeBSD supports packages in format java/openjdk7 so the prior commit broke that functionality. Check freebsd/pkg#1409 for more info.
* Update glusterfs_test to be inline with #32312
* Fix salt-cloud paralell provisioning
Closes #31632
* Ignore Raspbian in service.py __virtual__ (#32421)
* Ignore Raspbian in service.py __virtual__
This prevents more than one execution module from trying to load as the
service virtual module.
Refs: #32413
* pack __salt__ before loading provider overrides
We can (and should) pack here since we're just packing a reference to the
object. __salt__ needs to be available when we're loading our provider
overrides
* Fix broken __salt__ dict in provider override
Using ret.items() here sets ``__salt__`` to its items (tuple containing
function name and reference), breaking usage of ``__salt__`` inside
overridden functions.
* Merge #32293 with test fixes (#32418)
* Fix issue #11497
* Remove check for working directory presence in tests
* Fix Domainname introspection
Default value needs to be extracted from the container itself,
because dockerd set Domainname value when network_mode=host.
* Add pgjsonb_queue to queue doc index
* Pylint fixes
* Pass parser options into batch mode
Resolves #31738
* Changed the target file in file.symlink test (#32443)
* Argument name in docs should match actual arg name (#32445)
Fixes #31851
* tests.integration: bypass MacOS TMPDIR, gettempdir (#32447)
Updates 0edd532, 8f558a5.
When logging in as root over `ssh root@host`, `$TMPDIR` and
`tempfile.gettempdir()` are both set to a variation of:
```
/private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/
```
When logging in as root over `sudo -i`, `$TMPDIR` is unset and
`tempfile.gettempdir()` is set to `/tmp`.
My guess is that the second case is an unintended or uncorrected omision
by Apple as they have introduced the longer, randomized temp path in a
recent version of MacOS.
* Issue #28706: Fix state user.present behavior. (#32448)
- As mentionned in issue #28706, state user.present no longer remove
user from groups if the keyword 'groups' with empty value '[]' is not
explicitly set, salt will assume current groups are still wanted.
* tests.integration: fix 4230c8a
* Move the tables of virtual modules to individual documentation pages
* Add new doc pages to toctree
* Add external ref to windows package manager docs
* Improve docstrings
* Add documentation on virtual module provider overrides to the module docs
* Clarify the scope of the provider param in states.
* Add link to provider override docs to all package providers
* Add link to provider override docs to all service providers
* Add link to provider override docs to all user providers
* dd link to provider override docs to all shadow providers
* Add link to provider override docs to all group providers
* Backport 31164 and 31364 (#32474)
* Don't send REQ while another one is waiting for response.
The message has to be removed from the queue the only *after* it's
already processed to don't confuse send() functionality that expects
empty queue means: there's no active sendings.
* Fixed zeromq ReqMessageClient destroy
* Add link to provider override docs to opkg.py
This is a companion to https://github.com/saltstack/salt/pull/32458, but
this module was not added until the 2016.3 branch, so the documentation
is being updated there for this module.
* Add documentation for some master/minion configs (#32454)
Refs #32400
Adds docs for:
- cli_summary
- event_return_queue
- event_return_whitelist
- event_return_blacklist
- file_recv_max_size
- fileserver_followsymlinks
- fileserver_ignoresymlinks
- fileserver_limit_traversal
* Automatically detect correct MySQL password column for 5.7 and fix setting passwords (#32440)
* Automatically detect MySQL password column
* Fix changing password in MySQL 5.7
* Fix lint test
* Fix unit tests (?)
They will still fail if "authentication_string" is legitimately the right column name, but I don't know what to do about that.
* Additional unit test fix
* Only unsub if we have a jid
Closes #32479
2016-04-11 23:07:15 +00:00
based on LXC and full virtualization with KVM.
2014-03-22 16:44:59 +00:00
Further information can be found at:
http://www.proxmox.org/
2015-02-13 16:14:41 +00:00
Dependencies
============
* IPy >= 0.81
* requests >= 2.2.1
2014-03-22 16:44:59 +00:00
Please note:
This module allows you to create both OpenVZ and KVM but installing Salt on it will only be
done when the VM is an OpenVZ container rather than a KVM virtual machine.
2014-12-11 15:51:43 +00:00
* Set up the cloud configuration at
`` /etc/salt/cloud.providers `` or
2014-03-22 16:44:59 +00:00
`` /etc/salt/cloud.providers.d/proxmox.conf `` :
.. code-block :: yaml
my-proxmox-config:
# Set up the location of the salt master
#
minion:
master: saltmaster.example.com
# Set the PROXMOX access credentials (see below)
#
user: myuser@pve
password: badpass
2015-08-10 15:20:26 +00:00
# Set the access URL for your PROXMOX host
2014-03-22 16:44:59 +00:00
#
url: your.proxmox.host
2015-06-17 22:41:03 +00:00
driver: proxmox
2014-03-22 16:44:59 +00:00
2015-08-10 15:20:26 +00:00
.. note ::
.. versionchanged :: 2015.8.0
2014-03-22 16:44:59 +00:00
2015-08-10 15:20:26 +00:00
The `` provider `` parameter in cloud provider definitions was renamed to `` driver `` . This
change was made to avoid confusion with the `` provider `` parameter that is used in cloud profile
definitions. Cloud provider definitions now use `` driver `` to refer to the Salt cloud module that
provides the underlying functionality to connect to a cloud host, while cloud profiles continue
to use `` provider `` to refer to provider configurations that you define.
2014-03-22 16:44:59 +00:00
Access Credentials
==================
2014-12-11 15:51:43 +00:00
The `` user `` , `` password `` , and `` url `` will be provided to you by your cloud
2015-08-10 15:20:26 +00:00
host. These are all required in order for the PROXMOX driver to work.
2014-03-22 16:44:59 +00:00
Cloud Profiles
==============
2014-12-11 15:51:43 +00:00
Set up an initial profile at `` /etc/salt/cloud.profiles `` or
2014-03-22 16:44:59 +00:00
`` /etc/salt/cloud.profiles.d/proxmox.conf `` :
* Configure a profile to be used:
.. code-block :: yaml
proxmox-ubuntu:
2015-08-10 15:20:26 +00:00
provider: my-proxmox-config
2014-03-22 16:44:59 +00:00
image: local:vztmpl/ubuntu-12.04-standard_12.04-1_amd64.tar.gz
technology: openvz
2015-10-20 19:17:47 +00:00
# host needs to be set to the configured name of the proxmox host
# and not the ip address or FQDN of the server
2014-03-22 16:44:59 +00:00
host: myvmhost
ip_address: 192.168.100.155
password: topsecret
The profile can be realized now with a salt command:
.. code-block :: bash
# salt-cloud -p proxmox-ubuntu myubuntu
2015-08-10 15:20:26 +00:00
This will create an instance named `` myubuntu `` on the cloud host. The
2014-03-22 16:44:59 +00:00
minion that is installed on this instance will have a `` hostname `` of `` myubuntu `` .
2014-12-11 15:51:43 +00:00
If the command was executed on the salt-master, its Salt key will automatically
2014-03-22 16:44:59 +00:00
be signed on the master.
2014-12-11 15:51:43 +00:00
Once the instance has been created with salt-minion installed, connectivity to
2014-03-22 16:44:59 +00:00
it can be verified with Salt:
.. code-block :: bash
# salt myubuntu test.ping
Required Settings
=================
The following settings are always required for PROXMOX:
* Using the new cloud configuration format:
.. code-block :: yaml
my-proxmox-config:
2015-06-17 22:41:03 +00:00
driver: proxmox
2014-03-22 16:44:59 +00:00
user: saltcloud@pve
password: xyzzy
url: your.proxmox.host
Optional Settings
=================
2014-12-11 15:51:43 +00:00
Unlike other cloud providers in Salt Cloud, Proxmox does not utilize a
`` size `` setting. This is because Proxmox allows the end-user to specify a
more detailed configuration for their instances, than is allowed by many other
cloud providers. The following options are available to be used in a profile,
2014-03-22 16:44:59 +00:00
with their default settings listed.
.. code-block :: yaml
# Description of the instance.
desc: <instance_name>
# How many CPU cores, and how fast they are (in MHz)
cpus: 1
cpuunits: 1000
# How many megabytes of RAM
memory: 256
# How much swap space in MB
swap: 256
# Whether to auto boot the vm after the host reboots
onboot: 1
# Size of the instance disk (in GiB)
disk: 10
# Host to create this vm on
host: myvmhost
# Nameservers. Defaults to host
nameserver: 8.8.8.8 8.8.4.4
# Username and password
ssh_username: root
password: <value from PROXMOX.password>
# The name of the image, from `` salt-cloud --list-images proxmox ``
image: local:vztmpl/ubuntu-12.04-standard_12.04-1_amd64.tar.gz
2015-10-21 09:45:28 +00:00
QEMU
====
2015-10-28 22:27:49 +00:00
Some functionnalities works differently if you use 'qemu' as technology. In order to create a new VM with qemu, you need to specificy some more information.
2015-10-21 09:45:28 +00:00
You can also clone a qemu template which already is on your Proxmox server.
QEMU profile file (for a new VM):
2016-01-20 04:57:45 +00:00
.. code-block :: yaml
2015-10-21 09:45:28 +00:00
proxmox-win7:
# Image of the new VM
image: image.iso # You can get all your available images using 'salt-cloud --list-images provider_name' (Ex: 'salt-cloud --list-images my-proxmox-config')
# Technology used to create the VM ('qemu' or 'openvz')
technology: qemu
# Proxmox node name
host: node_name
# Proxmox password
password: your_password
# Workaround https://github.com/saltstack/salt/issues/27821
size: ''
# RAM size (MB)
memory: 2048
# OS Type enum (other / wxp / w2k / w2k3 / w2k8 / wvista / win7 / win8 / l24 / l26 / solaris)
ostype: win7
# Hard disk location
sata0: <location>:<size> , format=<qcow2/vmdk/raw>, size=<size>GB #Example: local:120,format=qcow2,size=120GB
#CD/DVD Drive
ide2: <content_location>,media=cdrom #Example: local:iso/name.iso,media=cdrom
# Network Device
net0:<model> ,bridge=<bridge> #Example: e1000,bridge=vmbr0
# Enable QEMU Guest Agent (0 / 1)
agent: 1
# VM name
name: Test
2015-10-28 22:27:49 +00:00
More information about these parameters can be found on Proxmox API (http://pve.proxmox.com/pve2-api-doc/) under the 'POST' method of nodes/{node}/qemu
2015-10-21 09:45:28 +00:00
QEMU profile file (for a clone):
2016-01-20 04:57:45 +00:00
.. code-block :: yaml
2015-10-21 09:45:28 +00:00
proxmox-win7:
# Enable Clone
clone: 1
# New VM description
clone_description: 'description'
# New VM name
clone_name: 'name'
# New VM format (qcow2 / raw / vmdk)
clone_format: qcow2
# Full clone (1) or Link clone (0)
clone_full: 0
# VMID of Template to clone
clone_from: ID
# Technology used to create the VM ('qemu' or 'openvz')
technology: qemu
# Proxmox node name
host: node_name
# Proxmox password
password: your_password
# Workaround https://github.com/saltstack/salt/issues/27821
size: ''
2015-10-28 22:27:49 +00:00
More information can be found on Proxmox API under the 'POST' method of /nodes/{node}/qemu/{vmid}/clone
2015-10-21 09:45:28 +00:00
.. note ::
2015-10-28 22:27:49 +00:00
The Proxmox API offers a lot more options and parameters, which are not yet supported by this salt-cloud 'overlay'. Feel free to add your contribution by forking the github repository and modifying the following file: salt/salt/cloud/clouds/proxmox.py
An easy way to support more parameters for VM creation would be to add the names of the optional parameters in the 'create_nodes(vm_)' function, under the 'qemu' technology. But it requires you to dig into the code ...