Bereitstellen der NetScaler VPX Instanz mithilfe von OpenStack
Sie können eine NetScaler VPX-Instanz in einer OpenStack-Umgebung bereitstellen, indem Sie entweder den Nova-Boot-Befehl (OpenStack CLI) oder Horizon (OpenStack-Dashboard) verwenden.
Das Provisioning einer VPX-Instanz umfasst optional die Verwendung von Daten aus dem Konfigurationslaufwerk. Das Konfigurationslaufwerk ist ein spezielles Konfigurationslaufwerk, das beim Booten als CD-ROM-Gerät an die Instanz anhängt. Dieses Konfigurationslaufwerk kann verwendet werden, um Netzwerkkonfiguration wie Verwaltungs-IP-Adresse, Netzwerkmaske, Standard-Gateway zu übergeben und Kundenskripte zu injizieren.
In einer NetScaler Appliance ist der Standardauthentifizierungsmechanismus kennwortbasiert. Jetzt wird der SSH-Schlüsselpaar-Authentifizierungsmechanismus für NetScaler VPX-Instanzen in der OpenStack-Umgebung unterstützt.
Das Schlüsselpaar (öffentlicher Schlüssel und privater Schlüssel) wird generiert, bevor der Public Key Cryptographie-Mechanismus verwendet wird. Sie können verschiedene Mechanismen wie Horizon, Puttygen.exe für Windows und ssh-keygen
für die Linux-Umgebung verwenden, um das Schlüsselpaar zu generieren. Weitere Informationen zum Generieren von Schlüsselpaaren finden Sie in der Online-Dokumentation der jeweiligen Mechanismen.
Sobald ein Schlüsselpaar verfügbar ist, kopieren Sie den privaten Schlüssel an einen sicheren Ort, auf den autorisierte Personen Zugriff haben. In OpenStack kann Public Key mit dem Boot-Befehl Horizon oder Nova auf einer VPX-Instanz bereitgestellt werden. Wenn eine VPX-Instanz mithilfe von OpenStack bereitgestellt wird, erkennt sie zuerst, dass die Instanz in einer OpenStack-Umgebung gestartet wird, indem sie eine bestimmte BIOS-Zeichenfolge liest. Diese Zeichenfolge ist OpenStack Foundation und für Red Hat Linux-Distributionen wird sie in /etc/nova/release gespeichert. Dies ist ein Standardmechanismus, der in allen OpenStack-Implementierungen verfügbar ist, die auf der KVM-Hypervisor-Plattform basieren. Das Laufwerk muss ein bestimmtes OpenStack-Label haben.
Wenn das Konfigurationslaufwerk erkannt wird, versucht die Instanz, die Netzwerkkonfiguration, die benutzerdefinierten Skripts und das SSH-Schlüsselpaar zu lesen, falls vorhanden.
Benutzer-Datendatei
Die NetScaler VPX-Instanz verwendet eine benutzerdefinierte OVF-Datei, auch Benutzerdatendatei genannt, um Netzwerkkonfiguration, benutzerdefinierte Skripts zu injizieren. Diese Datei wird als Teil des Konfigurationslaufwerks bereitgestellt. Hier ist ein Beispiel für eine benutzerdefinierte OVF-Datei.
```
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Environment xmlns:oe="http://schemas.dmtf.org/ovf/environment/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
oe:id=""
xmlns="http://schemas.dmtf.org/ovf/environment/1"
xmlns:cs="http://schemas.citrix.com/openstack">
<PlatformSection>
<Kind></Kind>
<Version>2016.1</Version>
<Vendor>VPX</Vendor>
<Locale>en</Locale>
</PlatformSection>
<PropertySection>
<Property oe:key="com.citrix.netscaler.ovf.version" oe:value="1.0"/>
<Property oe:key="com.citrix.netscaler.platform" oe:value="NSVPX"/>
<Property oe:key="com.citrix.netscaler.orch_env" oe:value="openstack-orch-env"/>
<Property oe:key="com.citrix.netscaler.mgmt.ip" oe:value="10.1.2.22"/>
<Property oe:key="com.citrix.netscaler.mgmt.netmask" oe:value="255.255.255.0"/>
<Property oe:key="com.citrix.netscaler.mgmt.gateway" oe:value="10.1.2.1"/>
</PropertySection>
<cs:ScriptSection>
<cs:Version>1.0</cs:Version>
<ScriptSettingSection xmlns="http://schemas.citrix.com/openstack" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Scripts>
<Script>
<Type>shell</Type>
<Parameter>X Y</Parameter>
<Parameter>Z</Parameter>
<BootScript>before</BootScript>
<Text>
#!/bin/bash
echo "Hi, how are you" $1 $2 >> /var/sample.txt
</Text>
</Script>
<Script>
<Type>python</Type>
<BootScript>after</BootScript>
<Text>
#!/bin/python
print("Hello");
</Text>
</Script>
<Script>
<Type>perl</Type>
<BootScript>before</BootScript>
<Text>
!/usr/bin/perl
my $name = "VPX";
print "Hello, World $name !\n" ;
</Text>
</Script>
<Script>
<Type>nscli</Type>
<BootScript>after</BootScript>
<Text>
add vlan 33
bind vlan 33 -ifnum 1/2
</Text>
</Script>
</Scripts>
</ScriptSettingSection>
</cs:ScriptSection>
</Environment>
<!--NeedCopy--> ``` In der OVF-Datei vor "PropertySection" wird für die NetScaler-Netzwerkkonfiguration verwendet, während sie zum Einschließen aller Skripts verwendet \<cs:ScriptSection> wird. \</Scripts> Tags werden verwendet, um alle Skripts zusammen zu bündeln. Jedes Skript ist zwischen \<Script> \</Script> Tags definiert. Jedes Skript-Tag hat folgende Felder/Tags:
a) <Type>: Gibt den Wert für den Skripttyp an. Mögliche Werte: Shell/Perl/Python/NSLCI (für NetScaler CLI-Skripts)
b) <Parameter>: Stellt Parameter für das Skript bereit. Jedes Skript kann mehrere <Parameter> Tags haben.
c) <BootScript>: Gibt den Skriptausführungspunkt an. Mögliche Werte für dieses Tag: vorher/nachher. “before” gibt an, dass das Skript ausgeführt wird, bevor PE auftaucht. “after” gibt an, dass das Skript ausgeführt wird, nachdem PE angezeigt wird.
d) <Text>: Fügt den Inhalt eines Skripts ein.
Hinweis:
Derzeit kümmert sich die VPX-Instanz nicht um die Bereinigung von Skripten. Als Administrator müssen Sie die Gültigkeit des Skripts überprüfen.
Nicht alle Abschnitte müssen vorhanden sein. Verwenden Sie eine leere “PropertySection”, um nur Skripts zu definieren, die beim ersten Start oder einer leeren Ausführung ausgeführt werden
Nachdem die erforderlichen Abschnitte der OVF-Datei (Benutzerdatendatei) ausgefüllt wurden, verwenden Sie diese Datei, um die VPX-Instanz bereitzustellen.
Netzwerkkonfiguration
Im Rahmen der Netzwerkkonfiguration lautet die VPX-Instanz:
- Verwaltungs-IP-Adresse
- Netzwerkmaske
- Standard-Gateway
Nachdem die Parameter erfolgreich gelesen wurden, werden sie in der NetScaler Konfiguration aufgefüllt, damit die Instanz remote verwaltet werden kann. Wenn die Parameter nicht erfolgreich gelesen werden oder das Konfigurationslaufwerk nicht verfügbar ist, wechselt die Instanz zum Standardverhalten:
- Die Instanz versucht, die IP-Adressinformationen von DHCP abzurufen.
- Wenn DHCP ausfällt oder Times-Out ausfällt, wird die Instanz mit der Standardnetzwerkkonfiguration (192.168.100.1/16) erstellt.
Kundenskript
Die VPX-Instanz erlaubt es, während der ersten Bereitstellung ein benutzerdefiniertes Skript auszuführen. Die Appliance unterstützt Skripts vom Typ Shell, Perl, Python und NetScaler CLI-Befehle.
SSH-Schlüsselpaar-Authentifizierung
Die VPX-Instanz kopiert den öffentlichen Schlüssel, der im Konfigurationslaufwerk als Teil der Instanzmeta-Daten verfügbar ist, in die Datei authorized_keys. Dadurch kann der Benutzer mit dem privaten Schlüssel auf die Instanz zugreifen.
Hinweis:
Wenn ein SSH-Schlüssel angegeben wird, funktionieren die Standardanmeldeinformationen (nsroot/nsroot) nicht mehr. Wenn ein kennwortbasierter Zugriff erforderlich ist, melden Sie sich mit dem entsprechenden privaten SSH-Schlüssel an und legen Sie manuell ein Kennwort fest.
Voraussetzungen
Bevor Sie eine VPX-Instanz in der OpenStack-Umgebung bereitstellen, extrahieren Sie die Datei .qcow2
aus der TGZ-Datei und bauen Sie
Ein OpenStack-Bild aus dem qcow2-Image. Führen Sie folgende Schritte aus:
-
Extrahieren Sie die
.qcow2
Datei aus der.tqz
Datei, indem Sie den folgenden Befehl eingebentar xvzf <TAR file> tar xvzf <NSVPX-KVM-12.0-26.2_nc.tgz> NSVPX-KVM.xml NSVPX-KVM-12.0-26.2_nc.qcow2
-
Erstellen Sie ein OpenStack-Image mit der in Schritt 1 extrahierten
.qcoz2
Datei, indem Sie den folgenden Befehl eingeben.openstack image create --container-format bare --property hw_disk_bus=ide --disk-format qcow2 --file <path to qcow2 file> --public <name of the OpenStack image> glance image-create --name="NS-VPX-12-0-26-2" --property hw_disk_bus=ide --ispublic= true --container-format=bare --disk-format=qcow2< NSVPX-KVM-12.0-26.2_nc.qcow2
Abbildung 1: Die folgende Abbildung enthält eine Beispielausgabe für den Befehl glance image-create.
Provisioning einer VPX-Instanz
Sie können eine VPX-Instanz auf zwei Arten bereitstellen, indem Sie eine der folgenden Optionen verwenden:
- Horizon (OpenStack-Dashboard)
- Nova-Startbefehl (OpenStack CLI)
Bereitstellen einer VPX-Instanz mit dem OpenStack-Dashboard
Gehen Sie folgendermaßen vor, um die VPX-Instanz mithilfe von Horizon bereitzustellen:
- Melden Sie sich beim OpenStack-Dashboard an.
- Wählen Sie im Projektfenster auf der linken Seite des Dashboards die Option Instanzenaus.
-
Klicken Sie im Instanzen Bedienfeld auf Instanz starten, um den Instanzentart-Assistenten zu öffnen.
-
Geben Sie im Assistenten zum Starten von Instanz die folgenden Details ein:
- Instanzname
- Instanzgeschmack
- Instanzanzahl
- Instanz-Boot-Quelle
- Imagename
-
Stellen Sie ein neues Schlüsselpaar oder ein vorhandenes Schlüsselpaar über Horizon bereit, indem Sie die folgenden Schritte ausführen:
a) Wenn Sie kein vorhandenes Schlüsselpaar haben, erstellen Sie den Schlüssel mithilfe vorhandener Mechanismen. Wenn Sie einen vorhandenen Schlüssel haben, überspringen Sie diesen Schritt.
b) Kopieren Sie den Inhalt des öffentlichen Schlüssels.
c) Gehen Sie zu Horizon > Instanzen > Neue Instanzen erstellen.
d) Klicken Sie auf Zugriff und Sicherheit.
e) Klicken Sie auf das + Zeichen neben dem Dropdownmenü Schlüsselpaar und geben Sie Werte für die angezeigten Parameter an.
f) Fügen Sie den Inhalt des öffentlichen Schlüssels in das Feld Öffentlicher Schlüssel ein, geben Sie dem Schlüssel einen Namen und klicken Sie auf Schlüsselpaar importieren.
-
Klicken Sie im Assistenten auf die Registerkarte Post-Creation. Fügen Sie im Anpassungsskript den Inhalt der Benutzerdatendatei hinzu. Die Benutzerdatendatei enthält die IP-Adresse, Netmask- und Gateway-Details sowie Kundenskripte der VPX-Instanz.
-
Nachdem ein Schlüsselpaar ausgewählt oder importiert wurde, aktivieren Sie die Option config-drive und klicken Sie auf Starten.
Provisioning der VPX-Instanz mi OpenStack CLI
Folgen Sie diesen Schritten zum Provisioning einer VPX-Instanz mit OpenStack CLI.
-
Um ein Image aus qcow2 zu erstellen, geben Sie den folgenden Befehl ein:
openstack image create --container-format bare --property hw_disk_bus=ide --diskformat qcow2 --file NSVPX-OpenStack.qcow2 --public VPX-ToT-Image
-
Um ein Image zum Erstellen einer Instanz auszuwählen, geben Sie den folgenden Befehl ein:
openstack image list | more
-
Um eine Instanz eines bestimmten Flavor zu erstellen, geben Sie den folgenden Befehl ein, um eine Flavor-ID/Name von aus einer Liste auszuwählen:
openstack flavor list
-
Um eine Netzwerkkarte an ein bestimmtes Netzwerk anzuhängen, geben Sie den folgenden Befehl ein, um eine Netzwerk-ID aus einer Netzwerkliste auszuwählen:
openstack network list
-
Um eine Instanz zu erstellen, geben Sie den folgenden Befehl ein:
openstack server create --flavor FLAVOR_ID --image IMAGE_ID --key-name KEY_NAME --user-data USER_DATA_FILE_PATH --config-drive True --nic net-id=net-uuid INSTANCE_NAME openstack server create --image VPX-ToT-Image --flavor m1.medium --user-data ovf.xml --config-drive True --nic net-id=2734911b-ee2b-48d0-a1b6-3efd44b761b9 VPX-ToT
Abbildung 2: Die folgende Abbildung zeigt eine Beispielausgabe.