IPv6 Konfiguration bei OVH VPS Instanzen

Manchmal ist er schwer für einfache Dinge eine saubere technische Lösung zu finden. Gutes Beispiel ist die IPv6 Konfiguration für eine VPS Instanz bei der Firma OVH. Nach meiner Erfahrung ist die Netzwerkkonfiguration, gerade bei Cloud-Angeboten, je nach Hosting Anbieter etwas komplizierter. Das Angebot von OVH basiert aber auf OpenStack und die Basis-Konfiguration innerhalb der VM erfolgt via cloud-init. D.h. egal ob Amazon AWS, Microsoft Azure oder eben OVH, unter Linux kommt immer cloud-init zum Einsatz. Aber im Fall von VPS-Instanzen bei OVH werden wohl zumindest für IPv6 keine Metadaten bereitgestellt.

Dies lässt sich auf der Kommandozeile über entsprechende HTTP-Requests testen:

[root@vps593928 ~]# curl http://169.254.169.254/2009-04-04/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
instance-action
instance-id
instance-type
local-hostname
local-ipv4
placement/
public-hostname
public-ipv4
public-keys/
reservation-id

Via DHCP ist es offenbar ebenfalls nicht möglich die IPv6-Einstellungen dynamisch zu beziehen. Bei IPv4 funktioniert dies, bei IPv6 aber wohl nicht. Nun könnte man die Netzwerk-Konfiguration via cloud-init abschalten und die entsprechenden Konfigurationsdateien manuell pflegen. Ich wollte aber möglichst nah an der Standard-Installation bleiben, deshalb liefere ich die fehlenden IPv6-Daten in der cloud-init Konfiguration nach.

Beim Hostnamen hatte ich ähnliche Schwierigkeiten. Die Web-GUI von OVH erlaubt zwar den Namen der VPS Instanz zu ändern, die cloud-init zur Verfügung gestellten Metadaten enthalten aber immer noch den ursprünglichen Instanz-Namen von OVH. Für den Hostnamen habe ich noch keine saubere Lösung gefunden. Hier hilft nur den Hostnamen einmalig auf den gewünschten Wert zu setzen und danach die dynamische Änderung des Hostname in cloud-init zu deaktivieren.

[root@vps593928 ~]# hostnamectl set-hostname s20.e1.fm-berger.de

Die cloud-init Konfiguration für IPv6 und Hostname erfolgt dann über neue Datei /etc/cloud/cloud.cfg.d/99-custom-networking.cfg mit folgendem Inhalt:

network:
  version: 1
  config:
  - type: physical
    name: eth0
    mac_address: fa:16:3e:07:47:dd
    subnets:
      - type: dhcp
      - type: static
        address: 2001:41d0:701:1100::ab3/128
        gateway: 2001:41d0:701:1100::1

preserve_hostname: true

Nach einem Reboot der VPS Instanz sollte die IPv6-Konfiguration richtig gesetzt sein und der Hostname dürfte nicht mehr ändern.

Mit Virtualbox auf einer Zeitreise in die Zukunft

Um ein paar technische Details für das Backup-Konzept eines Kunden klären zu können, war es heute sehr hilfreich, eine VM in Virtualbox mit der Zeit in die Zukunft zu versetzen. Dazu waren folgende Schritte notwendig.

Zeitsynchronisation zwischen Host und virtueller Maschine deaktivieren:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "rhel701" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

Als nächstes muss der Zeitoffset zwischen gewünschter Zeit in der Zukunft und jetzt in Millisekunden via Powershell berechnet werden:

PS C:\Users\frank> ([datetime]"06/26/2017" - [datetime]::Now)


Days              : 11
Hours             : 6
Minutes           : 6
Seconds           : 6
Milliseconds      : 746
Ticks             : 9723667466261
TotalDays         : 11,2542447526169
TotalHours        : 270,101874062806
TotalMinutes      : 16206,1124437683
TotalSeconds      : 972366,7466261
TotalMilliseconds : 972366746,6261

Dieser Zeitoffset wird dann für die VM gesetzt:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "rhel701" --biossystemtimeoffset 972366746

In die Gegenwart zurück geht es via:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "rhel701" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 0
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "rhel701" --biossystemtimeoffset 0

Installation eines Oracle ODBC-Treibers unter Windows

Die Installation eines Oracle ODBC-Treibers unter Windows ist zwar relativ einfach, enthält in der Praxis dann aber doch ein paar Fallstricke, die es zu beachten gilt. Insbesondere bei der Installation eines 32-bit ODBC-Treibers auf einem 64-bit Windows-System kann es schnell zu Unklarheiten kommen. Der nachfolgende Screencast beschreibt daher die Installation des Oracle ODBC-Treibers mit dem Oracle Instant Client, das entsprechende Youtube-Video finden sie über folgenden Link: https://youtu.be/F81mLnwp8D4.

Weitere Informationen und den kostenlosen Download für den Instant Client gibt es auf den Webseiten der Firma Oracle:

RHEL / OEL 6 DVD als yum-Repository verwenden

Welcher Linux Administrator kennt das Problem nicht, nach der Installation von Linux sollen einzelne RPM-Pakete nachinstalliert werden. Aufgrund der vielen Abhängigkeiten zwischen den Paketen ist der direkte Einsatz des Tools rpm oft mühsam. Hier hat sich der yum-Einzeiler „yum install PACKAGENAME“ bewährt.

In so mancher Firmenumgebung steht aber leider nicht direkt ein YUM-Repository zur Verfügung und die Server haben meist keinen Internetzugang. YUM kann die Installations-DVD mit ein wenig Nachhilfe auch direkt als Repository verwenden. Hier am Beispiel für Oracle Enterprise Linux 6 dargestellt (die DVD wurde unter /mnt gemountet):

[root@centos6 ~]# cd /mnt
[root@centos6 mnt]# cp media.repo /etc/yum.repos.d/
[root@centos6 mnt]# vi /etc/yum.repos.d/media.repo

In der Datei muss noch ein entsprechender Eintrag für den Parameter baseurl aufgenommen werden. In diesem Fall also:

baseurl=file:///mnt

JRockit Virtualization Edition

Ab heute gibt es Oracle WebLogic Server on JRockit Virtualization Edition als Download. Vor ein paar Wochen gab es bereits ein Meldung bei heise.de zu neuen Java-Virtualisierungswerkzeugen von Oracle – Oracle präsentiert Java-Virtualisierungswerkzeuge. Die technische Basis für dieses Produkt wurde Ende 2006 von der Firma BEA als Liquid VM angekündigt (theserverside.com – JRockit’s Liquid VM could be the first real Java OS). Hinter der JRockit Virtualization Edition steckt der Ansatz eine Java VM direkt auf virtualisierter Hardware, ohne Betriebssystem-Schicht, laufen zu lassen. Einen ähnlichen Ansatz stellt das Projekt JNode.org (Java New Operating System Design Effort) dar.

Oracle liefert die JRockit Virtualization Edition zusammen mit Weblogic als 370 MB grosses Zip-File. Darin sind folgende Dateien enthalten:

# unzip -t wlsvePackage.zip 
Archive:  wlsvePackage.zip
    testing: wlsve/                   OK
    testing: wlsve/system.img         OK
    testing: wlsve/vm.cfg             OK
    testing: wlsveimagetool.jar       OK
    testing: README.txt               OK
    testing: wlsve_medrec_domain_with_odb.pdf   OK
    testing: THIRDPARTYLICENSEREADME.txt   OK

Hauptbestandteil ist das Disk-Image system.img

$ qemu-img info wlsve/system.img 
image: wlsve/system.img
file format: raw
virtual size: 1.0G (1073741824 bytes)
disk size: 1.0G

Als Dateisystem wird in diesem Disk-Image ext2 verwendet, die Disk lässt sich daher unter Linux ohne Schwierigkeiten direkt mounten.

# mount -o loop wlsve/system.img /mnt
# cd /mnt
# ls -l
total 20
drwx------ 8 root root 4096 2010-04-14 02:48 application
drwx------ 3 root root 4096 2010-04-14 02:49 boot
drwx------ 8 root root 4096 2010-04-14 02:49 jrockitve
drwx------ 2 root root 4096 2010-04-14 02:48 lost+found
-rw------- 1 root root  361 2010-04-14 02:49 VERSION

Für den Betrieb einer Virtuellen-Maschine mit JRockit VE wird eigentlich Oracle VM benötigt. In einem ersten Test ließ sich das Disk-Image aber auch in einer normalen Xen-Umgebung booten. Hierzu wurde die Konfigurations-Datei vm.cfg mit folgendem Inhalt versehen:

name="wlsve01"
bootloader="/usr/bin/pygrub"
memory=1024
disk=['tap:aio:/var/nfs/system.img,sda1,w']
vif=['bridge=xenbr0']

Der Start der Xen-Domain erfolgt dann wie gewohnt mit den entsprechenden Xen-Befehlen.

# xm create -c vm.cfg