LXC-Host aufsetzen

Aus Vosp.info
Version vom 29. Juli 2018, 19:36 Uhr von HK (Diskussion | Beiträge) (LXC-Container erzeugen und kon)
Wechseln zu:Navigation, Suche

ZUrück zu Server_aufsetzen

Installation LXC-Host

Server mit GRML starten

Festplatten partitionieren

fdisk /dev/sda
  * /  5G
  * swap 1G
  * lvm Rest

LVM nur für die Container

pvcreate /dev/sda3
vgcreate vg_lxc /dev/sda3
lvcreate -L 20G -n lv_lxc vg_lxc
grml-debootstrap --target /dev/sda1 --grub /dev/sda
reboot

System starten

Keyboard layout einstellen

dpkg-reconfigure console-data

Im ncurses-Menu auswählen.

  • Select keymap from arch list => O.K.
  • qwertz => O.K.
  • German => O.K.
  • Standard => O.K.
  • latin1 => O.K.

Sprache einstellen

dpkg-reconfigure locales

de_DE.UTF-8 auswählen und als default einstellen

Bash-completion

apt-get install bash-completion

Farbiges Promt

vim ~/.bashrc

export PS1='\[\033[0;31m\]\u\[\033[0;36m\]@\h:\[\033[0m\]\w\$ '
  • [0;36m] Türkis (cyan)
  • [0;32m] Grün (green)
  • [0;31m] Rot (red)
  • Meine Farbregeln
    • Vor dem Promt: rot für root und grün für user.
    • Hinter dem Promt: rot für Produktivserver, türkis für Testrechner und grün für Privatrechner/Workstations.


Meine .bashrc für root auf einem Testrechner.

# ~/.bashrc: executed by bash(1) for non-login shells.

export PS1='\[\033[0;31m\]\u\[\033[0;36m\]@\h:\[\033[0m\]\w\$ '
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'

# Some more alias to avoid making mistakes:
alias rm='rm -i'
# bash-completion
. /etc/bash_completion

PATH=$PATH:~/bin

Damit PATH wirksam werden kann:

mkdir ~/bin

Dort leben alle custom-scripts.

Hostname

Wir nennen diesen Rechner host-1-lnx01

vim /etc/hostname

host-1-lnx01 eintragen

/etc/network/interfaces

Die interfaces Datei anpassen.

vim /etc/network/interfaces

eth1 ist hier das Interface zum Intranet

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
       address 10.8.190.1
       broadcast 10.8.190.255
       netmask 255.255.255.0


LXC installieren

apt-get install lxc lxctl

LVM für LXC einbinden

LVM auf /var/lib/lxc einbinden.

mkfs.ext4 /dev/vg_lxc/lv_lxc
blkid |grep mapper >> /etc/fstab
vim /etc/fstab

Am Ende muss die Zeile so außsehen. Der UUID weicht natürlich ab.

/dev/disk/by-uuid/2c58a476-7b09-428c-8277-b80889443220 /var/lib/lxc ext4        defaults        0       0


Netzwerk für LXC vorbereiten

vim /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# eth0 verbindet den Host mit dem Internet
auto eth0
iface eth0 inet dhcp
 
# Mit diese Bridge werden die Container verbunden, damit sie Verbindung zum Internet bekommen.
auto lxcbr0
iface lxcbr0 inet static
       address 10.0.0.1
       netmask 255.255.255.0
       pre-up (ip addr show |grep lxcbr0) || brctl addbr lxcbr0


# eth1 verbindet den Host physikalisch mit dem Intranet
auto eth1
iface eth1 inet manual

# Per Bridge steht eth1 den Containern zur Verfügung
auto lxc-out
iface lxc-out inet manual
       bridge_ports    eth1
       bridge_maxwait 1

Packet Forwarding einschalten

vim /etc/sysctl.conf 

Die folgende Zeile suchen und einkommentieren (# vor der Zeile entfernen)

net.ipv4.ip_forward=1

MASQUERADE der Firewall einschalten

apt-get install -y iptables
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Dauerhaft abspeichern und nach jedem Hoststart laden

apt-get -y install iptables-persistent 

Änderungen an der Firewall speichern mit

iptables-save > /etc/iptables/rules.v4

LXC-Container erzeugen und auf dem Host konfigurieren

Container samba4.test2.local erstellen

Container samba4.test2.local erzeugen

# lxc-create --name samba4.test2.local -t debian

Auf dem Host Container samba4.test2.local einrichten

Als erstes wird die erzeugte Conf bearbeitet.

# vim /var/lib/lxc/samba4.test2.local/config

Entfernen

lxc.network.type = empty

Hinzufügen

# Autostart des Containers ( 0 steht für kein Autostart)
lxc.start.auto = 1
 
# Erzeugt tun-device, dass in die Bridge lxc-out eingefügt wird (Intranet)
lxc.network.type=veth
 # Bridge, in der das Interface eingefügt wird
lxc.network.link=lxc-out 
lxc.network.hwaddr = 00:FF:AA:00:21:11
lxc.network.ipv4 = 10.8.190.5/24
lxc.network.flags=up
# Name des TUN-Devices auf dem Host
lxc.network.veth.pair=samba4-out 
# Hostname 
lxc.utsname = samba4

Alle Container

Reihenfolge der Containerkonfiguration

  • Bevor die anderen Container ins Netz kommen können, muss im OPSI-Container Forwarding und Masquerading eingerichtet werden.

Provisorische Namensauflösung

  • Die Namensauflösung wird am Ende vom Samba-AD/DC übernommen. Da er noch nicht installiert ist, muss eine Übergangslösung genutzt werden.
# vim <containername>/rootfs/etc/resov.conf
z.b. "8.8.8.8"