How to Install Proxmox VE 4 on Debian 8 (Jessie)

Proxmox Virtual Environment or short Proxmox VE is an Open Source server virtualization software based on Debian Linux with an RHEL kernel, modified to allow you to create and deploy new virtual machines for private servers and containers. Proxmox provides two types of virtualization: containers with LXC and full virtualization with KVM. Proxmox gives you an easy way to install and configure virtual machines from a web browser (Java plugin Iced tea required), it offers nice command line tools and a REST API for the third-party applications. If you want to install on a server that you have physical access to, then download the Proxmox iso from the official website. In this tutorial, I will show you the installation of Proxmox on a server that runs a minimal Debian 8 installation, e.g. in a datacenter.

Proxmox features:

  • Support for local storage with LVM groups, directories, and ZFS.
  • Support for network storage with iSCSI, Fiber Channel, NFS, GlusterFS, CEPH, and DRBD.
  • Cluster support to build High Availability clusters.
  • Live migration, virtual machines can be moved from one host to another host without downtime.
  • Proxmox provides pre-packaged server software appliances which can be downloaded via the GUI.

In this tutorial, I will guide you trough the Proxmox installation on Debian Jessie.

Prerequisites:

  • Debian Jessie 64 bit.
  • Root privileges.

Step 1 - Configure FQDN

The first step that we will start with is to configure the server FQDN (Fully Qualified Domain Name).

Check the server hostname with the command below:

hostname

Result:

aumu

So my server hostname is "aumu".

Edit the "/etc/hosts" file with vim and add your server "IP + hostname.domain-name.com + hostname".

vim /etc/hosts

I'll add configuration for the host below:

192.168.1.111    aumu.myproxmox.co        aumu

Replace the hostname and FQDN with the one that you like to use for your server, then save the configuration and exit.

Reboot the server and check the hostname and the FQDN:

reboot

Login again and check hostname and FQDN:

hostname

The result should be:

aumu

hostname -f

The result should be:

aumu.myproxmox.co

Hostname and FQDN

Step 2 - Add the Proxmox Repository

Now add the Proxmox repository to "sources.list.d" directory and add the Proxmox key to authenticate the packages:

echo "deb http://download.proxmox.com/debian jessie pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -

Now update the Debian repository and run a dis-upgrade on the system, then reboot the machine:

apt-get update && apt-get dist-upgrade

reboot

Step 3 - Install Proxmox

Install Proxmox VE and some other required packages with the apt command below:

apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv

Note:

Postfix configuration during the installation:

  • Type of mail configuration: Internal Site.
  • System mail name: type the domain name.

Reboot the server:

reboot

Step 4 - Connect to the Proxmox web interface and configure the network

After the server has been restarted, we now can access the Debian Proxmox from a browser. Type in the server IP with https and port 8006 in the URL bar. In my case:

https://192.168.1.111:8006/

Proxmox Login page

Login to the Proxmox admin with username root and your password. After gging into the web interface, we have to configure the networking for Proxmox.

I've one network interface "eth0" for outgoing connections with the IP address '192.168.1.111' and my gateway is '192.168.1.254'. In this step, we want to create a new network interface (bridge) 'vmbr0', then we enable routing on this network interface and enable proxy arp on the outgoing interface 'eth0'. Vmbr0 is the interface for the VM's (Virtual Machines) in Proxmox. This is a good option if we only have one public IP and we want the to hide the VM's behind the host IP.

Go to the '/etc/network' directory and edit interfaces file with vim.

cd /etc/network/
vim interfaces

Below my eth0 configuration with the option enable proxy arp.

auto eth0
iface eth0 inet static
        address  192.168.1.111
        netmask  255.255.255.0
        gateway  192.168.1.254
        post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp

Next, configure a new bridge vmbr0 and enable routing on this interface by adding configuration below:

auto vmbr0
iface vmbr0 inet static
        address  192.168.2.9
        netmask  255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '192.168.2.0/24' -o eth0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.2/24' -o eth0 -j MASQUERADE

Note:

A virtual machine in Proxmox will use this interface and get an IP address '192.168.2.xxx'.

The two lines at the bottom will enable the NAT function.

Save the configuration and exit, then reboot the server:

reboot

Now check the server IP, we will have two network interfaces eth0 and vmbr0.

Note:

There are many options to configure the Network in Proxmox VE, you can find the full documentation about Proxmox network configuration options here https://pve.proxmox.com/wiki/Network_Model.

Step 5 - Adding a new ISO or VM Template

In this step, we will add a new ISO file for the VM installation. We can add an ISO file from within the web interface by uploading the file, or we can download the iso file directly to the server on the command line (this is my recommendation).

Download iso file to directory "/var/lib/vz/template/iso" with wget or curl.

Example to download a Ubuntu 15.04 image:

cd /var/lib/vz/template/iso/
wget http://releases.ubuntu.com/15.04/ubuntu-15.04-server-amd64.iso

Step 6 - Create the first Virtual Machine

Log into the Proxmox web interface, click on the right corner on the "Create VM" button.

Create VM

Then you will get a new form, Name is the name of the new virtual machine here. Then clicks Next.

Name of the VM

Select your Operating System. Here I will use Ubuntu Linux with kernel version 4. and click Next.

Select the Operating System.

Select the ISO file that we've downloaded on step 5, then click Next.

Select the ISO file.

Set the disk size for the virtual machine and click Next.

Set the Disk size.

CPU configuration - core, sockets, type of virtual machine (here we use kvm64) and click Next.

CPU Configuration.

Give memory/RAM size for the virtual machine and click next.

RAM Size.

On the network configuration, select bridge mode to vmbr0. And the Model I use Realtek RTL8139. Click next.

Choose network bridge.

And confirm the configuration by clicking on 'Finish'.

Finish the Proxmox configuration.

Now we van start the VM installation by clicking on the 'start' button and accessing the VM by clicking on 'console'.

Start the VM.

Now you can install the Ubuntu OS in the VM in the way you like.

Step 7 - Configure the network for the new Virtual Machine

When the VM is installed, we will have to configure the network so that the VM can access the internet.

Edit the interfaces file in the VM.

cd /etc/network/
vim interfaces

I will add a new interface 'eth0' in the VM by adding the configuration below:

auto eth0
iface eth0 inet static
        address 192.168.2.10
        netmask 255.255.255.0
        gateway 192.168.2.9

Save the file and exit.

Note:

The gateway IP is vmbr0 IP address on the host machine.

Now reboot the virtual machine and then try to access the internet by updating the repository or ping a server.

The proxmox installation is finished.

Note:

If you want to access the VM from the outside of proxmox, then you have to add new port forwarding rule on the host. For example, to access the SSH service in the VM, add the IPTables rules below:

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.2.10:22
iptables-save

The iptables rule will route the eth0 interface port 2222 to the virtual machine on IP 192.168.2.10 port 22. So now we can access the SSH in the VM from outside:

ssh -p 2222 [email protected]

Conclusion

Proxmox VE is an open source server virtualization based on Debian OS. Proxmox available as ISO file, so we can directly download and install it when we have physical access to the server, or we can install proxmox on our Debian server. Proxmox is powerful and easy to use, it provides a web-based administration interface so we can install and configure virtual machines with our Browser (Java and Icedtea should be installed). We can also configure Proxmox from the command line of the server, and Proxmox provides REST API for third-party applications. Proxmox has support for local and network storage systems, comes with high availability options builtin and provides functions for easy backup and restore of virtual servers. In my opinion, it is one of the best solutions for server virtualization.

Share this page:

7 Comment(s)

Add comment

Comments

From: BEF

really good job. thank you

From: lakhs

I followed the Guide but I do not open the page on browser (blank page)

From: Phillip

I got stuck on the proxmox installation.  I'm not sure I understand this part:

Postfix configuration during the installation:

Type of mail configuration: Internal Site. System mail name: type the domain name.

I get:

Unable to locate package proxmox-ve

Unable to locate package ksm-control-daemon

 

From: webhunter

did you add the proxmox repo to '/etc/apt/sources.list' and did a 'apt-get update'?

From: Iron

Why you don't separate the installation of 32bit and 64bit? Your HowTo works only for 32bit!

From: SamTzu

Proxmox on works on 64bit systems... so no! The installation has to be for 64bit systems. Clients can be 32bit.

From: Jai Abishek

how to access VM without the web UI from a raspberry pi using spice client