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
$ 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
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"
}
$ 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.
$ 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.
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
. $HOME/.oci
:mkdir $HOME/.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 par jeton de session
docker run --rm -it \
-v "$HOME/.oci:/oracle/.oci" \
-p 8181:8181 \
ghcr.io/oracle/oci-cli session authenticate
Pour plus d'informations, voir Authentification basée sur un jeton pour l'interface de ligne de commande.
Authentification du principal d'instance
--auth instance_principal
:docker run --rm -it ghcr.io/oracle/oci-cli --auth instance_principal os ns get
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.
$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/
Création à partir de la source
Le code source requis pour compiler l'image de conteneur de l'interface de ligne de commande OCI se trouve à l'adresse https://github.com/oracle/docker-images/tree/main/OracleCloudInfrastructure/oci-cli.