Généralement lors de l'utilisation X-based applications intérieur d'un conteneur OpenVZ ou Proxmox, le noeud hôte exécuter le serveur X et le conteneur utilise le transfert X via SSH pour exécuter l'application. Un article dans le Wiki VZ Open explique ce plus en détail.

Cependant, Je voulais avoir un serveur X à l'intérieur du conteneur lui-même. De plus, Il devrait également avoir un soutien pour la création sonore (ALSA). La raison derrière cela est d'avoir un conteneur capable de courir FreeSWITCH (une haute performance commutateur VoIP semblable à Asterisk) avec le skypiax tronc (pour skype Connectivité) totalement indépendant.

Il existe différents modes d'exécution du serveur X intérieur d'un conteneur OpenVZ ou Proxmox, surtout si aucune sortie vidéo directe est nécessaire. Cependant, il ya très peu d'informations disponibles sur la façon d'activer le son intérieur d'un conteneur OpenVZ ou Proxmox. Cet article explique comment faire cela.

Préparer le nœud d'accueil

Le noeud d'accueil le demande le son bon modules installés. Par exemple, sur un serveur qui ne requiert pas la production réelle par haut-parleur relié, snd_dummy est suffisante. Entrez la commande suivante pour charger le snd_dummy module:

modprobe snd_dummy

Vous pouvez vérifier si tout allait bien avec:

lsmod | grep snd

Qui permet d'afficher un rendement similaire à:

snd_dummy              23168  0
snd_pcm                97288  1 snd_dummy
snd_timer              35464  1 snd_pcm
snd                    79784  3 snd_dummy,snd_pcm,snd_timer
soundcore              18208  1 snd
snd_page_alloc         19984  1 snd_pcm

Si tel est le cas, alors vous voulez vous assurer que la snd_dummy seront chargés au démarrage. Tapez simplement la commande suivante:

echo "snd_dummy" >> /etc/modules

Préparation du conteneur

Configuration des privilèges d'appareil

L'étape suivante est la préparation de la OpenVZ ou conteneur Proxmox. Par défaut, le conteneur n'a pas de privilèges d'accès au périphérique audio, donc ce besoin d'être configuré à partir du nœud d'accueil (en supposant “100 "est le conteneur à ID):

vzctl set 100 --devices c:116:all:rw --devices c:4:all:rw --save

Cloning les périphériques audio

L'étape suivante consiste à recréer la/ dev / snd mise en page à partir du nœud d'accueil dans le conteneur. Voyons d'abord ce que la configuration est similaire sur le noeud d'accueil:

ls -la /dev/snd

Cela donnera une sortie similaire à:

crw-rw----  1 root audio 116, 6 2009-08-14 20:42 controlC0
crw-rw----  1 root audio 116, 5 2009-08-14 20:42 pcmC0D0c
crw-rw----  1 root audio 116, 4 2009-08-14 20:42 pcmC0D0p
crw-rw----  1 root audio 116, 3 2009-08-14 20:42 seq
crw-rw----  1 root audio 116, 2 2009-08-14 20:42 timer

Il est important que les identifiants de même appareil sont recréés dans le conteneur. Ie, le dispositif d'identification pour suiv est 116,3 Dans l'exemple ci-dessus.

Entrez le conteneur et de début et de délivrer les commandes suivantes, en fonction de la production donnée sur le nœud d'accueil:

vzctl enter 100
rm -r /dev/snd
mkdir /dev/snd
mknod /dev/snd/controlC0 c 116 6
mknod /dev/snd/pcmC0D0c c 116 5
mknod /dev/snd/pcmC0D0p c 116 4
mknod /dev/snd/seq c 116 3
mknod /dev/snd/timer c 116 2
chmod 660 /dev/snd/*
chown :audio /dev/snd/*

A ce stade, vous avez cloné copie de dispositifs sonores le nœud d'accueil et sont prêtes à être utilisées.

S'il vous plaît noter que l'application qui désire utiliser les périphériques audio nécessitent les privilèges nécessaires. La méthode la plus simple est d'ajouter de l'UID pour les audio groupe. Par exemple, si Skype fonctionne sous uid “skype”, exécutez cette commande:

adduser skype audio

Installer le serveur Xorg

Il existe différentes variantes de serveur X qui peuvent être installés dans le conteneur, surtout si aucune sortie vidéo est requis. Le plus connu est sans aucun doute Xvfb.

J'ai opté pour l'utilisation du serveur Xorg avec une vidéo de mannequin, souris et le clavier à la place conducteur (Comme il s'agissait de serveur dédié, sans aucun de ces appareils). Cette section détaille comment je l'ai installé sur les distributions basées sur Debian.

Avant l'installation

Première étape, intérieur d'un conteneur, est de soft-link Tty1 à Tty0:

rm /dev/tty0
ln -s /dev/tty1 /dev/tty0

Note: cela suppose que vous accédez au conteneur à l'aide vzctl, pas SSH !

Si nscd est installé, supprimer cette première:

aptitude remove nscd

Télécharger et installer des paquets

Ensuite nous installer les paquets nécessaires pour Xorg et certains pilotes de périphériques, y compris pour le support du son ALSA:

aptitude -R install xorg xserver-xorg-video-dummy xserver- \
  xorg-input-kbd xserver-xorg-input-mouse alsa-base linux-sound-base \
  libaudiofile0 dbus udev-

Modifier la configuration

La dernière étape est la configuration de Xorg, en modifiant le / Etc/X11/xorg.conf fichier comme suit:

Section "InputDevice"
        Identifier      "Dummy Input"
        Driver          "void"
EndSection

Section "Device"
        Identifier      "Dummy Video"
        Driver          "dummy"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Dummy Video"
EndSection

Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Dummy Input"
EndSection

Vous pouvez maintenant démarrer des instances X à l'aide:

/usr/bin/X :<DISPLAY#>

<Affiche #> est l'affichage à être utilisé (sans les crochets, ou omettre entièrement pour les paramètres par défaut). X-applications basées va maintenant être capable de fonctionner sur n'importe quel de ces écrans. Par exemple, pour exécuter Skype (pour Skypiax) sur un écran spécifique et sous UID “skype”:

su skype -c "echo secret:password | DISPLAY=:1 /usr/bin/skype --pipelogin 2>>skype_errors.log &"

L'accès à distance en utilisant NoMachine NX

Même si vous utilisez un framebuffer virtuel (comme avec Xvfb) ou un pilote vidéo mannequin, vous serez encore capable de faire des tâches visuelles sur le serveur. Une méthode consiste à utiliser un tunnel de transfert X (ssh-X). Je préfère utiliser NoMachine le serveur NX Au lieu de.

Pour installer le serveur NX NoMachine sur une distribution basée sur Debian, Numéro de commande qui suit:

wget http://64.34.161.181/download/3.3.0/Linux/nxclient_3.3.0-6_i386.deb
wget http://64.34.161.181/download/3.3.0/Linux/nxnode_3.3.0-17_i386.deb
wget http://64.34.161.181/download/3.3.0/Linux/FE/nxserver_3.3.0-22_i386.deb
dpkg -i nxclient_3.3.0-6_i386.deb
dpkg -i nxnode_3.3.0-17_i386.deb
dpkg -i nxserver_3.3.0-22_i386.deb

Ceci suppose que vous exécutez une version 32 bits de Linux et les versions énumérées ci-dessus sont corrects encore. S'il vous plaît procéder à cette vérification NoMachine le site web et le changement comme approprié avant de lancer la commande.

Maintenant vous êtes prêt à vous connecter à votre serveur Xorg en utilisant NoMachine's NX Client et ne Tâches visuelles (ie., naviguer sur Internet si un navigateur est installé).

vzctl ensemble 105 –dispositifs c:116:tous:rw –dispositifs c:4:tous:rw –sauver

Related Posts:

  1. guide: Pare-feu et routeur avec Proxmox
  2. guide: Pare-feu et routeur avec Proxmox – L'extension de son utilisation
  3. guide: Installation d'OpenSolaris sur un serveur dédié à distance