mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 00:55:19 +00:00
216d9fdc9a
* 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) Updates0edd532
,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
243 lines
6.8 KiB
ReStructuredText
243 lines
6.8 KiB
ReStructuredText
============================
|
|
Getting Started With Proxmox
|
|
============================
|
|
|
|
Proxmox Virtual Environment is a complete server virtualization management solution,
|
|
based on LXC and full virtualization with KVM.
|
|
Further information can be found at:
|
|
|
|
http://www.proxmox.org/
|
|
|
|
Dependencies
|
|
============
|
|
* IPy >= 0.81
|
|
* requests >= 2.2.1
|
|
|
|
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.
|
|
|
|
* Set up the cloud configuration at
|
|
``/etc/salt/cloud.providers`` or
|
|
``/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
|
|
|
|
# Set the access URL for your PROXMOX host
|
|
#
|
|
url: your.proxmox.host
|
|
driver: proxmox
|
|
|
|
.. note::
|
|
.. versionchanged:: 2015.8.0
|
|
|
|
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.
|
|
|
|
Access Credentials
|
|
==================
|
|
The ``user``, ``password``, and ``url`` will be provided to you by your cloud
|
|
host. These are all required in order for the PROXMOX driver to work.
|
|
|
|
|
|
Cloud Profiles
|
|
==============
|
|
Set up an initial profile at ``/etc/salt/cloud.profiles`` or
|
|
``/etc/salt/cloud.profiles.d/proxmox.conf``:
|
|
|
|
* Configure a profile to be used:
|
|
|
|
.. code-block:: yaml
|
|
|
|
proxmox-ubuntu:
|
|
provider: my-proxmox-config
|
|
image: local:vztmpl/ubuntu-12.04-standard_12.04-1_amd64.tar.gz
|
|
technology: openvz
|
|
|
|
# host needs to be set to the configured name of the proxmox host
|
|
# and not the ip address or FQDN of the server
|
|
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
|
|
|
|
This will create an instance named ``myubuntu`` on the cloud host. The
|
|
minion that is installed on this instance will have a ``hostname`` of ``myubuntu``.
|
|
If the command was executed on the salt-master, its Salt key will automatically
|
|
be signed on the master.
|
|
|
|
Once the instance has been created with salt-minion installed, connectivity to
|
|
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:
|
|
driver: proxmox
|
|
user: saltcloud@pve
|
|
password: xyzzy
|
|
url: your.proxmox.host
|
|
|
|
Optional Settings
|
|
=================
|
|
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,
|
|
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
|
|
|
|
QEMU
|
|
====
|
|
|
|
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.
|
|
You can also clone a qemu template which already is on your Proxmox server.
|
|
|
|
QEMU profile file (for a new VM):
|
|
|
|
.. code-block:: yaml
|
|
|
|
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
|
|
|
|
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
|
|
|
|
|
|
QEMU profile file (for a clone):
|
|
|
|
.. code-block:: yaml
|
|
|
|
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: ''
|
|
|
|
More information can be found on Proxmox API under the 'POST' method of /nodes/{node}/qemu/{vmid}/clone
|
|
|
|
.. note::
|
|
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 ...
|