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 paire de clés SSH est pris en charge pour les instances Citrix ADC VPX sur l’environnement OpenStack.

La paire de clés (clé publique et clé privée) doit être 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 endroit sécurisé auquel les personnes autorisées auront accès. Dans OpenStack, la clé publique peut être déployée sur une instance VPX à l’aide de la commande de démarrage Horizon ou Nova. 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 plate-forme d’Hypervisor KVM. Le lecteur doit avoir 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 userdata, 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>
```

Dans le fichier OVF ci-dessus, « PropertySection » est utilisé pour la configuration réseau NetScaler tout en <cs:ScriptSection> étant utilisé pour entourer tous les scripts. <Scripts></Scripts> sont utilisées pour regrouper tous les scripts ensemble. Chaque script est défini entre des balises <Script> </Script>. 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. « before » spécifie que le script sera exécuté avant que PE arrive. « after » spécifie que le script sera exécuté après que PE arrive.

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 vide pour définir uniquement la configuration réseau.

Une fois les sections requises du fichier OVF (fichier userdata) 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 temporisation, l’instance affiche la configuration réseau par défaut (192.168.100.1/16).

Script client

L’instance VPX permet d’exécuter un script personnalisé lors du Provisioning 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 basé sur un mot de passe est nécessaire, connectez-vous avec la clé privée SSH correspondante et définissez manuellement un mot de passe.

Avant de commencer

Avant de provisionner une instance VPX sur l’environnement OpenStack, extrayez le fichier .qcow2 du fichier .tgz et construisez

une image OpenStack à partir de l’image qcow2. Suivez ces étapes :

  1. Extrayez le fichier. qcow2 du fichier .tqz 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 fichier .qcoz2 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.

    image localisée

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.

    image localisée

  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

    image localisée

  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.

    image localisée

  6. Cliquez sur l’onglet Création de publications dans l’Assistant. Dans Script de personnalisation, ajoutez le contenu du fichier userdata. Le fichier userdata contient l’adresse IP, les détails Netmask et Gateway, 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.

    image localisée

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.

image localisée