NetScaler VPX

Bereitstellen der NetScaler VPX-Instanz mithilfe von OpenStack

Sie können eine NetScaler VPX-Instanz in einer OpenStack-Umgebung entweder mithilfe des Nova boot-Befehls (OpenStack-CLI) oder Horizon (OpenStack-Dashboard) bereitstellen.

Die Bereitstellung einer VPX-Instanz beinhaltet optional die Verwendung von Daten vom Konfigurationslaufwerk (Config Drive). Ein Konfigurationslaufwerk ist ein spezielles Konfigurationslaufwerk, das beim Booten als CD-ROM-Gerät an die Instanz angehängt wird. Dieses Konfigurationslaufwerk kann verwendet werden, um Netzwerkkonfigurationen wie Management-IP-Adresse, Netzmaske, Standard-Gateway zu übergeben und Kundenskripte einzuschleusen.

In einer NetScaler-Appliance ist der Standard-Authentifizierungsmechanismus passwortbasiert. Nun 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-Kryptographie-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 zur Generierung 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 der öffentliche Schlüssel auf einer VPX-Instanz mithilfe des Horizon- oder Nova boot-Befehls bereitgestellt werden. Wenn eine VPX-Instanz mithilfe von OpenStack bereitgestellt wird, erkennt sie zuerst, dass die Instanz in einer OpenStack-Umgebung bootet, indem sie eine bestimmte BIOS-Zeichenfolge liest. Diese Zeichenfolge ist „OpenStack Foundation“ und wird für Red Hat Linux-Distributionen in /etc/nova/release gespeichert. Dies ist ein Standardmechanismus, der in allen OpenStack-Implementierungen auf Basis der KVM-Hypervisor-Plattform verfügbar ist. Das Laufwerk muss ein spezifisches OpenStack-Label haben.

Wenn das Konfigurationslaufwerk erkannt wird, versucht die Instanz, die Netzwerkkonfiguration, benutzerdefinierte Skripte und das SSH-Schlüsselpaar zu lesen, falls diese bereitgestellt wurden.

Benutzerdatendatei

Die NetScaler VPX-Instanz verwendet eine angepasste OVF-Datei, auch bekannt als Benutzerdatendatei, um Netzwerkkonfigurationen und benutzerdefinierte Skripte einzuschleusen. Diese Datei wird als Teil des Konfigurationslaufwerks bereitgestellt. Hier ist ein Beispiel für eine angepasste 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 wird die vorangehende „PropertySection“ für die NetScaler-Netzwerkkonfiguration verwendet, während <cs:ScriptSection> verwendet wird, um alle Skripte einzuschließen. Die Tags <Scripts></Scripts> werden verwendet, um alle Skripte zusammenzufassen. Jedes Skript wird zwischen den Tags <Script> </Script> definiert. Jeder Skript-Tag hat die folgenden Felder/Tags:

a) <Type>: Gibt den Wert für den Skripttyp an. Mögliche Werte: Shell/Perl/Python/NSLCI (für NetScaler CLI-Skripte)

b) <Parameter>: Stellt Parameter für das Skript bereit. Jedes Skript kann mehrere <Parameter>-Tags haben.

c) <BootScript>: Gibt den Ausführungspunkt des Skripts an. Mögliche Werte für diesen Tag: before/after. „before“ gibt an, dass das Skript ausgeführt wird, bevor PE hochfährt. „after“ gibt an, dass das Skript ausgeführt wird, nachdem PE hochgefahren ist.

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.

Es müssen nicht alle Abschnitte vorhanden sein. Verwenden Sie eine leere “PropertySection”, um nur Skripte zu definieren, die beim ersten Start ausgeführt werden sollen, oder eine leere <cs:ScriptSection>, um nur die Netzwerkkonfiguration zu definieren.

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 liest die VPX-Instanz Folgendes:

  • Management-IP-Adresse
  • Netzwerkmaske
  • Standard-Gateway

Nachdem die Parameter erfolgreich gelesen wurden, werden sie in die NetScaler®-Konfiguration eingetragen, um die Remote-Verwaltung der Instanz zu ermöglichen. Wenn die Parameter nicht erfolgreich gelesen werden oder das Konfigurationslaufwerk nicht verfügbar ist, wechselt die Instanz zum Standardverhalten, das wie folgt aussieht:

  • Die Instanz versucht, die IP-Adressinformationen von DHCP abzurufen.
  • Wenn DHCP fehlschlägt oder ein Timeout auftritt, startet die Instanz mit der Standard-Netzwerkkonfiguration (192.168.100.1/16).

Benutzerdefiniertes Skript

Die VPX-Instanz ermöglicht die Ausführung eines benutzerdefinierten Skripts während der Erstbereitstellung. Die Appliance unterstützt Skripte 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 Instanz-Metadaten verfügbar ist, in ihre Datei “authorized_keys”. Dies ermöglicht dem Benutzer den Zugriff auf die Instanz mit dem privaten Schlüssel.

Hinweis:

Wenn ein SSH-Schlüssel bereitgestellt wird, funktionieren die Standardanmeldeinformationen (nsroot/nsroot) nicht mehr. Falls ein passwortbasierter Zugriff erforderlich ist, melden Sie sich mit dem entsprechenden privaten SSH-Schlüssel an und legen Sie manuell ein Passwort fest.

Bevor Sie beginnen

Bevor Sie eine VPX-Instanz in einer OpenStack-Umgebung bereitstellen, extrahieren Sie die Datei .qcow2 aus der .tgz-Datei und erstellen Sie

Ein OpenStack-Image aus dem qcow2-Image. Gehen Sie wie folgt vor:

  1. Extrahieren Sie die Datei .qcow2 aus der Datei .tqz, indem Sie den folgenden Befehl eingeben

    tar xvzf <TAR file>
    tar xvzf <NSVPX-KVM-12.0-26.2_nc.tgz>
    NSVPX-KVM.xml
    NSVPX-KVM-12.0-26.2_nc.qcow2
    
  2. Erstellen Sie ein OpenStack-Image mit der in Schritt 1 extrahierten Datei .qcoz2, 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 zeigt eine Beispielausgabe für den Befehl glance image-create.

    Image-Erstellungsbefehl OpenStack

Bereitstellen der VPX-Instanz

Sie können eine VPX-Instanz auf zwei Arten bereitstellen, indem Sie eine der folgenden Optionen verwenden:

  • Horizon (OpenStack-Dashboard)
  • Nova-Boot-Befehl (OpenStack-CLI)

Bereitstellen einer VPX-Instanz über das OpenStack-Dashboard

Gehen Sie wie folgt vor, um die VPX-Instanz mit Horizon bereitzustellen:

  1. Melden Sie sich beim OpenStack-Dashboard an.
  2. Wählen Sie im Bereich „Projekt“ auf der linken Seite des Dashboards Instanzen aus.
  3. Klicken Sie im Bereich „Instanzen“ auf Instanz starten, um den Assistenten zum Starten von Instanzen zu öffnen.

    Assistent zum Starten von Instanzen

  4. Füllen Sie im Assistenten zum Starten von Instanzen die Details aus, z. B.:

    1. Instanzname
    2. Instanz-Flavor
    3. Instanzanzahl
    4. Instanz-Boot-Quelle
    5. Image-Name

    Details des Startassistenten

  5. 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 mit einem beliebigen vorhandenen Mechanismus. 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 & Sicherheit.

    e) Klicken Sie auf das +-Zeichen neben dem Dropdown-Menü Schlüsselpaar und geben Sie Werte für die angezeigten Parameter ein.

    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.

    Schlüsselpaar importieren OpenStack

  6. Klicken Sie im Assistenten auf die Registerkarte Nach der Erstellung. Fügen Sie im Anpassungsskript den Inhalt der Benutzerdatendatei hinzu. Die Benutzerdatendatei enthält die IP-Adresse, Netzmaske und Gateway-Details sowie Kundenskripte der VPX-Instanz.

  7. Nachdem ein Schlüsselpaar ausgewählt oder importiert wurde, aktivieren Sie die Option „config-drive“ und klicken Sie auf Starten.

    Instanz starten

Bereitstellen der VPX-Instanz mit OpenStack CLI

Führen Sie die folgenden Schritte aus, um eine VPX-Instanz mit OpenStack CLI bereitzustellen.

  1. 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

  2. Um ein Image zum Erstellen einer Instanz auszuwählen, geben Sie den folgenden Befehl ein:

    openstack image list | more

  3. Um eine Instanz eines bestimmten Flavors zu erstellen, geben Sie den folgenden Befehl ein, um eine Flavor-ID/einen Namen aus einer Liste auszuwählen:

    openstack flavor list

  4. Um eine NIC an ein bestimmtes Netzwerk anzuhängen, geben Sie den folgenden Befehl ein, um eine Netzwerk-ID aus einer Netzwerkliste auszuwählen:

    openstack network list

  5. Geben Sie zum Erstellen einer Instanz 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.

OpenStack Bereitstellungs-CLI

Bereitstellen der NetScaler VPX-Instanz mithilfe von OpenStack