Utilisation de l'image de conteneur de l'interface de ligne de commande OCI

Cette section décrit comment installer et utiliser l'image de conteneur de l'interface de ligne de commande OCI.

L'image de conteneur de l'interface de ligne de commande d'Oracle Cloud Infrastructure (OCI) est une image Docker dans laquelle les outils de l'interface de ligne de commande OCI sont préinstallés. Cette section décrit comment installer et utiliser l'image de conteneur de l'interface de ligne de commande OCI.

Conditions requises

Pour utiliser l'image de conteneur de l'interface de ligne de commande OCI, vous devez disposer des éléments suivants :

  • Un moteur d'exécution de conteneur conforme aux normes, par exemple Docker ou Podman
  • Une location Oracle Cloud Infrastructure.
  • Un compte d'utilisateur dans cette location appartenant à un groupe auquel des politiques appropriées ont été affectées pour accorder les autorisations requises.
  • Une paire de clés utilisée pour signer des demandes d'API, avec la clé publique chargée dans Oracle. Seul l'utilisateur appelant l'API doit disposer de la clé privée. Pour plus d'informations, voir Configuration de l'interface de ligne de commande.

Pour des exemples sur la configuration d'un nouvel utilisateur, d'un groupe, d'un compartiment et d'une politique, voir Ajout d'utilisateurs. Pour obtenir la liste des autres politiques OCI standard, consultez la liste des politiques communes.

Utilisation de l'image de conteneur de l'interface de ligne de commande OCI

Pour utiliser l'image de conteneur, extrayez la dernière version du registre de conteneurs GitHub :
$ docker pull ghcr.io/oracle/oci-cli:latest
$ docker images
REPOSITORY                              TAG               IMAGE ID       CREATED        SIZE
ghcr.io/oracle/oci-cli                  latest            387639e80a9a   3 days ago     711MB
Pensez à affecter la balise oci à l'image pour permettre un remplacement plus transparent :
$ docker tag ghcr.io/oracle/oci-cli:latest oci
$ docker images oci
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
oci          latest    387639e80a9a   3 days ago   711MB
                   
$ docker run -v "$HOME/.oci:/oracle/.oci" oci os ns get
{
    "data": "demo-tenancy"
}
Pour plus de commodité, vous pouvez créer un alias d'interpréteur de commandes qui exécute le conteneur pour vous :
$ alias oci='docker run --rm -it -v "$HOME/.oci:/oracle/.oci" oci'
$ oci os ns get
{
    "data": "demo-tenancy"
}

Authentification par clé de signature d'API

Il s'agit de la méthode d'authentification par défaut utilisée par toutes les trousses SDK OCI et l'interface de ligne de commande OCI. Pour utiliser cette méthode, montez un emplacement sur le système hôte dans le répertoire /oracle/.oci du conteneur.

Si vous avez déjà configuré l'interface de ligne de commande OCI sur l'ordinateur hôte, la façon la plus simple de fournir l'accès à votre clé de signature d'API est de mapper votre répertoire $HOME/.oci à /oracle/.oci/ dans le conteneur.

Par exemple :
$ docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli os ns get
{
    "data": "example"
}

Vous pouvez également transmettre la variable d'environnement OCI_CLI_CONFIG_FILE pour définir un autre emplacement pour le fichier config de l'interface de ligne de commande OCI.

Note

Assurez-vous que le champ key_file dans $HOME/.oci/config utilise le caractère ~ pour que le chemin soit résolu à l'intérieur et à l'extérieur du conteneur; par exemple : key_file=~/.oci/oci_api_key.pem.
Si vous n'avez pas configuré l'interface de ligne de commande OCI, créez le répertoire $HOME/.oci :
mkdir $HOME/.oci
Lancez ensuite le processus de configuration interactive de l'interface de ligne de commande OCI :
docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli setup config

Pour plus d'informations, voir Configuration du fichier de configuration.

Authentification du principal d'instance

Pour activer l'authentification du principal d'instance, vous pouvez utiliser le paramètre de ligne de commande --auth instance_principal :
docker run --rm -it ghcr.io/oracle/oci-cli --auth instance_principal os ns get
Vous pouvez également transmettre la variable d'environnement OCI_CLI_AUTH :
docker run --rm -it -e OCI_CLI_AUTH=instance_principal ghcr.io/oracle/oci-cli os ns get

Si vous avez créé un alias d'interpréteur de commandes, ajoutez-le à la définition d'alias.

Pour plus d'informations, voir Méthodes d'authentification de la trousse SDK pour OCI.

Accès aux fichiers locaux

Le moyen le plus simple de permettre à l'interface de ligne de commande OCI s'exécutant dans le conteneur d'accéder aux fichiers sur l'hôte est de monter-lier (bind mount) un répertoire de l'hôte sur le conteneur.

Dans l'exemple suivant, le répertoire $HOME/scratch est monté-lié sur /oracle/scratch dans le conteneur pour que les fichiers de ce répertoire puissent être chargés en masse dans le stockage d'objets OCI à l'aide de l'interface de ligne de commande OCI :
docker run --rm -it \
    -v "$HOME/.oci:/oracle/.oci" \
    -v "$HOME/scratch:/oracle/scratch" \
    ghcr.io/oracle/oci-cli os object bulk-upload -ns <namespace> -bn <bucket name> --src-dir /oracle/scratch/