CLI konfigurieren

Mit diesen optionalen Konfigurationen können Sie die CLI-Funktionalität erweitern. Die CLI unterstützt die Verwendung einer Datei für CLI-spezifische Konfigurationen. Sie haben folgende Möglichkeiten:

  • Geben Sie ein Standardprofil an.
  • Geben Sie Standardwerte für Befehlsoptionen an, damit Sie sie nicht in die Befehlszeile eingeben müssen.
  • Definieren Sie Aliasnamen für Befehle. Beispiel: Sie können "ls" als Alias für list verwenden.
  • Definieren Sie Aliasnamen für Optionen. Beispiel: Sie können "--ad" als Alias für --availability-domain verwenden.
  • Definieren Sie benannte Abfragen, die an die Option --query übergeben werden, anstatt einen JMESPath-Ausdruck in die Befehlszeile einzugeben.

Die CLI unterstützt auch die Verwendung von Umgebungsvariablen zur Angabe von Standardwerten für einige Optionen. Weitere Informationen finden Sie unter CLI-Umgebungsvariablen.

CLI-Konfigurationsdatei

Der Standardspeicherort und -dateiname für die CLI-spezifische Konfigurationsdatei lautet ~/.oci/oci_cli_rc. Sie können jedoch die Umgebungsvariable OCI_CLI_RC_FILE verwenden, um zu ändern, wo die CLI beim Hochfahren nach einer Konfigurationsdatei und den entsprechenden Standardwerten suchen soll.

Sie können auch explizit eine CLI-Konfigurationsdatei mit der Option --cli-rc-file oder mit der Legacy-Option --defaults-file angeben. Beispiel:

# Uses the file from ~/.oci/oci_cli_rc 
# or OCI_CLI_RC_FILE environment variable
oci os bucket list
			
# Uses a custom file
oci os bucket list --cli-rc-file path/to/my/cli/rc/file

Um eine oci_cli_rc-Datei einzurichten, führen Sie den folgenden Befehl aus.


oci setup oci-cli-rc --file path/to/target/file

Dieser Befehl erstellt die von Ihnen angegebene Datei, die Beispiele für Standardbefehlsaliasnamen, Parameteraliasnamen und benannte Abfragen enthält.

Hinweis

Unter Windows müssen Sie als Verzeichnistrennzeichen in Pfadnamen einen umgekehrten Schrägstrich anstelle des Schrägstrichs verwenden.

Standardprofil angeben

Geben Sie ein Standardprofil im Abschnitt OCI_CLI_SETTINGS der CLI-Konfigurationsdatei an. Im nächsten Beispiel wird gezeigt, wie ein Standardprofil mit dem Namen IAD angegeben wird. Die CLI sucht in der ~/.oci/config-Datei oder einer anderen Datei, die Sie mit der Option --config-file oder der UmgebungsvariableOCI_CLI_CONFIG_FILE angegeben haben, nach einem Profil mit dem Namen IAD.

[OCI_CLI_SETTINGS]
default_profile=IAD

Sie können auch ein Standardprofil angeben, indem Sie die Option --profile verwenden oder die Umgebungsvariable OCI_CLI_PROFILE festlegen.

Wenn ein Standardprofilwert an mehreren Speicherorten angegeben wurde, ist die Prioritätsfolge folgendermaßen:

  1. Der in der Option --profile angegebene Wert.
  2. Der in der Umgebungsvariablen OCI_CLI_PROFILE angegebene Wert.
  3. Der im Feld default_profile im Abschnitt OCI_CLI_SETTINGS der CLI-Konfigurationsdatei angegebene Wert.

Standardwerte festlegen

Die CLI unterstützt die Verwendung von Standardwerten, damit Sie nicht jeden Wert in die Befehlszeile eingeben müssen. So müssen Sie z.B. nicht bei jedem Befehl zum Starten der Instanz die --compartment-id eingeben oder bei der Verwendung von Object Storage-Befehlen den --namespace angeben. Sie können diese Informationen in einer Datei mit Standardwerten angeben.

Standardwerte können auf verschiedenen Ebenen angewendet werden, von allgemein bis spezifisch:

  • Global für alle CLI-Befehle.
  • Für einen bestimmten Service wie Compute oder Object Storage.
  • Für eine bestimmte Gruppe, z.B. Befehle zum Exportieren von Images.
  • Für einen bestimmten Befehl.

Standardwerte werden hierarchisch behandelt, wobei bestimmte Werte eine höhere Priorität als allgemeine Werte haben. Beispiel: Wenn ein global definierter Wert für compartment-id und eine spezifische compartment-id für den Befehl compute instance launch definiert wurde, verwendet die CLI den Wert für compute instance launch anstelle des globalen Standardwertes.

Befehlswertpriorität

Wenn ein in der Befehlszeile angegebener Wert auch in --cli-rc-file vorhanden ist, hat der Wert aus der Befehlszeile Priorität. Bei einem Befehl mit Optionen, die mehrere Werte enthalten, werden die Werte vollständig aus der Befehlszeile oder aus --cli-rc-file übernommen. Die zwei Quellen werden nicht zusammengefasst.

Syntax der Standardwertedatei

Die Datei --cli-rc-file kann in verschiedene Abschnitte mit einem oder mehreren Schlüsseln pro Abschnitt unterteilt werden.

Abschnitte

Im nächsten Beispiel enthält die Datei zwei Abschnitte mit einem Schlüssel in jedem Abschnitt. Um anzugeben, welcher Abschnitt verwendet werden soll, verwenden Sie die Option --profile in der CLI.

[DEFAULT]
compartment-id = ocid1.compartment.oc1..<unique_ID_1>
[ANOTHER_SECTION]
compartment-id = ocid1.compartment.oc1..<unique_ID_2>

Schlüssel

Schlüssel werden nach Befehlszeilenoptionen benannt, verwenden jedoch keinen führenden doppelten Bindestrich (--). Beispiel: Der Schlüssel für --image-id lautet image-id. Sie können Schlüssel für einzelne Werte, mehrere Werte und Flags angeben.

  • Schlüssel für Einzelwerte. Im nächsten Beispiel wird gezeigt, wie Schlüsselwerte auf verschiedenen Ebenen und mit verschiedenen Geltungsbereichen angegeben werden.

    [DEFAULT]
    # Defines a global default for bucket-name
    bucket-name = my-global-default-bucket-name
    
    # Defines a default for bucket-name, which applies to all 'compute' commands
    compute.bucket-name = bucket-name-for-image-import-export
    				
    # Defines a default for bucket-name, which applies to all 'os object' commands (e.g., os object get)
    os.object.bucket-name = bucket-name-for-object-commands
    
    # Defines a default for bucket-name, for the 'os object multipart list' command
    os.object.multipart.list.bucket-name = bucket-name-for-multipart-list
  • Schlüssel für mehrere Werte. Einige Optionen, wie --include und --exclude im Befehl oci os object bulk-upload, können mehrmals angegeben werden. Beispiel:

    oci os object bulk-upload -ns my-namespace -bn my-bucket --src-dir my-directory --include *.txt --include *.png

    Das nächste Beispiel zeigt, wie Sie die --include-Werte in die Datei --cli-rc-file eingeben.

    [DEFAULT]
    os.object.bulk-upload.include =
    			*.txt
    			*.png

    Im vorherigen Beispiel wird für jede Zeile ein Wert angegeben, und jede Zeile muss unter dem Schlüssel eingerückt werden. Sie können Tabulatoren oder Leerzeichen verwenden, und die Einzugsweite spielt keine Rolle. Sie können einen Wert auch in dieselbe Zeile wie den Schlüssel setzen, weitere Werte in den folgenden Zeilen hinzufügen und eine Pfadanweisung für einen Wert verwenden. Beispiel:

    [DEFAULT]
    os.object.bulk-upload.include = *.pdf
    			*.txt
    			*.png
    			my-subfolder/*.tiff
  • Schlüssel für Flags. Einige Befehlsoptionen sind Flags, wie --force, die einen booleschen Wert verwenden. Um ein Flag für die Option --force festzulegen, verwenden Sie den folgenden Befehl.

    os.object.delete.force=true

Befehlsaliasnamen angeben

Geben Sie benannte Abfragen im Abschnitt OCI_CLI_COMMAND_ALIASES der CLI-Konfigurationsdatei an. Es gibt zwei Typen von Aliasnamen, globale Aliasnamen und Aliasnamen der Befehlssequenz. Das folgende Beispiel zeigt die einzelnen Aliastypen.

[OCI_CLI_COMMAND_ALIASES]
# This is a global alias that lets you use "ls" instead of "list" for any list command in the CLI.
#
ls = list

# Command examples:
# oci os object ls or oci os compute ls

# This is a command sequence alias that lets you use "oci os object rm" instead of "oci os 
# object delete". 
# <alias> = <dot-separated sequence of groups and sub-groups>.<command or group to alias>
# 
rm = os.object.delete					

# Command example:
# <alias> = rm, <sequence of groups and sub-groups> = os object, <command or group to alias> = delete	 								

Wenn Sie Standardwerte für Optionen in der CLI-Konfigurationsdatei definieren möchten, können Sie die Aliasnamen verwenden, die Sie definiert haben. Beispiel: Wenn Sie -ls als Alias für --list verwenden, können Sie einen Standardwert für eine Availability-Domain definieren, wenn Sie Instanzen mit dem folgenden Befehl auflisten.

[DEFAULT]
compute.instance.ls.compartment-id=ocid1.compartment.oc1..<unique_ID>

Optionsaliasnamen angeben

Geben Sie Optionsaliasnamen im Abschnitt OCI_CLI_PARAM_ALIASES der CLI-Konfigurationsdatei an. Optionsaliasnamen werden global angewendet. Das folgende Beispiel zeigt einige Aliasnamen für Befehlsoptionen.


[OCI_CLI_PARAM_ALIASES]
# Option aliases either start with a double hyphen (--) or are a single hyphen (-) followed by a # single letter. For example: --example-alias, -e
#
--ad = --availability-domain
--dn = --display-name
--egress-rules = --egress-security-rules
--ingress-rules = --ingress-security-rules

Wenn Sie Standardwerte für Optionen in der CLI-Konfigurationsdatei definieren möchten, können Sie die Aliasnamen verwenden, die Sie definiert haben. Beispiel: Wenn Sie -ad als Alias für --availability-domain verwenden, können Sie einen Standardwert für eine Availability-Domain definieren, wenn Sie Instanzen mit dem folgenden Befehl auflisten.

[DEFAULT]
compute.instance.list.ad=xyx:PHX-AD-1

Benannte Abfragen angeben

Wenn Sie den Parameter --query verwenden, um die Ausgabe zu filtern oder zu ändern, können Sie benannte Abfragen definieren, anstatt einen JMESPath-Ausdruck in der Befehlszeile zu verwenden.

Geben Sie benannte Abfragen im Abschnitt OCI_CLI_CANNED_QUERIES der CLI-Konfigurationsdatei an.

Beispiele für benannte Abfragen
[OCI_CLI_CANNED_QUERIES]
#  For list results, this gets the ID and display-name of each item in the list. 
#  Note that when the names of attributes have dashes in them they need to be surrounded 
#  with double quotes. This query knows to look for a list because of the [*] syntax 

get_id_and_display_name_from_list=data[*].{id: id, "display-name": "display-name"}
 
get_id_and_display_name_from_single_result=data.{id: id, "display-name": "display-name"}
						
#  Retrieves a comma separated string, for example:
#  ocid1.instance.oc1.phx.xyz....,cli_test_instance_675195,RUNNING
#						
get_id_display_name_and_lifecycle_state_from_single_result_as_csv=data.[id, "display-name", "lifecycle-state"] | join(`,`, @)					
						
#  Retrieves comma separated strings from a list of results
#
get_id_display_name_and_lifecycle_state_from_list_as_csv=data[*].[join(`,`, [id, "display-name", "lifecycle-state"])][]
 
#  Filters where the display name contains some text
#
filter_by_display_name_contains_text=data[?contains("display-name", `your_text_here`)]	
						
#  Filters where the display name contains some text and pull out certain attributes(id and time-created)
#
filter_by_display_name_contains_text_and_get_attributes=data[?contains("display-name", `your_text_here`)].{id: id, timeCreated: "time-created"}
 
#  Get the top 5 results from a list operation
#						
get_top_5_results=data[:5]
 
#  Get the last 2 results from a list operation
#
get_last_2_results=data[-2:]				

Sie können jede der folgenden Abfragen mit der folgenden Syntax referenzieren: query://<query name>.

Beispiel: Um ID und Anzeigename aus einer Liste abzurufen, führen Sie den folgenden Befehl aus.

oci compute instance list -c $C --query query://get_id_and_display_name_from_list

Autovervollständigung aktivieren

Wenn Sie das CLI-Installationsprogramm verwendet haben, müssen Sie die Autovervollständigung nicht konfigurieren, da sie automatisch aktiviert wird.

Um die Autovervollständigung (Tab-Vervollständigung) für eine manuelle CLI-Installation zu aktivieren, führen Sie den folgenden Befehl aus.

oci setup autocomplete

Um die Autovervollständigung nur für eine Session zu aktivieren, führen Sie den folgenden Befehl aus.

eval "$(_OCI_COMPLETE=source oci)"
Hinweis

Support für Autovervollständigung in Windows

Die Autovervollständigung unter Windows wird nur unterstützt, wenn Sie PowerShell verwenden. Ein Skript wird ausgeführt, um dieses Feature zu aktivieren. Sie müssen die PowerShell-Ausführungs-Policy jedoch in RemoteSigned ändern. Um diese Policy zu konfigurieren, führen Sie den folgenden Befehl in der PowerShell-Befehlszeile aus.

Set-ExecutionPolicy RemoteSigned

Proxyserver angeben

Wenn in Ihrer Umgebung die Verwendung eines Proxyservers für ausgehende HTTP-Anforderungen erforderlich ist, können Sie die Proxyeinstellung mithilfe einer Umgebungsvariablen angeben.

Um einen Proxyserver zu konfigurieren, setzen Sie die Umgebungsvariablen http_proxy, https_proxy, HTTP_PROXY und HTTPS_PROXY auf den richtigen Proxyserver in Ihrer Umgebung.

Beispiel für eine Linux- oder Unix-Shell-Umgebung:

export "https_proxy=http://www-proxy-example.com:80"
In PowerShell:
$Env:https_proxy = "http://www-proxy-example.com:80"

FIPS-validierte Librarys verwenden

Die CLI kann für die Verwendung von FIPS-validierten Librarys unter Linux konfiguriert werden. Die CLI basiert auf dem Oracle Cloud Infrastructure-SDK für Python und nutzt kryptografische Librarys auf Betriebssystemebene.

Umgebung konfigurieren

  1. Prüfen Sie, ob die installierte Version von OpenSSL FIPS-konform ist. Führen Sie den folgenden Befehl aus:
    openssl version

    Wenn "fips" nicht Teil des Versionsnamens ist, müssen Sie OpenSSL auf eine FIPS-konforme Version upgraden. Sie können die neuesten Versionen von OpenSSL hier herunterladen: https://www.openssl.org/source/

  2. Bestimmen Sie den Speicherort der FIPS-konformen Version von libcrypto:
    ls -l /usr/lib64/libcrypto*
  3. Setzen Sie die Umgebungsvariable OCI_CLI_FIPS_LIBCRYPTO_FILE auf den Speicherort von libcrypto:
    export OCI_CLI_FIPS_LIBCRYPTO_FILE=</path/to/libcrypto.x.x.x>

    Wenn Sie diesen Befehl nicht zu Beginn jeder Session ausführen möchten, können Sie ihn zur Datei your.bashrc oder. bash_profile hinzufügen.

    Mit folgendem Befehl können Sie bestätigen, dass die Umgebungsvariable richtig festgelegt ist:

    set | grep OCI_CLI_FIPS_LIBCRYPTO_FILE

Sie können jetzt mit dem unter Schnellstart beschriebenen Standardinstallationsprozess fortfahren

Konfiguration überprüfen

Um sicherzustellen, dass die CLI die Library verwendet, die Sie im Schritt CLI konfigurieren angegeben haben, führen Sie die folgenden Befehle in Python aus. Achten Sie darauf, dieselbe Umgebung wie die CLI zu verwenden.

import ssl
ssl.FIPS_mode()

Die Rückgabe sollte 1 lauten, was bedeutet, dass SSL die von der Umgebungsvariablen OCI_CLI_FIPS_LIBCRYPTO_FILE angegebene Library verwendet.