Inhaltsverzeichnis

LXD installieren

snapcraft installieren: Debian(10), Ubuntu (20.04)

apt install snapd
snap install core

abmelden und wieder anmelden ($PATH wird erweitert)

snap install lxd

LXD einrichten

lxd init

Defaults lassen bis auf Name of the storage backend to use (ceph, btrfs, dir, lvm) [default=btrfs]:. Hier entweder dir eingeben oder (falls eine freie Partition oder ein freies Logical Volume vorhanden ist auf default btrfs lassen)

Container inkl. Netzwerk anlegen

TODO: noch mal testen

Domain konfigurieren:

lxc network set lxdbr0 dns.domain kurs.linuxhotel.de

Container anlegen:

lxc init images:debian/10 test1

Container zu Netzwerk hinzufügen:

lxc network attach lxdbr0 test1 eth0 eth0

Container starten:

lxc start test1

Namensauflösung auf dem Container-Host konfigurieren

libnss_resolve benutzen (TODO: vorher systemd-resolved.service starten?)

/etc/nsswitch.conf
…
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
…

libnss_resolve konfigurieren, so dass die Domain test vom Host aufgelöst werden kann

lxc network show lxdbr0
config:
  dns.domain: test
  ipv4.address: 10.20.42.1/24
  ipv4.nat: "true"
  ipv6.address: fd42:9808:fec7:1c7e::1/64
  ipv6.nat: "true"
…
/etc/systemd/network/lxdbr0.network
[Match]
Name=lxdbr0
 
[Network]
#Address ist redundant. Kann man das los werden?
Address=10.20.42.1/24
DNS=10.20.42.1
Domains=~test

(TODO: systemd-networkd.service neu starten?)

networkctl
… lxdbr0          bridge   routable    configured
resolvectl
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6                                   
         Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 10.20.42.1                                                  
       DNS Servers: 10.20.42.1 fe80::216:3eff:fe6a:88fd%21919                   
        DNS Domain: ~test
getent hosts test1.test

SSH Key in den Container

lxc exec test1 -- /bin/bash -c 'mkdir .ssh/; cat >> .ssh/authorized_keys' < .ssh/id_ed25519.pub