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
-
Installez l'interface de ligne de commande OCI.
-
Utilisez le formatage de sortie pour filtrer et formater les sorties de commande en fonction de vos besoins.
-
Utilisez l'aide en entrée pour simplifier l'utilisation de l'interface de ligne de commande OCI.
Prérequis
-
Accès à une location OCI avec une infrastructure Oracle Exadata Database Service on Cloud@Customer.
-
Un utilisateur créé dans la location, dans un groupe avec une stratégie qui octroie les droits d'utilisateur souhaités.
-
Version prise en charge de l'environnement Python installée sur un système d'exploitation pris en charge avec accès à la location OCI. Pour plus d'informations, reportez-vous à Versions Python et systèmes d'exploitation pris en charge.
-
Une paire de clés utilisée lors de la signature des demandes d'API, avec la clé publique téléchargée vers Oracle.
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.
-
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.
-
Suivez les instructions d'installation de votre système d'exploitation.
-
Exécutez la commande suivante pour vérifier votre installation.
$ oci --version
-
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
-
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
-
Exécutez la commande suivante pour vérifier la connectivité, qui affichera l'espace de noms de votre location.
$ oci os ns get
-
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.
-
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.
-
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" ] ]
-
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" ] ]
-
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 | +------------------+---------------------------------------------------------------------------------------------------+
-
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 quelist
renvoient généralement de nombreux résultats, tandis que les sous-commandes de l'interface de ligne de commande OCI telles queget
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.
-
Utiliser des variables d'environnement :
Vous pouvez utiliser des variables d'environnement pour stocker les valeurs des paramètres que nous transmettons à l'interface de ligne de commande OCI.
Par exemple, vous pouvez utiliser
$T
pour un OCID de location et$C
pour un OCID de compartiment.T=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq C=ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a
Vous pouvez l'utiliser dans les commandes de l'interface de ligne de commande OCI comme suit :
$ oci work-requests work-request list --compartment-id $C
-
Utiliser
--help
:Vous pouvez toujours utiliser
--help
pour obtenir des informations supplémentaires sur votre commande. Cela s'applique à tous les niveaux de la structure de commande de l'interface de ligne de commande OCI.Exemple :
oci --help oci db --help oci db vm-cluster --help oci db vm-cluster list --help
Voici l'exemple de réponse de la commande
oci db vm-cluster --help
.Usage: oci db vm-cluster [OPTIONS] COMMAND [ARGS]... Details of the cloud VM cluster. Applies to Exadata Cloud Service instances only. Options: -?, -h, --help For detailed help on any of these individual commands, enter <command> --help. Commands: add Add Virtual Machines to the Cloud... change-vm-cluster-subscription Associate a cloud VM cluster with... change-compartment Moves a cloud VM cluster and its... create Creates a cloud VM cluster. delete Deletes the specified cloud VM... get Gets information about the... get-exadata-iorm-config Gets the IORM configuration for... get-update Gets information about a... get-update-history Gets the maintenance update... list Gets a list of the cloud VM... list-update-histories Gets the history of the... list-updates Lists the maintenance updates... remove Remove Virtual Machines from the... update Updates the specified cloud VM... update-exadata-iorm-config Updates the IORM settings for the...
-
Utilisation des profils dans le fichier de configuration principal :
Lors de la configuration de l'interface de ligne de commande OCI à l'aide de la boîte de dialogue de configuration, un fichier de configuration principal est créé et son chemin est répertorié dans la sortie. Sous Linux et Unix, le fichier de configuration principal se trouve à l'adresse
/home/opc/.oci/config
.Exemple de fichier de configuration principal :
[opc@jens-oci-1 ~]$ cat .oci/config [DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1
Dans l'exemple ci-dessus, le profil par défaut a été créé avec l'utilisateur, la location et la région définis. Lorsque vous utilisez la ligne de commande sans spécifier les paramètres, les valeurs par défaut sont utilisées à partir du profil. Si vous voulez voir des résultats en dehors des valeurs définies dans le fichier de profil, vous pouvez spécifier explicitement les valeurs dans la ligne de commande.
Vous pouvez également créer plusieurs profils dans le fichier de configuration principal.
[DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1 [AMS] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-amsterdam-1
Vous pouvez faire référence au profil prédéfini à l'aide de la commande suivante.
oci db vm-cluster list --compartment-id $C --profile AMS --query "data[].[\"display-name\"]" --output table
-
Utiliser les fichiers de configuration d'exécution :
Lorsque vous voulez faciliter encore la sélection entre différentes régions, compartiments, clusters de machines virtuelles, etc., vous indiquez des profils avec ces informations dans un deuxième fichier de configuration d'exécution facultatif. Le fichier de configuration d'exécution complète le fichier de configuration principal. Vous pouvez spécifier des valeurs par défaut pour les paramètres de ligne de commande dans le fichier de configuration d'exécution.
Vous pouvez créer un fichier de configuration d'exécution à l'aide de la commande suivante.
$ oci setup oci-cli-rc --file .oci/oci_cli_rc
Vous pouvez compléter les profils dans le fichier de configuration principal et ajouter des détails de profil supplémentaires à la fin du fichier de configuration d'exécution.
[DEFAULT] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a [AMS] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a vm-cluster-id = ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq
Vous pouvez spécifier ces profils définis lors de l'exécution de la commande à l'aide de la commande suivante.
$ oci db vm-cluster get --profile AMS --query "data.{\"OCID\" : \"id\" , \"Core Count\" : \"cpu-core-count\" }" --output table +------------+------------------------------------------------------------------------------------------------------+ | Core Count | OCID | +------------+------------------------------------------------------------------------------------------------------+ | 0 | ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | +------------+------------------------------------------------------------------------------------------------------+
-
Générer le fichier d'entrée JSON de commande complète :
Le fichier d'entrée JSON de commande complet est utilisé avec le paramètre
--from-json file://<json file name>
pour indiquer tous les paramètres de la commande. Pour que cela soit possible, il existe un paramètre nommé--generate-full-command-json-input
qui crée un fichier JSON avec tous les paramètres de cette commande.Utilisez la commande suivante pour générer un fichier JSON avec le nom de fichier
vm-cluster_update.json
.oci db vm-cluster update --generate-full-command-json-input > vm-cluster_update.json
Vous pouvez modifier ce fichier d'entrée JSON et conserver uniquement les paramètres pertinents pour la commande à exécuter. Dans cet exemple, nous allons mettre à l'échelle le nombre d'OCPU pour le cluster de machines virtuelles, qui était égal à 0 (zéro). Pour ce faire, nous aurons besoin de l'ID de cluster de machines virtuelles et de la nouvelle quantité d'OCPU (prolongation à 4 OCPU).
{ "vmclusterId": "ocid1.vmcluster.oc1.eu-frankfurt-1.antheljrvwun52iawxlyg2hp6lr3xawbvub7kcjje7yta45yluiz6xxl2tkq", "cpuCoreCount": 4 }
Utilisez la commande suivante pour utiliser le fichier d'entrée JSON.
oci db vm-cluster update --from-json file://vm-cluster_update.json
Liens connexes
-
Interface de ligne de commande Oracle Cloud Infrastructure (interface de ligne de commande OCI)
-
Référence des commandes de l'interface de ligne de commande Oracle Cloud Infrastructure
Accusés de réception
- Auteurs - Jens Ejvinsson (ceinture noire Exadata Cloud@Customer), Zsolt Szokol (ceinture noire Exadata Cloud@Customer)
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.
Use Oracle Cloud Infrastructure Command Line Interface to manage Oracle Exadata Database Service on Cloud@Customer
G38692-01
Copyright ©2025, Oracle and/or its affiliates.