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
-
Installez l'interface CLI OCI.
-
Utilisez le formatage de sortie pour filtrer et formater les sorties de commande selon vos besoins.
-
Utilisez l'assistance en entrée pour simplifier l'utilisation de l'interface de ligne de commande OCI.
Conditions requises
-
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 politique qui accorde les autorisations souhaitées.
-
Une 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, voir Versions et systèmes d'exploitation Python pris en charge.
-
Une paire de clés utilisée pour signer des demandes d'API, avec la clé publique chargée dans Oracle.
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.
-
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 conformément à 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 données d'identification requises pour utiliser OCI.
$ oci setup config
-
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
-
Exécutez la commande suivante pour vérifier votre connectivité, qui affichera l'espace de noms de votre location.
$ oci os ns get
-
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.
-
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.
-
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 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" ] ]
-
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 | +------------------+---------------------------------------------------------------------------------------------------+
-
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 quelist
retournent généralement de nombreux résultats, tandis que les sous-commandes d'interface de ligne de commande OCI telles queget
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.
-
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
-
Utilisation de
--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.Par 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...
-
Utiliser 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 indiqué 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 souhaitez 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 vous référer 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
-
Utilisation des fichiers de configuration d'exécution :
Lorsque vous voulez faciliter encore la sélection entre différentes régions, compartiments, grappes de machines virtuelles, etc., vous spécifiez des profils contenant 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 du fichier de configuration principal et ajouter des détails de profil supplémentaires à la fin de votre 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 la commande complète est utilisé avec le paramètre
--from-json file://<json file name>
pour spécifier tous les paramètres de la commande. Pour ce faire, il existe un paramètre appelé--generate-full-command-json-input
qui créera un fichier JSON avec tous les paramètres pour 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 ajuster le nombre d'OCPU pour la grappe de machines virtuelles à 0 (zéro). Pour ce faire, nous aurons besoin de l'ID grappe de machines virtuelles et de la nouvelle quantité d'OCPU (mise à l'échelle à 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
Remerciements
- Auteurs - Jens Ejvinsson (Exadata Cloud@Customer Black Belt), Zsolt Szokol (Exadata Cloud@Customer Black Belt)
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.
Use Oracle Cloud Infrastructure Command Line Interface to manage Oracle Exadata Database Service on Cloud@Customer
G38691-01
Copyright ©2025, Oracle and/or its affiliates.