5.3 Déploiement d'un conteneur OpenText eDirectory sur une instance de conteneur Microsoft Azure

OpenText eDirectory prend en charge le déploiement de conteneurs OpenText eDirectory sur une instance de conteneur Microsoft Azure. Le processus de déploiement est simple et rapide. Le conteneur OpenText eDirectory est distribué dans le registre en tant qu'image Docker autonome et capable de s'exécuter seule. Cette section vous guide tout au long du processus de déploiement de l'image Docker d'OpenText eDirectory sous Azure.

5.3.1 Liste de contrôle pour le déploiement du conteneur

Pour configurer le conteneur Azure pour le déploiement, nous vous recommandons d'effectuer les étapes de la liste de contrôle suivante :

Éléments de la liste de vérifications

  1. Vous devez créer un registre de conteneurs Azure pour stocker et gérer l'image du conteneur Docker pour OpenText eDirectory. Connectez-vous au portail Azure sur https://portal.azure.com/ et suivez les étapes du processus Créer un registre de conteneurs Azure à l'aide du portail Azure pour créer un registre de conteneurs.

  1. Vous devez ensuite configurer un compte de stockage Azure. Ce compte stocke toutes vos données accessibles à partir de n'importe quel endroit dans le monde via HTTP ou HTTPS. Connectez-vous au portail Azure et suivez les étapes du processusCréer un compte de stockage pour créer un compte de stockage Azure.

  1. Après avoir créé le compte de stockage, créez un partage de fichiers Azure. Un système de fichiers partagé est requis pour permettre aux conteneurs d'accéder au système de fichiers, quelle que soit l'instance sur laquelle ils s'exécutent. Pour plus d'informations sur les considérations et le processus à suivre lors de la création d'un partage de fichiers Azure, consultez Créer un partage de fichiers Azure.

  1. Vous devez créer un réseau virtuel. Le service Réseau virtuel Azure permet à de nombreux types de ressources Azure, comme les machines virtuelles (VM) Azure, de communiquer en toute sécurité entre eux, avec Azure Internet et avec les réseaux locaux. Suivez les étapes du processus Création d'un réseau virtuel.

  1. Ensuite, distribuez l'image Docker d'OpenText eDirectory vers le registre des conteneurs. Pour plus d'informations, reportez-vous à la section Distribuez l'image Docker vers le registre de conteneurs Azure.

  1. Éditez et enregistrez le fichier YAML fourni avec le tarball d'image Docker pour OpenText eDirectory. Pour plus d'informations, reportez-vous à la section Édition du fichier de configuration YAML.

  1. Enfin, créez une instance de conteneur Azure à l'aide du fichier YAML. Pour plus d'informations, reportez-vous à la section Création d'une instance de conteneur Azure.

Distribuez l'image Docker vers le registre de conteneurs Azure

Pour distribuer l'image Docker dans le registre des conteneurs Azure :

  1. Téléchargez le tarball d'image Docker pour OpenText eDirectory à partir du portail Licence de logiciel et téléchargement.

  2. Désarchivez le build téléchargé, extrayez l'image Docker, puis chargez-la dans le registre Docker local à l'aide des commandes suivantes :

    tar -xvf eDirectory_93x_Container.tar.gz
    docker load --input eDirectory_93x/eDirectory_93x.tar.gz

    La commande de chargement de Docker charge l'image Docker nommée edirectory:9.3.x à partir de l'archive tar.

  3. Marquez l'image Docker avec le nom de votre registre à l'aide de la commande suivante :

    Docker tag edirectory:<image-id> <registry-name>.azurecr.io/<repository-name-tag>

    Où

    edirectory :<image-id> est 'ID d'image Docker local.

    <registry-name> est le nom de votre registre privé.

    <repository-name-tag> est la balise que vous voulez assigner à l'image Docker.

    Par exemple, docker tag edirectory:93x myazureregistry.azurecr.io/edir93

  4. Distribuez l'image Docker vers le registre à l'aide de la commande suivante :

    docker push <registry-name>.azurecr.io/<repository-name-tag>

    Où

    <registry-name> est le nom de votre registre privé.

    <repository-name-tag> est la balise que vous avez assignée à l'image Docker.

    Par exemple, docker push myazureregistry.azurecr.io/edir93x

Édition du fichier de configuration YAML

Un fichier YAML est un moyen simple et rapide de créer ou de mettre à jour un groupe de conteneurs. La commande az container create dans l'interface de ligne de commande Azure lit les configurations de groupe à partir d'un fichier YAML. Vous devez éditer et télécharger le fichier YAML fourni avec le tarball de l'image Docker pour OpenText eDirectory avant de créer une instance de conteneur Azure.

La section suivante présente le schéma d'un fichier YAML, y compris les commentaires (indiqués par le symbole #) qui mettent en surbrillance les propriétés des clés. Pour obtenir une description des propriétés de ce schéma, consultez la section Valeurs des propriétés.

name:  # Provide the name of the container group
apiVersion: '2019-12-01'
properties: # Properties of container group
  containers: # The containers within the container group
  - name: test-edir93 # Provide a name of container instance
    properties: # Properties of a container instance
      image: myazureregistry.azurecr.io/edir93 # Provide the name of the container image used to create the container instance
      command:
      - /start.sh #Not optional
      - 'new -t 93edir1 -n novell -a admin.novell -w xx -S server1 -i -B @1524 -o 1028 -O 1030 -L 1389 -l 1636 --configure-eba-now no' #Sample command 
      ports: # External-facing ports exposed on the instance, must also be set in group ipAddress property 
      - protocol: tcp
        port: 1030 #HTTPS port. Depends on the parameter provided in command for -O
      - protocol: tcp
        port: 1389 #LDAP port. Depends on the parameter provided in command for -L
      environmentVariables:
      - name: YAML_MODE #Mandatory variable. Required if yaml file is used for configuring edirectory
        value: '1'
      resources: # Minimum resource requirements of the instance
        requests:
          memoryInGB: 2
          cpu: 1.5
      volumeMounts: # Array of volume mounts for the instance
      - name: configvolume
        mountPath: /config #Mandatory. Do not change this path.
  imageRegistryCredentials: # Credentials to pull a private image
  - server: myazureregistry.azurecr.io #Provide the image registry server name
    username: myazureregistry #Provide the image registry username    password: xxxx #Provide the image registry password
  #restartPolicy: Never #Optional  
  ipAddress: # IP address configuration of container group
    ports:
    - protocol: tcp
      port: 1030 #HTTPS port. Depends on the parameter provided in command for -O
    - protocol: tcp
      port: 1389 #LDAP port. Depends on the parameter provided in command for -L
    type: Private
  networkProfile: # Virtual network profile for container group
    id: subscriptions/xxx-xxx-xxx/resourceGroups/myresourcegroup/providers/Microsoft.Network/networkProfiles/aci-network-profile-VirtualNetmy-containersubnet   
#Can be found by running the command, az network profile list --resource-group myResourceGroup --query [0].id --output tsv, if no output then run the first time using azure cloud shell 
  osType: Linux
  volumes: # Array of volumes available to the instances
  - name: configvolume
    azureFile:
      shareName: testshare  #Provide the name of the Azure File share to be mounted as a volume
      storageAccountName: myfileshare  #Provide name of the storage account
      storageAccountKey: xxx_xxx #Provide storage account access key

Valeurs des propriétés

Les tableaux suivants décrivent les valeurs à définir dans le schéma.

Nom

Type

Requis

Valeur

Objet containerGroups

Nom

Chaîne

Oui

Nom du groupe de conteneurs. Vous pouvez également fournir un nom de conteneur.

apiVersion

énuméré

Oui

Version d'API de ressource. Par exemple, « 2019-12-01 ».

propriétés

objet

Oui

Propriétés d'un groupe de conteneurs. Recherchez l'objet ContainerGroupProperties dans cette table pour trouver les valeurs prises en charge pour les propriétés.

Objet ContainerGroupProperties

conteneurs

tableau

Oui

Conteneurs dans le groupe de conteneurs. Recherchez l'objet Container dans cette table pour trouver les valeurs prises en charge pour les conteneurs.

imageRegistryCredentials

tableau

Non

Informations d'identification du registre d'images à partir des lesquelles le groupe de conteneurs est créé. Recherchez l'objet ImageRegistryCredential dans cette table pour trouver les valeurs prises en charge pour imageRegistryCredentials.

restartPolicy

énuméré

Non

Redémarrez la stratégie pour tous les conteneurs au sein du groupe de conteneurs :

  • - Always : toujours redémarrer

  • - OnFailure : redémarre en cas d'échec

  • - Never : ne jamais redémarrer

ipAddress

objet

Non

Type d'adresse IP du groupe de conteneurs. Recherchez l'objet IPAddress dans cette table pour trouver les valeurs prises en charge pour ipAddress.

osType

énuméré

Oui

Type de système d'exploitation requis par les conteneurs du groupe de conteneurs. - Windows ou Linux

le faire

tableau

Non

Liste des volumes qui peuvent être montés par des conteneurs dans ce groupe de conteneurs. Recherchez l'objet Volume dans cette table pour trouver les valeurs prises en charge pour les volumes.

Objet Conteneur

name

chaîne

Oui

Nom fourni par l'utilisateur de l'instance de conteneur. Par exemple, test-edir93.

propriétés

objet

Oui

Propriétés de l'instance de conteneur. Recherchez l'objet ContainerProperties dans cette table pour trouver les valeurs prises en charge pour les propriétés.

Objet ContainerProperties

Image

chaîne

Oui

Nom de l'image utilisée pour créer l'instance de conteneur. Par exemple, myazureregistry.azurecr.io/edir93 (Étape 3).

command

tableau

Non

Commandes à exécuter dans l'instance de conteneur sous la forme exec. Le conteneur Docker pour OpenText eDirectory accepte les paramètres de l'utilitaire ndsconfig avec la commande Docker. Pour plus d'informations sur l'utilitaire ndsconfig, reportez-vous à la section Utilitaire ndsconfig.

ports

tableau

Non

Ports exposés sur l'instance de conteneur. Recherchez l'objet ContainerPort dans cette table pour trouver les valeurs prises en charge pour les ports.

environmentVariables

tableau

Non

Variables d'environnement à définir dans l'instance de conteneur. Recherchez l'objet EnvironmentVariable dans cette table pour trouver les valeurs prises en charge pour environmentVariables.

ressources

objet

Oui

Les exigeznces de ressource pour l'instance de conteneur. Recherchez l'objet ResourceRequirements dans cette table pour trouver les valeurs prises en charge pour les ressources.

volumeMounts

tableau

Non

Les montages de volume à la disposition de l'instance de conteneur. Recherchez l'objet VolumeMount dans cette table pour trouver les valeurs prises en charge pour volumeMounts.

Objet ContainerPort

protocole

énuméré

Non

Protocole associé au port. - TCP ou UDP

port

entier

Oui

Numéro de port.

Objet EnvironmentVariable

name

chaîne

Oui

Nom de la variable d'environnement.

value

chaîne

Non

Valeur de la variable d'environnement.

Objet ResourceRequirements

requêtes

objet

Oui

Requêtes de ressource de cette instance de conteneur. Recherchez l'objet ResourceRequests dans cette table pour trouver les valeurs prises en charge pour les requêtes.

Objet ResourceRequests

memoryInGB

number

Oui

Requête de mémoire en Go de cette instance de conteneur.

cpu

number

Oui

Requête d'UC de cette instance de conteneur.

Objet VolumeMount

name

chaîne

Oui

Nom du montage de volume.

mountPath

chaîne

Oui

Chemin d'accès au conteneur dans lequel le volume doit être monté. Ne doit pas contenir de signe deux-points (:).

Objet ImageRegistryCredential

server

chaîne

Oui

Le serveur de registre d'images Docker sans protocole tel que « http » et « https ». Entrez le nom du registre créé à l'étape 1 de la liste de contrôle (voir Liste de contrôle pour le déploiement du conteneur).

username

chaîne

Non

Nom d'utilisateur pour le registre privé. Pour plus d'informations, voir Comment rechercher des informations sur le nom d'utilisateur.

password

chaîne

Non

Mot de passe pour le registre privé. Pour plus d'informations, voir Comment rechercher le mot de passe du registre Azure.

Objet Adresse IP

ports

tableau

Oui

Liste des ports exposés sur le groupe de conteneurs. Recherchez l'objet Port dans cette table pour trouver les valeurs prises en charge pour les ports.

type

énuméré

Oui

Indique si l'adresse IP est exposée à l'Internet public ou au réseau VNET privé. - Public ou Privé

Objet Port

protocole

énuméré

Non

Protocole associé au port. - TCP ou UDP

port

entier

Oui

Numéro de port.

objet Volume

name

chaîne

Oui

Nom du volume.

azureFile

objet

Non

Volume de fichiers Azure. Recherchez l'objet AzureFileVolume dans ce tableau pour trouver les valeurs prises en charge pour azureFile.

Objet AzureFileVolume

shareName

chaîne

Oui

Nom du partage de fichiers Azure à monter en tant que volume. Entrez le nom du partage de fichiers de stockage créé à l'étape 3 de la liste de contrôle (voir Liste de contrôle pour le déploiement du conteneur).

storageAccountName

chaîne

Oui

Nom du compte de stockage qui contient le partage de fichiers Azure.

storageAccountKey

chaîne

Non

Clé d'accès au compte de stockage utilisée pour accéder au partage de fichiers Azure. Pour trouver la clé de compte de stockage, voir Afficher les clés d'accès au compte.

Création d'une instance de conteneur Azure

Exécutez la commande suivante pour créer un conteneur dans un groupe de conteneurs à l'aide du fichier YAML que vous avez modifié précédemment :

az container create --resource-group <MyResourceGroup> --name <container-instance-name>  --file <containerGroup.yaml>

Où

<MyResourceGroup> représente le nom du groupe de ressources. Champ obligatoire.

<container-instance-name> représente le nom de l'instance de conteneur dans un groupe de conteneurs.

<containerGroup.yaml> représente le chemin d'accès au fichier d'entrée.

Par exemple, az container create --resource-group MyResourcegroup --name edir93 --file edir-azure-conf.yaml