Mit dem OCI-CLI-Containerimage arbeiten

In diesem Abschnitt wird beschrieben, wie Sie das OCI-CLI-Containerimage installieren und verwenden.

Das Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstellen-(CLI-)Containerimage ist ein Docker-Image, in dem die OCI-CLI-Tools vorinstalliert sind. In diesem Abschnitt wird beschrieben, wie Sie das OCI-CLI-Containerimage installieren und verwenden.

Anforderungen

Um das OCI-CLI-Containerimage verwenden zu können, benötigen Sie Folgendes:

  • Eine standardkonforme Containerlaufzeit-Engine wie Docker oder Podman
  • Einen Oracle Cloud Infrastructure-Mandanten
  • Einen Benutzeraccount in diesem Mandanten, der zu einer Gruppe gehört, der die entsprechenden Policys zugewiesen wurden, um die erforderlichen Berechtigungen zu erteilen.
  • Ein Schlüsselpaar zum Signieren von API-Anforderungen, wobei der Public Key bei Oracle hochgeladen wird. Nur der Benutzer, der die API aufruft, sollte im Besitz des Private Keys sein. Weitere Informationen finden Sie unter CLI konfigurieren.

Beispiele für die Einrichtung eines neuen Benutzers, einer neuen Gruppe, eines neuen Compartments und einer neuen Policy finden Sie unter Benutzer hinzufügen. Eine Liste weiterer typischer OCI-Policys finden Sie in der Liste der allgemeinen Policys.

OCI-CLI-Containerimage verwenden

Um das Containerimage zu verwenden, rufen Sie die neueste Version aus der GitHub-Container-Registry ab:
$ 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
Sie können das Image mit oci taggen, um eine nahtlosere Drop-in-Verwendung zu ermöglichen:
$ 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"
}
Zur weiteren Vereinfachung können Sie einen Shell-Alias erstellen, der den Container für Sie ausführt:
$ alias oci='docker run --rm -it -v "$HOME/.oci:/oracle/.oci" oci'
$ oci os ns get
{
    "data": "demo-tenancy"
}

API-Signaturschlüssel-Authentifizierung

Dies ist die Standardauthentifizierungsmethode, die von allen OCI-SDKs und der OCI-Befehlszeilenschnittstelle (CLI) verwendet wird. Um diese Methode zu verwenden, mounten Sie einen Speicherort auf dem Hostsystem im Verzeichnis /oracle/.oci innerhalb des Containers.

Wenn Sie die OCI-Befehlszeilenschnittstelle (CLI) zuvor auf dem Hostrechner konfiguriert haben, können Sie am einfachsten Zugriff auf Ihren API-Signaturschlüssel erteilen, indem Sie das Verzeichnis $HOME/.OCI zu /oracle/.OCI/ im Container zuordnen.

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

Sie können alternativ die Umgebungsvariable OCI_CLI_CONFIG_FILE übergeben, um einen anderen Speicherort für die OCI-CLI-Datei config zu verwenden.

Hinweis

Stellen Sie sicher, dass im Feld key_file in $HOME/.oci/config das Zeichen ~ verwendet wird, damit der Pfad sowohl innerhalb als auch außerhalb des Containers aufgelöst wird. Beispiel: key_file=~/.oci/oci_api_key.pem.
Wenn die OCI-Befehlszeilenschnittstelle (CLI) noch nicht konfiguriert ist, erstellen Sie das Verzeichnis $HOME/.OCI:
mkdir $HOME/.oci
Starten Sie dann den interaktiven Einrichtungsprozess für die OCI-Befehlszeilenschnittstelle (CLI):
docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli setup config

Weitere Informationen finden Sie unter Konfigurationsdatei einrichten.

Authentifizierung des Sessiontokens

Um die tokenbasierte Authentifizierung zu verwenden, ordnen Sie Port 8181 dem Container zu:
docker run --rm -it \
   -v "$HOME/.oci:/oracle/.oci" \
   -p 8181:8181 \
   ghcr.io/oracle/oci-cli session authenticate

Weitere Informationen finden Sie unter Tokenbasierte Authentifizierung für die CLI.

Instance Principal-Authentifizierung

Um die Instanz-Principal-Authentifizierung zu aktivieren, verwenden Sie den Befehlszeilenparameter --auth instance_principal:
docker run --rm -it ghcr.io/oracle/oci-cli --auth instance_principal os ns get
Sie können auch die Umgebungsvariable OCI_CLI_AUTH übergeben:
docker run --rm -it -e OCI_CLI_AUTH=instance_principal ghcr.io/oracle/oci-cli os ns get

Wenn Sie einen Shell-Alias erstellt haben, fügen Sie diesen der Aliasdefinition hinzu.

Weitere Informationen finden Sie unter OCI-SDK-Authentifizierungsmethoden.

Lokaler Dateizugriff

Die einfachste Möglichkeit, um der im Container ausgeführten OCI-Befehlszeilenschnittstelle (CLI) Zugriff auf Dateien auf dem Host zu ermöglichen, besteht darin, ein Verzeichnis vom Host mit "bind" im Container zu mounten.

Im folgenden Beispiel wird das Verzeichnis $HOME/scratch als /oracle/scratch mit "bind" im Container gemountet, sodass die Dateien in diesem Verzeichnis mit der OCI-Befehlszeilenschnittstelle (CLI) über einen Massenupload in OCI Object Storage hochgeladen werden können:
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/