Centos-Container für LXC erstellen

Für CentOS 6 gibt es im paket lxc-templates eine Vorlage. Dazu muss man lediglich das Skript
/usr/share/lxc/templates/lxc-centos
anpassen und den richtigen Zielpfad für das Dateisystem festlegen (/var/lib/libvirt/filesystems):
Im Anschluss einfach mit dem Virt-Manager oder virt-install –connect lxc:// …. den Container erstellen

CentOS 7 hingegen muss der Verwalter manuell anlegen. Das funktioniert jedoch via yum auf einem CentOS-System als Host relativ simpel:

yum -y --installroot=/var/lib/libvirt/filesystems/mycentos7 --releasever=7 group install "base"
echo "pts/0" >> /var/lib/libvirt/filesystems/mycentos7/etc/securetty

Für beide Installationen gilt:
Das Root-Password läßt sich vor dem ersten Systemstarte via chroot setzen:
chroot /var/lib/libvirt/filesystems/mycentos7 /bin/passwd root
Und nach dem ersten Start sollte die /etc/sysconfig/network-scripts/ifcfg-eth0 angepasst werden.

Alle Pakete eines Repos entfernen

Alle Pakete eines bestimmten Channels oder Repositories lassen sich wie folgt entfernen:
yum remove $(yum list installed | grep ovirt | awk '{ print $1 }')
Wobei ovirt hier für den Namen des Repostitries steht.

Dummy Interface

Verschiedene Einsatzgebiete, wie unter anderem Offline-Demo-Setups von Cloud- und Virtualisierungsdiensten, erfordern ein Pseodo-Netzwerkinterface, auf das sich eine Bridge binden läßt. Der Linux Kernel unterstützt dazu das „dummy“-Interface. Allerdings generiert das System bei jedem Neustart ein neues Pseudo-Interface mit einer neuen MAC-Adresse, so dass die Netwerk-Konfiguration nach dem Reboot nicht mehr passt.

Abhilfe schafft ein kleinen Skript (in /etc/rc.local), welches beim Systemstart das Dummy-Interface erzeugt und ihm eine fixe MAC-Adresse zuweist:
modprobe dummy
ip link set dev dummy0 address 00:01:02:dd:ee:ff

Alternativ läßt sich das Dummy Interface auch umbennen:
modprobe dummy
ip l set dev dummy0 name veth0
ip link set dev veth00 address 00:01:02:dd:ee:ff

und für diejenigen, welche sich immer noch strikt gegen das „ip“ tool wehren:
ifconfig dummy0 hw ether 00:01:02:dd:ee:ff

Allerdings läuft rc.local erst nach allen Start-Skripten. Es bietet sich an, das Skript als offizielles init-Skript umzuschreiben und vor „network“ zu starten.

Hwclock adjust

Beim Setzen der Hardware-Uhr (auch in einer VM) schreibt hwclock ein „adjust file“ welches die Differenz der Hardware-Uhr (UTC) zur Systemzeit (GMT+1) ablegt. Ist die Differenz zwischen System- und Hardware-Zeit nicht korrekt konfiguriert, wird der Server/VM nach einem Neustart in der Zeit um eines Stunde abweichen. Abhilfe schafft es dann, die hwclock auf die locale Zeit zu zwingen:

ntpdate ptbtime1.ptb.de
hwclock -w --localtime

oder einfach zur Sicherheit das Adjust-File löschen
/etc/adjtime

rhev/ovirt Export Domain bereinigen

Wurde eine Export Domain nicht sauber von einem Data Center getrennt, läßt sie sich nicht an ein anderes DC anbinden. Dieses Problem läßt sich manuell bereinigen:
Auf der Export-Domain in das Verzeichnis /dom_md wechseln und die Datei metadata editieren:
Der Eintrag
SPUUID=12345678-1234-1234-1234-1234567890a
verweist auf die UUID des zuletzt angebundenen Data Centers. Diese einfach entfernen:
SPUUID=
und zudem die komplette Zeile
_SHA_CKSUM
aus der Datei löschen.

Anschliessend läßt sich die Export Domain wieder an ein DC anbinden.