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.
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:
- Der in der Option
--profile
angegebene Wert. - Der in der Umgebungsvariablen
OCI_CLI_PROFILE
angegebene Wert. - Der im Feld
default_profile
im AbschnittOCI_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 Befehloci 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.
[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)"
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"
$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
- 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/
- Bestimmen Sie den Speicherort der FIPS-konformen Version von libcrypto:
ls -l /usr/lib64/libcrypto*
- 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.