ADC

Provisionner l’instance Citrix ADC VPX à l’aide d’OpenStack

Vous pouvez provisionner une instance Citrix ADC VPX dans un environnement OpenStack à l’aide de la commande Nova boot (CLI OpenStack) ou Horizon (tableau de bord OpenStack).

Le provisioning d’une instance VPX implique éventuellement l’utilisation de données provenant du lecteur de configuration. Le lecteur de configuration est un lecteur de configuration spécial qui se fixe à l’instance en tant que périphérique de CD-ROM lorsqu’il démarre. Ce lecteur de configuration peut être utilisé pour transmettre la configuration réseau telle que l’adresse IP de gestion, le masque réseau, la Gateway par défaut et pour injecter des scripts client.

Dans une appliance Citrix ADC, le mécanisme d’authentification par défaut est basé sur un mot de passe. Désormais, le mécanisme d’authentification par paires de clés SSH est pris en charge pour les instances Citrix ADC VPX dans l’environnement OpenStack.

La paire de clés (clé publique et clé privée) est générée avant d’utiliser le mécanisme de cryptographie à clé publique. Vous pouvez utiliser différents mécanismes, tels que Horizon, Puttygen.exe pour Windows et ssh-keygen pour l’environnement Linux, pour générer la paire de clés. Reportez-vous à la documentation en ligne des mécanismes respectifs pour plus d’informations sur la génération de paires de clés.

Une fois qu’une paire de clés est disponible, copiez la clé privée dans un emplacement sécurisé auquel les personnes autorisées ont accès. Dans OpenStack, la clé publique peut être déployée sur une instance VPX à l’aide de la commande Horizon ou Nova boot. Lorsqu’une instance VPX est provisionnée à l’aide d’OpenStack, elle détecte d’abord que l’instance démarre dans un environnement OpenStack en lisant une chaîne BIOS spécifique. Cette chaîne est « OpenStack Foundation » et pour les distributions Red Hat Linux, elle est stockée dans /etc/nova/release. Il s’agit d’un mécanisme standard disponible dans toutes les implémentations OpenStack basées sur la plateforme d’hyperviseur KVM. Le disque doit comporter une étiquette OpenStack spécifique.

Si le lecteur de configuration est détecté, l’instance tente de lire la configuration réseau, les scripts personnalisés et la paire de clés SSH si elle est fournie.

Fichier de données utilisateur

L’instance Citrix ADC VPX utilise un fichier OVF personnalisé, également connu sous le nom de fichier de données utilisateur, pour injecter des scripts personnalisés de configuration réseau. Ce fichier est fourni dans le cadre du lecteur de configuration. Voici un exemple de fichier OVF personnalisé.

```
<?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--> ```

Dans le fichier OVF précédant « PropertySection » est utilisé pour la configuration réseau NetScaler alors qu’ <cs:ScriptSection> il est utilisé pour enfermer tous les scripts. <Scripts></Scripts> sont utilisées pour regrouper tous les scripts ensemble. Chaque script est défini entre les <Script> </Script> balises. Chaque balise de script comporte les champs/balises suivants :

a) <Type> : Spécifie la valeur du type de script. Valeurs possibles : Shell/Perl/Python/NSLCI (pour les scripts CLI NetScaler)

b) <Parameter> : Fournit des paramètres au script. Chaque script peut avoir plusieurs <Parameter> balises.

c) <BootScript> : Spécifie le point d’exécution du script. Valeurs possibles pour cette balise : avant/après. « avant » indique que le script est exécuté avant l’apparition de PE. « after » indique que le script sera exécuté après l’arrivée de PE.

d) <Text> : Colle le contenu d’un script.

Remarque

Actuellement, l’instance VPX ne prend pas en charge la désinfection des scripts. En tant qu’administrateur, vous devez vérifier la validité du script.

Toutes les sections ne doivent pas être présentes. Utilisez une « PropertySection » vide pour définir uniquement les scripts à exécuter au premier démarrage ou une fenêtre vide pour définir uniquement la configuration réseau.

Une fois que les sections requises du fichier OVF (fichier de données utilisateur) sont remplies, utilisez ce fichier pour provisionner l’instance VPX.

Configuration réseau

Dans le cadre de la configuration réseau, l’instance VPX lit :

  • Adresse IP de gestion
  • Masque réseau
  • Gateway par défaut

Une fois les paramètres lus avec succès, ils sont renseignés dans la configuration NetScaler, afin de permettre la gestion à distance de l’instance. Si les paramètres ne sont pas lus correctement ou si le lecteur de configuration n’est pas disponible, l’instance passe au comportement par défaut, qui est :

  • L’instance tente de récupérer les informations d’adresse IP à partir de DHCP.
  • Si DHCP échoue ou s’arrête, l’instance présente la configuration réseau par défaut (192.168.100.1/16).

Script client

L’instance VPX permet d’exécuter un script personnalisé pendant le provisionnement initial. L’appliance prend en charge les scripts de type Shell, Perl, Python et Citrix ADC CLI.

Authentification par paire de clés SSH

L’instance VPX copie la clé publique, disponible dans le lecteur de configuration dans le cadre des métadonnées d’instance, dans son fichier « authorized_keys ». Cela permet à l’utilisateur d’accéder à l’instance avec une clé privée.

Remarque

Lorsqu’une clé SSH est fournie, les informations d’identification par défaut (nsroot/nsroot) ne fonctionnent plus. Si un accès par mot de passe est nécessaire, ouvrez une session avec la clé privée SSH respective et définissez manuellement un mot de passe.

Avant de commencer

Avant de provisionner une instance VPX sur un environnement OpenStack, extrayez le .qcow2 fichier du fichier .tgz et générez

Une image OpenStack de l’image qcow2. Procédez comme suit :

  1. Extrayez le .qcow2 fichier du .tqz fichier en tapant la commande suivante

    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. Créez une image OpenStack à l’aide du .qcoz2 fichier extrait à l’étape 1 en tapant la commande suivante.

    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
    

    Figure 1 : L’illustration suivante fournit un exemple de sortie pour la commande glance image-create.

    Commande de création d'image OpenStack

Provisionnement de l’instance VPX

Vous pouvez provisionner une instance VPX de deux façons en utilisant l’une des options suivantes :

  • Horizon (tableau de bord OpenStack)
  • Commande de démarrage Nova (CLI OpenStack)

Provisionner une instance VPX à l’aide du tableau de bord OpenStack

Procédez comme suit pour provisionner l’instance VPX à l’aide d’Horizon :

  1. Connectez-vous au tableau de bord OpenStack.
  2. Dans le panneau Projet situé à gauche du tableau de bord, sélectionnez Instances.
  3. Dans le panneau Instances, cliquez sur Lancer une instance pour ouvrir l’Assistant Lancement d’instance.

    Assistant de lancement d'instance

  4. Dans l’assistant de lancement d’instance, entrez les détails, tels que :

    1. Nom de l’instance
    2. Saveur d’instance
    3. Nombre d’instances
    4. Source de démarrage d’instance
    5. Nom de l’image

    Détails de l'assistant de lancement

  5. Déployez une nouvelle paire de clés ou une paire de clés existante via Horizon en procédant comme suit :

    a) Si vous n’avez pas de paire de clés existante, créez la clé à l’aide des mécanismes existants. Si vous avez une clé existante, ignorez cette étape.

    b) Copier le contenu de la clé publique.

    c) Accédez à Horizon > Instances > Créer de nouvelles instances.

    d) Cliquez sur Accès et sécurité.

    e) Cliquez sur le signe+ en regard du menu déroulant Paire de clés et indiquez les valeurs des paramètres affichés.

    f) Collez le contenu de la clé publique dans la zone Clé publique, donnez un nom à la clé et cliquez sur Importer la paire de clés .

    Importer une paire de clés OpenStack

  6. Cliquez sur l’onglet Création de publications dans l’Assistant. Dans le script de personnalisation, ajoutez le contenu du fichier de données utilisateur. Le fichier de données utilisateur contient l’adresse IP, les détails du masque réseau et de la passerelle, ainsi que les scripts client de l’instance VPX.

  7. Une fois qu’une paire de clés est sélectionnée ou importée, cochez l’option config-drive et cliquez sur Launch.

    Instance de lancement

Provisionner l’instance VPX à l’aide de l’interface de ligne de commande OpenStack

Procédez comme suit pour provisionner une instance VPX à l’aide de l’interface de ligne de commande OpenStack.

  1. Pour créer une image à partir de qcow2, tapez la commande suivante :

    openstack image create --container-format bare --property hw_disk_bus=ide --diskformat qcow2 --file NSVPX-OpenStack.qcow2 --public VPX-ToT-Image

  2. Pour sélectionner une image pour créer une instance, tapez la commande suivante :

    openstack image list | more

  3. Pour créer une instance d’une saveur particulière, tapez la commande suivante pour choisir un ID de saveur dans une liste :

    openstack flavor list

  4. Pour attacher une carte réseau à un réseau particulier, tapez la commande suivante pour choisir un ID réseau dans une liste réseau :

    openstack network list

  5. Pour créer une instance, tapez la commande suivante :

    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
    

Figure 2 : L’illustration suivante fournit un exemple de sortie.

OpenStack fournit une CLI

Provisionner l’instance Citrix ADC VPX à l’aide d’OpenStack