Création d'une instance de service pour DataStage par programmation

Lorsque vous installez DataStage, une instance de service est créée automatiquement. Vous pouvez éventuellement créer d'autres instances de service dans le projet operands. Si vous êtes un IBM® Software Hub utilisateur, vous pouvez utiliser l'appel API /v3/service_instances REST pour créer des instances de service par programmation.

Qui doit accomplir cette tâche?
Pour créer une instance de service par programmation à l'aide de l'appel /v3/service_instances API REST, vous devez disposer de l'autorisation Créer des instances de service (can_provision) dans IBM Software Hub.
Quand devez-vous terminer cette tâche?
Effectuez cette tâche uniquement si vous souhaitez créer une instance de service par programmation à l'aide de l'appel /v3/service_instances API REST.
Méthodes alternatives pour créer une instance de service

Informations nécessaires à l'exécution de cette tâche

Vérifiez les informations suivantes avant de créer une instance de service pour DataStage :

Version requise

Tous les composants associés à une instance de IBM Software Hub doivent être installés ou créés lors de la même version. Par exemple, si DataStage est installé en version 5.3.1, vous devez créer l'instance de service en version 5.3.1.

Variables d'environnement

Les commandes de cette tâche utilisent des variables d'environnement afin que vous puissiez les exécuter exactement telles qu'elles sont écrites.

Avant de commencer

Cette tâche suppose que les conditions préalables suivantes sont remplies :

Prérequis Où trouver des informations supplémentaires
DataStage est installé. Si cette tâche n'est pas terminée, consultez la section Installation DataStage.
Vous avez généré une clé API.

La clé API doit être associée à un utilisateur disposant de l'autorisation Créer des instances de service (can_provision) dans IBM Software Hub.

Si cette tâche n'est pas terminée, consultez la section Génération d'un jeton d'autorisation API.

Procédure

Effectuez les tâches suivantes pour créer une instance de service :

  1. Création d'une instance de service
  2. Vérification de la création de l'instance de service
  3. Que faire ensuite?

Création d'une instance de service

Pour créer une instance de service :

  1. Accédez au répertoire de votre poste de travail dans lequel vous souhaitez créer le fichier JSON qui définit la charge utile de l'instance de service.
  2. Définissez les variables d'environnement utilisées pour remplir la charge utile JSON pour l'instance de service :
    1. Définissez la variable INSTANCE_NAME d'environnement sur le nom unique que vous souhaitez utiliser comme nom d'affichage pour l'instance de service :
      export INSTANCE_NAME="<display-name>"

      Ce nom s'affiche sur la page Instances du client IBM Software Hub Web.

      Le nom d'affichage est un string et peut contenir des caractères alphanumériques (a-z, A-Z, 0-9), des espaces ( ), des tirets (-), des traits de soulignement (_) et des points (.). Veillez à mettre le nom d'affichage entre guillemets, comme indiqué dans la commande export précédente.

    2. Définissez la variable INSTANCE_DESCRIPTION d'environnement sur la description que vous souhaitez utiliser pour l'instance de service :
      export INSTANCE_DESCRIPTION="<description>"

      Cette description s'affiche sur la page Instances du client IBM Software Hub Web.

      La description est un string et peut contenir des caractères alphanumériques, des espaces, des tirets, des traits de soulignement et des points. Veillez à mettre le nom d'affichage entre guillemets, comme indiqué dans la commande export précédente.

    3. Définissez le INSTANCE_VERSION sur la version qui correspond à la version de IBM Software Hub sur votre cluster :
      export INSTANCE_VERSION=<version>

      Utilisez le tableau suivant pour déterminer la valeur appropriée :

      IBM Software Hubversion Version d'instance de service
      5.3.1 5.3.1
      5.3.0 5.3.0
    4. Définissez la variable d'environnement INSTANCE_SIZE. La taille détermine les ressources allouées à l'instance de service.
      export INSTANCE_SIZE=<size>
      Les valeurs valides sont :
      • small
      • medium
      • large

      Pour plus d'informations sur les ressources associées à chaque taille, consultez le guide PDF sur la mise à l'échelle des composants, que vous pouvez télécharger à partir du IBM Entitled Registry.

  3. Créez le datastage-instance.json fichier de charge utile :
    cat << EOF > ./datastage-instance.json
    {
        "display_name": "${INSTANCE_NAME}",
        "namespace": "${PROJECT_CPD_INST_OPERANDS}",
        "addon_type": "datastage",
        "addon_version": "${INSTANCE_VERSION}",
        "create_arguments": {
            "description": "${INSTANCE_DESCRIPTION}",
            "metadata": {
                "storageClass": "${STG_CLASS_FILE}",
                "scaleConfig": "${INSTANCE_SIZE}"
            },
            "owner_username": "admin",
            "parameters": {
                "storageClass": "${STG_CLASS_FILE}",
                "scaleConfig": "${INSTANCE_SIZE}"
            },
            "resources": {}
        },
        "preExistingOwner": "false",
        "transientFields": {}
    }
    EOF
    Les variables d'environnement suivantes utilisent les valeurs déjà définies dans votre script de variables d'environnement d'installation :
    • ${PROJECT_CPD_INST_OPERANDS}
    • ${STG_CLASS_FILE}
  4. Définissez la variable PAYLOAD_FILE d'environnement sur le nom complet du fichier de charge utile JSON sur votre poste de travail :
    export PAYLOAD_FILE=<fully-qualified-JSON-file-name>
  5. Définissez les variables d'environnement utilisées pour vous connecter à l'instance où vous souhaitez créer IBM Software Hub l'instance de service :
    1. Définissez la variable CPD_ROUTE d'environnement :
      export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})

      La commande utilise la PROJECT_CPD_INST_OPERANDS variable, qui est déjà définie dans votre script de variables d'environnement d'installation.

    2. Définissez la variable API_KEY d'environnement sur la clé API que vous avez créée :
      export API_KEY=<your_api_key>
  6. Créez l'instance de service à partir du fichier de charge utile.

    La commande que vous exécutez dépend du type de certificat utilisé par l'instance où vous souhaitez créer IBM Software Hub l'instance de service : un certificat auto-signé ou un certificat signé par une autorité de certification de confiance.


    L'instance utilise un certificat signé par une autorité de certification de confiance
    curl --request POST \
    --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \
    --header "Authorization: ZenApiKey ${API_KEY}" \
    --header 'Content-Type: application/json' \
    --data @${PAYLOAD_FILE}

    L'instance utilise un certificat auto-signé (par défaut)
    curl -k --request POST \
    --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \
    --header "Authorization: ZenApiKey ${API_KEY}" \
    --header 'Content-Type: application/json' \
    --data @${PAYLOAD_FILE}

    Si la requête a abouti, la commande renvoie l'un des codes de réponse HTTP suivants :
    • 200 - La demande a été traitée avec succès et l'instance de service a été provisionnée.
    • 202 - La demande a été envoyée avec succès. L'instance de service est en cours de provisionnement.

    Si la demande n'a pas abouti, utilisez le code HTTP de réponse pour déterminer la raison.

Vérification de la création de l'instance de service

Pour vérifier que l'instance de service a bien été créée :

  1. Définissez la variable INSTANCE_ID d'environnement sur l'ID renvoyé par la POSTcURL commande :
    export INSTANCE_ID=<ID-from-response>
  2. Obtenir l'état de l'instance de service.

    La commande que vous exécutez dépend du type de certificat utilisé par l'instance où vous souhaitez créer IBM Software Hub l'instance de service : un certificat auto-signé ou un certificat signé par une autorité de certification de confiance.


    L'instance utilise un certificat signé par une autorité de certification de confiance
    curl --request GET \
      --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \
      --header "Authorization: ZenApiKey ${API_KEY}" \
      --header 'Content-Type: application/json'

    L'instance utilise un certificat auto-signé (par défaut)
    curl -k --request GET \
      --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \
      --header "Authorization: ZenApiKey ${API_KEY}" \
      --header 'Content-Type: application/json'

    • Si la requête a abouti, la commande renvoie le code de réponse HTTP suivant : 200
      Recherchez le provision_status paramètre dans la réponse JSON.
      • Si la valeur est PROVISIONED, l'instance de service a été créée avec succès.
      • Si la valeur est PROVISION_IN_PROGRESS, attendez quelques minutes et relancez la commande.
      • Si la valeur est FAILED, consultez les journaux des pods zen-watcher et pour trouver zen-core-api les causes possibles.
    • Si la demande n'a pas abouti, utilisez le code HTTP de réponse pour déterminer la raison.

Etape suivante

Vous devez donner aux utilisateurs l'accès à l'instance du service. Pour plus d'informations, consultez Création d'une instance de service pour DataStage.