start:alternc:alternc_lxc
Ceci est une ancienne révision du document !
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
→ ligneonly_from
pour restriction d'accès
(quand mise en place uniquement locale, 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
etbrvm
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
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.1lxc_key
: la clef configurée dans le config.jsonlxc_maxtime
: le nombre d'heures max ou peut tourner une vmlxc_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 list
alternc_lxc
alternc_lxc stop vm1
start/alternc/alternc_lxc.1476950117.txt.gz · Dernière modification : 2016/10/20 09:55 de domi