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

Présentation

L'interface de ligne de commande d'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 est appelée sur 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'efforts.

Il s'agit d'une série en deux parties, où dans cette première partie, nous vous présentons les bases de l'interface de ligne de commande OCI, tandis que dans la deuxième partie, nous mettons l'accent sur les commandes et les flux de travail spécifiques à Oracle Exadata Database Service on Cloud@Customer.

Note : L'interface de ligne de commande OCI est également requise lors de l'utilisation de l'ajustement dynamique avec le plugiciel distant, mais l'ajustement dynamique lui-même ne sera pas couvert dans ce tutoriel.

Objectifs

Conditions requises

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

L'interface de ligne de commande OCI s'appuie sur la trousse SDK OCI pour Python et s'exécute sous Mac, Windows ou Linux. Le code Python appelle les API OCI pour fournir la fonctionnalité mise en œuvre pour les différents services, y compris 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 conformément à 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 données d'identification requises pour utiliser OCI.

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

    Par 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 votre connectivité, qui affichera l'espace de noms de votre location.

    $ oci os ns get
    
  7. Exécutez la commande suivante pour lister vos compartiments disponibles.

    $ oci iam compartment list
    

    Cela générera la réponse JSON suivante :

    {
     "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"
         }
         ]
    }
    

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

  8. Exécutez la commande suivante pour lister 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 selon 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 longue, difficile à suivre et difficile à lire.

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

Utilisez la commande suivante pour lister toutes les grappes de machines virtuelles d'un compartiment spécifique et filtrer id.

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

Cela générera la réponse suivante :

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

Toutefois, l'interface de ligne de commande OCI a intégré la fonctionnalité d'interrogation avec le paramètre --query, où vous pouvez spécifier les champs pour lesquels vous voulez effectuer une interrogation.

  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 interrogation 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 à l'aide du 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 spécifier 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 :

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

    Note : 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 d'interface de ligne de commande OCI telles que list retournent généralement de nombreux résultats, tandis que les sous-commandes d'interface de ligne de commande OCI telles que get ne retournent qu'un seul résultat.

    • Où la réponse JSON montre que les données sont une liste ou un tableau tel que spécifié par un [.

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

      La syntaxe de l'interrogation se présente comme suit :

      --query "data[].[ field1 , field2 ]"
      
    • Où la réponse JSON montre 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 comme suit :

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

Utiliser l'aide à l'entrée pour simplifier l'utilisation de l'interface de ligne de commande OCI

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

Remerciements

Ressources d'apprentissage supplémentaires

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

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