Outils pour utilisateurs

Outils du site


Panneau latéral

start:alternc:alternc_lxc

mise en place alternc-lxc

Mise en place du paquet alternc-lxc sur une installation d'AlternC existante afin de permettre un accès par SSH aux utilisateurs du panel, cloisonné dans leur répertoire.

aptitude install alternc-lxc debootstrap bridge-utils

monter le fs cgroup pour pouvoir utiliser LXC

cgroup	/sys/fs/cgroup	cgroup	defaults	0	0

restrictions xinetd

  • éditer /etc/xinetd.d/alternc_lxc → ligne only_from pour restriction d'accès

(quand mis en place sur le meme serveur que le panel AlternC, mettre 127.0.0.1)

création de l'image de base pour les LXC créés

  • créer l'image nécessaire avec /var/lib/alternc-lxc/alternc_lxc_initme.sh

( telnet localhost 6504 le dit, au pire )

  • → prévoir environ 1Go dans /var/lib/alternc-lxc pour stocker l'image

configuration réseau

  • décider d'un subnet « privé », derrière lequel seront natés les accès sur les LXC
    • → par exemple : 172.x.y.0/24
  • mettre en place une interface “dummy” qui servira à communiquer entre l'hote et les lxc et un bridge interne (l'interface n'a pas besoin d'adresse IP, elle sera portée par le bridge)
    • → par exemple : dummy0 et brvm
auto dummy0
iface dummy0 inet static

auto brvm
iface brvm inet static
        address 172.x.y.1
        netmask 255.255.255.0
        bridge_ports dummy0
        bridge_stp off
        bridge_maxwait 5
=> ''ifup brvm'' pour activer l'interface

sous-domaine

  • décider d'un “sous-domaine” pour nommer les vm
    • → par exemple : vmX.host.domaine.tld

ports d'accès SSH

  • décider d'une série de ports pour permettre l'accès vers chacun des LXC créés
    • → par exemple : 2221 et suivants
  • mettre en place des règles permettant l'accès :
    • activer l'ip forwarding
    • le NAT/masquerade pour les accès sortants
    • port-map pour les accès entrants
    • autoriser les accès entrants correspondants
    • → exemple de regles Shorewall (avec une zone vm contenant l'interface brvm)
# SSH pour les LXC
DNAT            net     vm:172.x.y.21:22       tcp     2221
DNAT            net     vm:172.x.y.22:22       tcp     2222

configuration alternc-lxc

  • détailler dans /etc/alternc-lxc/config.json les vms qu'on veut pouvoir mettre à disposition :
{ 
    "_comment":"This is a json-formatted array for AlternC-lxc.  'vm': List of the VM that can be launched in this server for each VM, the key is the vm NAME, and the values set the VM hostname, and network with their IP, mac, and physical link     'servers': List all the AlternC's servers allowed to ask for a VM Each server has its servername as a key And the parameters are its secretkey and nfs or local mount for AlternC's HTML folder.   To check it before production, use json_xs -t null config.json ",

    "vm": {
        "vm1":{ 
            "hostname": "vm1.host.domaine.tld -p 2221",
            "network":{
                "eth0":{
                    "link":"brvm",
                    "ipv4":"172.x.y.21\/24",
                    "ipv4.gateway":"172.x.y.1",
                    "mac":"AA:CC:42:00:01:21"
                }
            }
        },
        "vm2":{ 
            "hostname": "vm2.host.domaine.tld -p 2222",
            "network":{
                "eth0":{
                    "link":"brvm",
                    "ipv4":"172.x.y.22\/24",
                    "ipv4.gateway":"172.x.y.1",
                    "mac":"AA:CC:42:00:01:22"
                }
            }
        }
    },

    "servers": {
        "host.domaine.tld":{
            "_comment_key":"Modifier la clef!!",
            "key":"xyzt1234",
            "_comment_htmlmount":"Ajuster la commande permettant d'acceder aux donnees web AlternC",
            "htmlmount":" -o bind /var/www/alternc",
            "mysql_host": "172.x.y.1"
        }
    }
}
  • configurer les variables lxc_* dans le panneau administrateur

Tant que l'adresse IP n'est pas renseignée, le menu n'apparait pas.

  • lxc_ip : 127.0.0.1
  • lxc_key : la clef configurée dans le config.json
  • lxc_maxtime : le nombre d'heures max ou peut tourner une vm
  • lxc_port : le port d'acces (normalement 6504, sauf si modification de la configuration de xinetd)
  • → si elles n'existent pas (:!: pas comme ça sur un AlternC où les variables sont surchargeables) il faut effectuer des INSERT dans la base de données :
INSERT INTO variable(name,value,comment) VALUES ('lxc_ip','127.0.0.1','LXC server for running consoles');
INSERT INTO variable(name,value,comment) VALUES ('lxc_key','1234','Key for auth to LXC server');
INSERT INTO variable(name,value,comment) VALUES ('lxc_port','6504','Port to access LXC server');
INSERT INTO variable(name,value,comment) VALUES ('lxc_maxtime','4','How many hours do we allow to have a server before shutting it down');

quelques commandes utiles

  • alternc_lxc : liste les commandes possibles
  • alternc_lxc list : liste les LXC connus et lancés
  • alternc_lxc stop vm1 : pour forcer l'arret d'un LXC
  • telnet localhost 6504 : pour vérifier que le serveur répond bien (en cas d'erreur dans le fichier .json il le dit là)
  • grep AlternC-LXC /var/log/syslog : les erreurs sont enregistrées via syslog
start/alternc/alternc_lxc.txt · Dernière modification: 2016/10/20 15:43 par domi