ADC

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 angeschlossen wird. Dieses Konfigurationslaufwerk kann verwendet werden, um Netzwerkkonfigurationen wie die Management-IP-Adresse, die Netzwerkmaske und das Standard-Gateway zu übergeben und Kundenskripte einzufügen.

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 wird “PropertySection” für die NetScaler-Netzwerkkonfiguration verwendet, während <cs:ScriptSection> zum Umschließen aller Skripts verwendet wird. Die Tags <Scripts></Scripts> werden verwendet, um alle Skripts zu bündeln. Jedes Skript ist zwischen den Tags <Script> </Script> 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 Ausführungspunkt des Skripts 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 sollen, 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 lautet die VPX-Instanz:

  • Verwaltungs-IP-Adresse
  • Netzwerkmaske
  • Standard-Gateway

Nachdem die Parameter erfolgreich gelesen wurden, werden sie in die NetScaler-Konfiguration eingetragen, um die Instanz remote verwalten zu können. Wenn die Parameter nicht erfolgreich gelesen werden oder das Konfigurationslaufwerk nicht verfügbar ist, wechselt die Instanz zum Standardverhalten, das wie folgt lautet:

  • 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 Instanzmetadaten verfügbar ist, in ihre Datei „authorized_keys“. Dadurch kann der Benutzer mit einem 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 die folgenden Schritte aus:

  1. Extrahieren Sie die .qcow2 Datei aus der .tqz Datei, 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 .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.

    Image-Befehl erstellen OpenStack

Provisioning einer VPX-Instanz

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

  • Horizon (OpenStack-Dashboard)
  • Nova-Startbefehl (OpenStack CLI)

Stellen Sie eine VPX-Instanz mithilfe des OpenStack-Dashboards bereit

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

  1. Melden Sie sich im OpenStack-Dashboard an.
  2. Wählen Sie im Projektfenster auf der linken Seite des Dashboards die Option Instanzenaus.
  3. Klicken Sie im Instanzen Bedienfeld auf Instanz starten, um den Instanzentart-Assistenten zu öffnen.

    Assistent zum Starten von Instanzen

  4. Geben Sie im Assistenten zum Starten von Instanz die folgenden Details ein:

    1. Instanzname
    2. Instanzgeschmack
    3. Anzahl der Instanzen
    4. Instance-Startquelle
    5. Imagename

    Details des Assistenten starten

  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 bestehendes Schlüsselpaar haben, erstellen Sie den Schlüssel, indem Sie alle vorhandenen Mechanismen verwenden. 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 > Instances > Create New Instances.

    d) Klicken Sie auf Access & Security.

    e) Klicken Sie auf das Pluszeichen neben dem Dropdownmenü 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.

    Keypair importieren OpenStack

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

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

    Instanz starten

Provisioning der VPX-Instanz mi OpenStack CLI

Gehen Sie wie folgt vor, um mithilfe der OpenStack-CLI eine VPX-Instanz 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 für die Erstellung einer Instanz auszuwählen, geben Sie den folgenden Befehl ein:

    openstack image list | more

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

    openstack flavor list

  4. Um eine Netzwerkkarte an ein bestimmtes Netzwerk anzuschließen, geben Sie den folgenden Befehl ein, um eine Netzwerk-ID aus einer Netzwerkliste auszuwählen:

    openstack network list

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

OpenStack stellen CLI zur Verfügung

Bereitstellen der NetScaler VPX Instanz mithilfe von OpenStack