Utiliser l'interface de ligne de commande Oracle Cloud Infrastructure pour gérer Oracle Exadata Database Service on Cloud@Customer

Introduction

L'interface de ligne de commande Oracle Cloud Infrastructure (interface de ligne de commande OCI) est un excellent outil pour gérer vos ressources dans OCI, y compris les ressources Oracle Exadata Database Service on Cloud@Customer. L'interface de ligne de commande OCI vous permet d'orchestrer et d'automatiser facilement et efficacement les opérations OCI. Lorsque l'interface de ligne de commande OCI appelle l'API REST OCI, cela signifie que l'interface de ligne de commande OCI et l'API REST OCI sont compatibles, même si la syntaxe est différente. Vous pouvez utiliser l'interface de ligne de commande OCI lors du développement des automatisations d'API REST OCI à des fins d'essai et d'erreur, puis déployer vos automatisations avec moins d'effort.

Il s'agit d'une série en deux parties. Dans cette première partie, nous vous présentons les notions de base de l'interface de ligne de commande OCI, tandis que dans la deuxième partie, nous nous concentrons davantage sur les commandes et les workflows spécifiques à Oracle Exadata Database Service on Cloud@Customer.

Remarque : l'interface de ligne de commande OCI est également requise lors de l'utilisation du redimensionnement dynamique avec le module d'extension distant, mais le redimensionnement dynamique lui-même ne sera pas abordé dans ce tutoriel.

Objectifs

Prérequis

Tâche 1 : installer l'interface de ligne de commande OCI

L'interface de commande OCI est basée sur le kit SDK OCI pour Python. Elle est exécutée sur Mac, Windows et Linux. Le code Python appelle les API OCI pour fournir les fonctionnalités implémentées pour les différents services, notamment Oracle Exadata Database Service on Cloud@Customer et Oracle Autonomous Database on Exadata Cloud@Customer.

  1. Téléchargez l'interface de ligne de commande OCI pour votre système d'exploitation à partir d'ici : référentiel GitHub de l'interface de ligne de commande OCI.

  2. Suivez les instructions d'installation de votre système d'exploitation.

  3. Exécutez la commande suivante pour vérifier votre installation.

    $ oci --version
    
  4. Configurez une configuration à l'aide de la boîte de dialogue de configuration qui contient les informations d'identification requises pour l'utilisation d'OCI.

    $ oci setup config
    
  5. Vérifiez le fichier de configuration.

    Exemple :

    [DEFAULT]
    user=ocid1.user.oc1..<unique_ID>
    fingerprint=<your_fingerprint>
    key_file=~/.oci/oci_api_key.pem
    tenancy=ocid1.tenancy.oc1..<unique_ID>
    # Some comment
    region=us-ashburn-1
    
  6. Exécutez la commande suivante pour vérifier la connectivité, qui affichera l'espace de noms de votre location.

    $ oci os ns get
    
  7. Exécutez la commande suivante pour répertorier les compartiments disponibles.

    $ oci iam compartment list
    

    La réponse JSON suivante sera générée :

    {
     "data": [
    {
           "compartment-id": "ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq",
           "defined-tags": {
                     "Oracle-Tags": {
                                    "CreatedBy": "default/some-email@oracle.com",
                                    "CreatedOn": "2023-11-10T13:27:32.885Z"
    }
    },
    "description": "Compartment for Exadata Infrastructure",
    "freeform-tags": {},
    "id": "ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q",
    "inactive-status": null,
    "is-accessible": null,
    "lifecycle-state": "ACTIVE",
    "name": "ExaInfra",
    "time-created": "2023-11-10T13:27:32.945000+00:00"
         }
         ]
    }
    

    Remarque : la sortie a été tronquée pour n'afficher que le premier compartiment.

  8. Exécutez la commande suivante pour répertorier toutes les demandes de travail d'un compartiment.

    $ oci work-requests work-request list --compartment-id ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q
    

Utiliser le formatage de sortie pour filtrer et formater les sorties de commande en fonction de vos besoins

Comme vous l'avez vu dans les exemples précédents, la réponse JSON des commandes de l'interface de ligne de commande OCI peut être étendue, difficile à suivre et pas facile à lire.

A l'invite de commande sous Linux par exemple, vous pouvez toujours diriger la sortie vers des outils d'alimentation tels que grep pour filtrer votre réponse.

Utilisez la commande suivante pour répertorier tous les clusters de machines virtuelles d'un compartiment spécifique et filtrer pour id.

$ oci db vm-cluster list --compartment-id <OCID> | grep \"id\"

La réponse suivante sera générée :

"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"

Cependant, l'interface de ligne de commande OCI dispose d'une fonctionnalité de requête intégrée avec le paramètre --query, dans laquelle vous pouvez indiquer les champs à interroger.

  1. Exécutez la commande suivante avec le paramètre --query.

    $ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"id\"]"
    

    La réponse JSON sera :

    [
         [
    "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
         ],
         [
    "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
          ]
    ]
    
  2. Vous pouvez facilement spécifier des champs supplémentaires derrière --query pour créer une requête plus complexe.

    $ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]"
    

    La réponse JSON sera :

    [
         [
    "fraexaclu1-uvlkz",
    "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
         ],
         [
    "fraexaclu2-2uyfk",
    "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
         ]
        ]	
    
  3. Vous pouvez obtenir une sortie plus conviviale en utilisant le paramètre de table --output.

    $oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]" --output table
    

    La réponse sera :

    +----------------------------------------------------------------------------------------------------------------------+
    | Column1          |  Column2                                                                                          |
    +----------------------------------------------------------------------------------------------------------------------+
    | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq |
    | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra |
    +------------------+---------------------------------------------------------------------------------------------------+
    
  4. Vous pouvez également indiquer les en-têtes des colonnes à l'aide du paramètre --query.

    $ oci db vm-cluster list --compartment-id <OCID> --query "data[].{\"Hostname\" : \"hostname\" , \"OCID\" : \"id\" }" --output table
    

    La réponse sera la suivante :

    +----------------------------------------------------------------------------------------------------------------------+
    | Hostname          | OCID                                                                                             |
    +----------------------------------------------------------------------------------------------------------------------+
    | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq |
    | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra |
    +------------------+---------------------------------------------------------------------------------------------------+
    

    Remarque : il est important de comprendre la corrélation entre la syntaxe utilisée avec le paramètre --query et la réponse JSON. Les sous-commandes de l'interface de ligne de commande OCI telles que list renvoient généralement de nombreux résultats, tandis que les sous-commandes de l'interface de ligne de commande OCI telles que get ne renvoient qu'un seul résultat.

    • Où la réponse JSON indique que les données sont une liste ou un tableau tel qu'indiqué par un élément [.

      [opc@jens-oci-1 ~]$ oci db vm-cluster list
      {
           "data": [
                {
      

      La syntaxe de la requête se présente comme suit :

      --query "data[].[ field1 , field2 ]"
      
    • Où la réponse JSON indique que les données sont un seul objet.

      [opc@jens-oci-1 ~]$ oci db vm-cluster get
      {
           "data": {
      

      La syntaxe de la commande get se présente alors comme suit :

      --query "data.[ field1 , field2 ]"
      

Utilisation de l'assistance en entrée pour simplifier l'utilisation de l'interface de ligne de commande OCI

Il existe plusieurs façons d'obtenir une assistance en entrée avec l'interface de ligne de commande OCI pour les cas d'utilisation ad hoc et automatisés.

Accusés de réception

Ressources de formation supplémentaires

Explorez d'autres ateliers sur le site docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, consultez Oracle Help Center.