Puppet module to install Proxmox 3
Go to file
2015-01-23 18:12:10 +01:00
lib/facter New class: proxmox::hypervisor::config 2015-01-08 23:50:53 +01:00
manifests * (#3) Add a new class and subclass: proxmox::vm::openvz to manage OpenVZ CT 2015-01-23 18:12:10 +01:00
spec first commit 2015-01-06 08:55:34 +01:00
templates * (#3) Add a new class and subclass: proxmox::vm::openvz to manage OpenVZ CT 2015-01-23 18:12:10 +01:00
tests * Add examples in README.md file. 2015-01-17 19:05:25 +01:00
.gitignore First try to build the module for the puppet forgelabs. 2015-01-07 13:37:43 +01:00
CHANGELOG.md * (#3) Add a new class and subclass: proxmox::vm::openvz to manage OpenVZ CT 2015-01-23 18:12:10 +01:00
Gemfile first commit 2015-01-06 08:55:34 +01:00
metadata.json * Correct module's dependencies. 2015-01-21 16:50:59 +01:00
Rakefile first commit 2015-01-06 08:55:34 +01:00
README.md Add a table of contents in the README.md file. 2015-01-19 15:20:17 +01:00

proxmox

Table of Contents

  1. Overview
  2. Module Description
  3. Setup
  4. Usage
  5. Reference
  6. Limitations
  7. Development
  8. License

Overview

The proxmox module provide a simple way to manage Proxmox hypervisor and (soon) it's virtual machines (KVM/OpenVZ) with Puppet.

Module Description

The proxmox module automates installing Proxmox on Debian systems.

Setup

What Proxmox affects:

  • Package/service/configuration files for Proxmox
  • A new sources.list file for Proxmox
  • System repository
  • The static table lookup for hostnames hosts
  • Users and group permissions for WebGUI.
  • WebGUI's service (pveproxy)
  • Kernel modules loaded at the boot time

Beginning with Proxmox

To begin using proxmox module with default parameters, declare the hypervisor's class with include proxmox::hypervisor.

Usage

Hypervisor

include proxmox::hypervisor

If you will use only KVM you can have a most recent kernel with:

class { 'proxmox::hypervisor':
  kvm_only => true,
}

Note: The module will automatically reboot the system on the PVE Kernel. You will need to start again the puppet agent.

VM

...

Reference

Classes

  • proxmox: Main class, do nothing right now.

  • proxmox::hypervisor: Install the Proxmox hypervisor on the system.

Defined types

  • proxmox::hypervisor::group: Manage groups for Proxmox WebGUI and set permissions.
proxmox::hypervisor::group { 'sysadmin':
  role  => "Administrator",
  users => [ 'user1@pam', 'toto@pve' ],
}
  • proxmox::hypervisor::user: Manage user for Proxmox WebGUI.
proxmox::hypervisor::user { 'marvin':
  group => 'sysadmin',
}

Mainly used by the proxmox::hypervisor::group defined type to create the group, permissions and also create/add the users to a group. Because to add a user to a group via this defined type, the group should already exist.

Parameters

proxmox::hypervisor

  • ve_pkg_ensure: What to set the Virtual Environnment package to. Can be 'present', 'absent' or 'version'. Defaults to 'present'.
  • ve_pkg_name: The list of VirtualEnvironnment packages. Can be an array [ 'proxmox-ve-2.6.32', 'ksm-control-daemon', 'vzprocps', 'open-iscsi', 'bootlogd', 'pve-firmware' ].
  • kvm_only: If set to 'true', Puppet will install a newer kernel compatible only with KVM. Accepts 'true' or 'false'. Defaults to 'false'.
  • kernel_kvm_pkg_name: The list of packages to install the newer kernel. Can be an array [ 'pve-kernel-3.10.0-5-pve', '...' ].
  • kernel_pkg_name: The list of packages to install a kernel compatible with both KVM and OpenVZ. Can be an array [ 'pve-kernel-2.6.32-34-pve', '...' ].
  • rec_pkg_name: The list of recommended and usefull packages for Proxmox. Can be an array [ 'ntp', 'ssh', 'lvm2', 'bridge-utils' ].
  • old_pkg_ensure: What to set useless packages (non recommended, previous kernel, ...). Can be 'present' or 'absent'. Defaults to 'absent'.
  • old_pkg_name: The list of useless packages. Can be an array [ 'acpid', 'linux-image-amd64', 'linux-base', 'linux-image-3.2.0-4-amd64' ].
  • pve_enterprise_repo_ensure: Choose to keep the PVE enterprise repository. Can be 'present' or 'absent'. Defaults to 'absent'.
  • pveproxy_default_path: Path of the configuration file read by the PveProxy service. Defaults to '/etc/default/pveproxy'.
  • pveproxy_default_content: Template file use to generate the previous configuration file. Default to 'proxmox/hypervisor/pveproxy_default.erb'.
  • pveproxy_allow: Can be ip addresses, range or network; separated by a comma (example: '192.168.0.0/24,10.10.0.1-10.10.0.5'). Defaults to '127.0.0.1'.
  • pveproxy_deny: Unauthorized IP addresses. Can be 'all' or ip addresses, range or network; separated by a comma. Defaults to 'all'.
  • pveproxy_policy: The policy access. Can be 'allow' or 'deny'. Defaults to 'deny'.
  • pveproxy_service_name: WebGUI's service name (replace Apache2 since v3.0). Defaults to 'pveproxy'.
  • pveproxy_service_manage: If set to 'true', Puppet will manage the WebGUI's service. Can be 'true' or 'false'. Defaults to 'true'.
  • pveproxy_service_enabled: If set to 'true', Puppet will ensure the WebGUI's service is running. Can be 'true' or 'false'. Defaults to 'true'.
  • pve_modules_list: The list of additionnal modules to load at boot time.
  • pve_modules_file_path: The configuration file that will contain the modules list. Defaults to '/etc/modules-load.d/proxmox.conf'.
  • pve_modules_file_content: Template file to use to generate the previous configuration file. Defaults to 'proxmox/hypervisor/proxmox_modules.conf.erb'.

Limitations

This module will work only on Debian 7.x versions.

Development

Free to send contributions, fork it, ...

License

WTFPL (http://wtfpl.org/)