OpenVZ Console

From Proxmox VE
Revision as of 17:44, 7 March 2013 by Matthias Schoenberg (talk | contribs) (→‎Modifying your templates: found a sneaky error)
Jump to navigation Jump to search

Introduction

Beginning with Proxmox VE 2.2, we introduced a new console view (with login capability). Especially for beginners it is not that easy to understand and manage containers but with the new console this is big step forward. OpenVZ and KVM console looks now quite similar.

But as most OpenVZ templates have disabled terminals, you need to enable it first. This article describes for the needed changes for already running OpenVZ container.

Note:

All Debian templates created with latest Debian Appliance Builder got this changes already, just download them via GUI to your Proxmox VE storage (Debian 6 and 7 templates are up2date, 32 and 64 bit)

Debian

This method works for Debian 5/6/7, you can do this on the host without entering CT (but the CT must be running). Just log in to the Proxmox VE host and:

edit all inittabs under /var/lib/vz/root/ :

 nano /var/lib/vz/root/*/etc/inittab

 # add this
 1:2345:respawn:/sbin/getty 38400 tty1

Debian Lenny 5.0

Screen-Debian-5-OpenVZ-console.png

Login via SSH (or use the VNC "Shell") to your Proxmox VE host and 'vzctl enter CTID' the container:

List all running container:

proxmox-ve:~# vzlist
     CTID      NPROC STATUS    IP_ADDR         HOSTNAME
      108         23 running   192.168.9.20    ubuntu-1204.proxmox.com
      109         18 running   192.168.9.21    centos63-64.proxmox.com
      111         15 running   192.168.9.23    centos5-64.proxmox.com
      114         14 running   192.168.9.30    deb6-32.proxmox.com
      115         15 running   192.168.9.31    deb7-32.proxmox.com
      122         14 running   192.168.9.36    deb5.proxmox.com

Enter the container:

proxmox-ve:~# vzctl enter 122
root@debian:/# nano /etc/inittab

On the bottom of /etc/inittab just add the following line:

1:2345:respawn:/sbin/getty 38400 tty1

Save the changes and shutdown/start the container via Console.

Debian Squeeze 6.0

Same as Debian Lenny 5.0

Debian Wheezy 7.0

Same as Debian Lenny 5.0

Ubuntu

Ubuntu 12.04

Screen-Ubuntu-12.04-OpenVZ-console.png

Login via SSH (or use the VNC "Shell") to your Proxmox VE host and 'vzctl enter CTID' the container:

List all running container:

proxmox-ve:~# vzlist
     CTID      NPROC STATUS    IP_ADDR         HOSTNAME
      108         23 running   192.168.9.20    ubuntu-1204.proxmox.com
      109         18 running   192.168.9.21    centos63-64.proxmox.com
      111         15 running   192.168.9.23    centos5-64.proxmox.com
      114         14 running   192.168.9.30    deb6-32.proxmox.com
      115         15 running   192.168.9.31    deb7-32.proxmox.com
      122         14 running   192.168.9.36    deb5.proxmox.com

Enter the container:

proxmox-ve:~# vzctl enter 108
root@ubuntu-1204:/# nano /etc/init/tty1.conf

Change/Create the file that it looks exactly like this:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]

stop on runlevel [!2345]

respawn
exec /sbin/getty -8 38400 tty1

Save the changes and shutdown/start the container via Console.

Ubuntu 10.04

Same as Ubuntu 12.04

Centos

Centos 5

Screen-Centos-5-OpenVZ-console.png

Login via SSH (or use the VNC "Shell") to your Proxmox VE host and 'vzctl enter CTID' the container:

List all running container:

proxmox-ve:~# vzlist
     CTID      NPROC STATUS    IP_ADDR         HOSTNAME
      108         23 running   192.168.9.20    ubuntu-1204.proxmox.com
      109         18 running   192.168.9.21    centos63-64.proxmox.com
      111         15 running   192.168.9.23    centos5-64.proxmox.com
      114         14 running   192.168.9.30    deb6-32.proxmox.com
      115         15 running   192.168.9.31    deb7-32.proxmox.com
      122         14 running   192.168.9.36    deb5.proxmox.com

Enter the container:

proxmox-ve:~# vzctl enter 111
root@centos5-64:/# nano /etc/inittab

On the bottom of /etc/inittab just add the following line:

1:2345:respawn:/sbin/agetty tty1 38400 linux

Save the changes and shutdown/start the container via Console.

Centos 6

Screen-Centos-6-OpenVZ-console.png

Login via SSH (or use the VNC "Shell") to your Proxmox VE host and 'vzctl enter CTID' the container:

List all running container:

proxmox-ve:~# vzlist
     CTID      NPROC STATUS    IP_ADDR         HOSTNAME
      108         23 running   192.168.9.20    ubuntu-1204.proxmox.com
      109         18 running   192.168.9.21    centos63-64.proxmox.com
      111         15 running   192.168.9.23    centos5-64.proxmox.com
      114         14 running   192.168.9.30    deb6-32.proxmox.com
      115         15 running   192.168.9.31    deb7-32.proxmox.com
      122         14 running   192.168.9.36    deb5.proxmox.com

Enter the container:

proxmox-ve:~# vzctl enter 109
root@centos63-64:/# nano /etc/init/tty.conf

Change/Create the file that it looks exactly like this:

# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]

stop on runlevel [!2345]

respawn
exec /sbin/agetty -8 tty1 38400

Save the changes and shutdown/start the container via Console.

Troubleshooting

If you still want to use the previous method (vzctl enter CTID) you can open the host "Shell" and just type 'vzctl enter CTID" to manage your containers.

Java browser plugin

The console is using a Java applet, therefore you need latest Oracle (Sun) Java browser plugin installed and enabled in your browser (Google Chrome and Firefox preferred). If you are on Windows desktop, just go to java.com, if you run a Linux desktop you need to make sure that you run Oracle (Sun) Java plugin instead of the default openjdk. For Debian/Ubuntu based desktops, see Java_Console_(Ubuntu)

Modifying your templates

If you don't want to commit the changes above for every single CT you create, you can simply update the templates accordingly. For this, simply place the file you want to insert into your template (like etc/inittab for debian containers) into your template folder and update the template. Detailled procedure for centos templates:

cd [TEMPLATE LOCATION]

Modify this.

The following is specific to CentOS 6, just replace filename/path and contents with the appropriate contents found above

mkdir -p etc/init

cat <<EOF >etc/init/tty.conf
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]

stop on runlevel [!2345]

respawn
exec /sbin/agetty -8 tty1 38400
EOF

gunzip centos-6-standard_6.3-1_amd64.tar.gz
tar -rf centos-6-standard_6.3-1_amd64.tar etc
gzip centos-6-standard_6.3-1_amd64.tar

rm etc/init/tty.conf
rmdir -p etc/init