Citrix ADC

Bereitstellen der Citrix ADC VPX Instanz mithilfe von OpenStack

Sie können eine Citrix ADC VPX-Instanz in einer OpenStack-Umgebung bereitstellen, indem Sie entweder den Nova-Startbefehl (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 Citrix ADC Appliance ist der Standardauthentifizierungsmechanismus kennwortbasiert. Jetzt wird der SSH-Schlüsselpaar-Authentifizierungsmechanismus für Citrix ADC VPX-Instanzen in OpenStack-Umgebung unterstützt.

Das Schlüsselpaar (öffentlicher Schlüssel und privater Schlüssel) muss erstellt werden, bevor der Public Key Cryptography Mechanismus verwendet wird. Sie können verschiedene Mechanismen wie Horizon, PuttyGen.exe für Windows und ssh-keygen für 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 der öffentliche Schlüssel auf einer VPX-Instanz mithilfe des Horizont- oder Nova-Startbefehls 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 sollte ein bestimmtes OpenStack-Label haben.

Wenn das Konfigurationslaufwerk erkannt wird, versucht die Instanz, die Netzwerkkonfiguration, die benutzerdefinierten Skripte und das SSH-Schlüsselpaar zu lesen, falls vorhanden.

Benutzerdatendatei

Die Citrix ADC VPX-Instanz verwendet eine benutzerdefinierte OVF-Datei, die auch als Benutzerdatendatei bezeichnet wird, um die 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>
```

In der OVF-Datei oben wird PropertySection für NetScaler Netzwerkkonfiguration verwendet, während verwendet <cs:ScriptSection> wird, um alle Skripte zu umschließen. <Scripts></Scripts> -Tags werden verwendet, um alle Skripte zusammen zu bündeln. Jedes Skript ist zwischen <Script> </Script>-Tags. 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-Skripte)

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: vor/nach. before gibt an, dass das Skript ausgeführt wird, bevor PE auftaucht. after gibt an, dass das Skript ausgeführt wird, nachdem PE gestartet 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 sollten Sie die Gültigkeit des Skripts überprüfen.

Nicht alle Abschnitte müssen vorhanden sein. Verwenden Sie einen leeren PropertySection, um nur Skripts zu definieren, die beim ersten Start ausgeführt werden sollen, oder einen leeren Abschnitt , um nur Netzwerkkonfiguration zu definieren.

Nachdem die erforderlichen Abschnitte der OVF-Datei (Benutzerdatendatei) ausgefüllt wurden, verwenden Sie diese Datei, um die VPX-Instanz bereitzustellen.

Netzwerkkonfiguration

Als Teil der Netzwerkkonfiguration liest die VPX-Instanz Folgendes:

  • 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 fehlschlägt oder Timeout ausfällt, wird die Instanz mit der Standardnetzwerkkonfiguration (192.168.100.1/16) angezeigt.

Kundenskript

Die VPX-Instanz ermöglicht die Ausführung eines benutzerdefinierten Skripts während der anfänglichen Provisioning. Die Appliance unterstützt Skripts vom Typ Shell, Perl, Python und Citrix ADC 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 bereitgestellt 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.

Bevor Sie beginnen

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

Ein OpenStack-Image aus dem qcow2-Image. Gehen Sie folgendermaßen vor:

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

    tar xvzf <TAR file>
    <NSVPX-KVM-12.0-26.2_nc.tgz>tar xvzf
    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=blank —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.

    lokalisiertes Bild

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:

  1. Melden Sie sich beim 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.

    lokalisiertes Bild

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

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

    lokalisiertes Bild

  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 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 Dropdown-Menü 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.

    lokalisiertes Bild

  6. Klicken Sie im Assistenten auf die Registerkarte Post-Creation. Fügen Sie unter 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.

    lokalisiertes Bild

Provisioning der VPX-Instanz mi OpenStack CLI

Folgen Sie diesen Schritten zum Provisioning einer VPX-Instanz mit OpenStack CLI.

  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 Flavor zu erstellen, geben Sie den folgenden Befehl ein, um eine Flavor-ID/Name von aus einer Liste auszuwählen:

    openstack flavor list

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

  5. Um eine Instanz zu erstellen, geben Sie den folgenden Befehl ein:

    OpenStack-Server erstellen —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 erstellen —image VPX-tot-image —flavm1.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.

lokalisiertes Bild

Bereitstellen der Citrix ADC VPX Instanz mithilfe von OpenStack