Utilizzo dell'interfaccia a riga di comando con un dispositivo dell'infrastruttura Roving Edge

Viene descritto come utilizzare l'interfaccia della riga di comando per accedere a un dispositivo dell'infrastruttura Roving Edge.

L'interfaccia CLI (Command Line Interface) di Oracle Cloud Infrastructure fornisce un set di comandi per configurare ed eseguire i task dell'infrastruttura Roving Edge. Utilizzare la CLI come alternativa all'esecuzione dei comandi dalla console del dispositivo. A volte è necessario utilizzare l'interfaccia CLI per completare alcuni task in cui non è disponibile alcun equivalente nella console del dispositivo.

Utilizza le interfacce CLI per eseguire i task del servizio dell'infrastruttura Roving Edge all'interno di Oracle Cloud Infrastructure Cloud. Questi task possono includere la richiesta di nodi e l'esecuzione di task direttamente sui nodi del dispositivo. Installare la CLI separatamente su ciascun dispositivo. Le interfacce CLI installate sui dispositivi vengono eseguite localmente all'interno dell'ambiente e non richiedono l'accesso a Internet.

Versione CLI minima richiesta

La versione CLI minima richiesta per l'infrastruttura Roving Edge è la 2.12.1.

Determinazione delle versioni CLI

Accedere al seguente URL per visualizzare la versione attualmente disponibile dell'interfaccia CLI:

https://github.com/oracle/oci-cli/blob/master/CHANGELOG.rst

Immettere il seguente comando al prompt per visualizzare la versione dell'interfaccia CLI attualmente installata sul computer:

oci --version

Se sul computer è presente una versione precedente a quella attualmente disponibile, installare la versione più recente.

Nota

Eseguire sempre l'aggiornamento alla versione più recente dell'interfaccia CLI. L'interfaccia CLI non viene aggiornata automaticamente e l'interfaccia CLI è possibile accedere a funzionalità nuove o aggiornate solo installando la versione corrente.

Aggiornamento del file host

Aprire il file /etc/hosts e aggiungere una voce ip_address host_name per il RED.

Dove ip_address è l'indirizzo IP del dispositivo dell'infrastruttura Roving Edge e host_name è il nome dell'host dell'infrastruttura Roving Edge su cui si esegue l'interfaccia CLI.

Ad esempio:

10.0.1.8 rover.mycompany.com

Per accedere al nome host, eseguire i comandi seguenti:

  • Scaricare il certificato redroot.pem:

    echo -n | openssl s_client -showcerts -connect ip_address:8015 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > redroot.pem

  • Quindi visualizzare i nomi host DNS:

    openssl x509 -in redroot.pem -text -noout | grep DNS

In caso di ritorno del comando, viene visualizzato quanto segue:

  • DNS:*.certcommonname.com: indica un certificato con caratteri jolly. Prefisso il certificato con il sottodominio di vostra scelta "ex: rover" e aprire il file /etc/hosts e aggiungere una riga con il seguente:

    10.145.140.5 rover.certcommonname.com

  • DNS:rover-install-red-1, DNS:…,: scegliere uno qualsiasi degli output DNS e aggiungere la riga seguente al file /etc/hosts:

    10.145.140.5 rover-install-red-1

Aprire il file /etc/hosts e aggiungere una riga con la riga seguente:

10.145.140.5 rover.mycompany.com otec-console-local rover-install-red-1

Se il valore del parametro richiesto è elencato come variabile, ad esempio name, è necessario fornire un valore. Immettere il comando visualizzato nella documentazione.

L'inclusione di [OPTIONS] nella sintassi del comando indica parametri facoltativi. Accedere alla Guida in linea dell'interfaccia CLI per un elenco di parametri facoltativi e del relativo utilizzo.

Installazione della CLI

L'installazione e la configurazione delle interfacce CLI vengono descritte in dettaglio nell'argomento Command Line Interface (CLI) nella documentazione di Oracle Cloud Infrastructure.

Impostazione del file di configurazione

Prima di configurare il file di configurazione, è necessario acquisire le seguenti informazioni:

  • OCID tenancy dell'infrastruttura Roving Edge. Ottenere l'OCID della tenancy utilizzando il comando seguente:

    curl -k https://ip_address:12060/v1/tenants/orei

    dove ip_address è l'indirizzo IP del dispositivo dell'infrastruttura Roving Edge. L'OCID tenancy è contenuto nella restituzione, ad esempio:

    {
      "id" : "ocid1.tenancy.orei..uniqueID",
      "name" : "orei"
    }

    In alternativa, immettere l'URL riportato di seguito nel browser Web della console del dispositivo:

    https://ip_address:12060/v1/tenants/orei

    L'OCID tenancy viene restituito nel browser Web.

  • OCID IAM (Identity and Access Management) dell'utente dell'infrastruttura Roving Edge. Ottenere l'OCID della tenancy mediante i passi riportati di seguito.

    1. Accedere alla console del dispositivo per il nodo del dispositivo.

    2. Aprire il menu di navigazione e selezionare Identity Management > Utenti.

      Viene visualizzata la pagina Utenti. Tutti gli utenti sono elencati in formato tabulare.

    3. Selezionare l'utente di cui si desidera ottenere i dettagli. Viene visualizzata la pagina Dettagli dell'utente.

    4. Trovare la riga OCID in Informazioni utente nella pagina Dettagli, quindi copiare e salvare queste informazioni.

      Mantenere aperta la pagina Web dell'utente IAM in base alle esigenze per caricare la chiave pubblica in formato PEM.

    5. Creare una directory .oci nella directory home dell'host in cui è installata l'interfaccia CLI OCI. Ad esempio:

      • Linux e Macintosh:

        cd $HOME
        mkdir .oci
        cd .oci
      • Windows PowerShell:

        mkdir %HOMEDRIVE%%HOMEPATH%\.oci
        cd ~
        cd .oci
  • Coppia di chiavi RSA in formato PEM: in un terminale Linux o Macintosh o nella finestra PowerShell di Windows, passare alla directory .oci ed eseguire:

    oci setup keys

    Il comando crea i seguenti file nella directory .oci:

    • oci_api_key_public.pem

    • oci_api_key.pem

    Tornare alla console del dispositivo e andare alla pagina Dettagli utente IAM. Selezionare Chiavi API sul lato sinistro della finestra, quindi selezionare Aggiungi chiave pubblica e selezionare il file oci_api_key_public.pem da caricare.

    Dopo aver caricato la chiave, registrare il valore Impronta in quanto sarà necessario in un secondo momento per aggiornare il file di configurazione.

    Nella directory .oci creare il file config e inserirlo nei seguenti campi:

    [DEFAULT]
    user=user_ocid_from_RED_console
    fingerprint=your_fingerprint_generated_after_uploading_the_public_key
    key_file=path_to_home_directory/.oci/oci_api_key.pem
    tenancy=tenancy_ocid_from_curl_command_or_web_browser
    region=region_name
     
    Example:
    [DEFAULT]
    user=ocid1.user.orei..uniqueID
    fingerprint=10:00:00:db:dd:c4:de:71:a1:01:10:88:f9:95:1e:23
    tenancy=ocid1.tenancy.orei..uniqueID
    region=us-ashburn-1
    key_file=/Users/username/.oci/oci_api_key.pem

Se durante la creazione della chiave PEM è stata inclusa una passphrase, aggiungere una riga con:

pass_phrase=your_passphrase 
Nota

Gli OCID dell'infrastruttura Roving Edge, ad esempio per user e tenancy, contengono orei nei valori.

Se si dispone già di un file config con un profilo DEFAULT, è possibile creare più voci con un profilo con il nome desiderato.

Ogni tenancy (dispositivo) dell'infrastruttura Roving Edge richiede un proprio profilo. È possibile utilizzare un nome base e incrementare il numero per ciascun dispositivo. Nell'esempio seguente viene utilizzato il nome profilo ROVINGEDGE1 dal nome base ROVINGEDGE:

L'esempio seguente utilizza il profilo ROVINGEDGE1:

[DEFAULT]
user=user_ocid
fingerprint=your_fingerprint
key_file=path_to_home_directory/.oci/oci_api_key.pem
tenancy=tenancy_ocid
region=region_name
[ROVINGEDGE1]
user=user_ocid_from_RED_console_UI
fingerprint=your_fingerprint_generated_after_uploading_the_public_key
key_file=path_to_home_directory/.oci/oci_api_key.pem
tenancy=tenancy_ocid_from_curl_command_or_web_browser
region=region_name
 
Example:
[DEFAULT]
user=ocid1.user.oc1..uniqueID
fingerprint=10:00:00:db:dd:c4:de:71:a1:01:10:88:f9:95:1e:23
tenancy=ocid1.tenancy.oc1..uniqueID
region=us-ashburn-1
key_file=/Users/username/.oci/oci_api_key.pem
[ROVINGEDGE1]
user=ocid1.user.orei..uniqueID
fingerprint=10:00:00:db:dd:c4:de:71:a1:01:10:88:f9:95:1e:23
tenancy=ocid1.tenancy.orei..uniqueID
region=us-ashburn-1
key_file=/Users/username/.oci/oci_api_key.pem
Nota

Tutti gli OCIDS dell'infrastruttura Roving Edge contengono la stringa orei.

Se si utilizza un nome di profilo non predefinito, includere l'opzione --profile profile_name in tutti i comandi dell'interfaccia CLI. Per questo esempio, l'uso del profilo ROVINGEDGE1 richiede di includere --profile ROVINGEDGE1 nella sintassi CLI. La sezione "Impostazione del file RC dell'interfaccia CLI OCI" riportata di seguito descrive un metodo facoltativo per eliminare questo requisito.

Ogni dispositivo di infrastruttura Roving Edge richiede un proprio profilo. Selezionare un nome base come ROVINGEDGE e incrementare il numero di ciascun dispositivo. Ad esempio: ROVINGEDGE1.

Impostazione del file RC dell'interfaccia CLI OCI

Oracle consiglia vivamente di impostare un file RC CLI OCI facoltativo quando si utilizzano i dispositivi dell'infrastruttura Roving Edge. L'impostazione di un file RC dell'interfaccia CLI OCI semplifica l'esecuzione dei comandi CLI eliminando la necessità di includere l'opzione --profile profile_name in tutti i comandi CLI.

Il file RC dell'interfaccia CLI OCI deve corrispondere al profilo impostato nel file config. Se si utilizza un profilo DEFAULT nel file config, anche il file RC dell'interfaccia CLI OCI utilizza DEFAULT. Se è stato creato un profilo con un altro nome, ad esempio ROVINGEDGE1, utilizzare il profilo ROVINGEDGE1 per il file RC dell'interfaccia CLI OCI.

Prima di impostare il file RC dell'interfaccia CLI OCI, eseguire i task riportati di seguito per ottenere le informazioni riportate di seguito.

  • Crea un bundle di certificati:

    Tornare alla posizione in cui sono state generate le chiavi PEM ed eseguire il comando seguente:

    echo -n | openssl s_client -showcerts -connect ip_address:8015|sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > bundle.pem

    Nella directory .oci viene creato un file con tre certificati. Registrare il percorso per uso futuro.

  • Creare un file denominato oci_cli_rc nella directory .oci con i seguenti contenuti:

    [DEFAULT]
    # Specifies cert bundle to use
    cert-bundle = path_to_bundle/.oci/bundle.pem
    # Specifies default compartment id so it doesn't have to be set as env variable or on CLI
    compartment-id = tenancy_ocid_used_in_config_file
    # Defines endpoint to use for compute
    compute.endpoint = https://otec-console-local:19060
    # Defines endpoint to use for object storage
    os.endpoint = https://otec-console-local:8019
    # Defines namespace
    os.namespace = rover-namespace
    # Defines endpoint to use for IAM
    iam.endpoint = https://otec-console-local:12050
    # Defined endpoint for block
    bv.endpoint = https://otec-console-local:5012
    # Defined endpoint for VCN 18336
    network.endpoint = https://otec-console-local:18336

Se si dispone già di un file oci_cli_rc configurato con una voce DEFAULT, trovare il nome utilizzato nel file config. Se si utilizza un altro nome di profilo (ad esempio, ROVINGEDGE1), il file oci_cli_rc include tale nome. Ad esempio:

[DEFAULT]
# Defines OCI Tenancy object namespace
os.namespace = idbcq3arv1py
[ROVINGEDGE1]
# Specifies cert bundle to use
cert-bundle = /Users/username/.oci/bundle.pem
# Specifies default compartment id so it doesn't have to be set as env variable or on CLI
compartment-id = ocid1.tenancy.orei..uniqueID
# Defines Roving Edge endpoint to use for compute
compute.endpoint = https://otec-console-local:19060
# Defines Roving Edge endpoint to use for object storage
os.endpoint = https://otec-console-local:8019
# Defines Roving Edge object namespace
os.namespace = rover-namespace
# Defines Roving Edge endpoint to use for IAM
iam.endpoint = https://otec-console-local:12050
# Defined Roving Edge endpoint for block
bv.endpoint = https://otec-console-local:5012
# Defined Roving Edge endpoint for VCN 18336
network.endpoint = https://otec-console-local:18336

Uso dell'interfaccia CLI

È possibile specificare le opzioni dell'interfaccia CLI utilizzando i comandi indicati di seguito.

  • --option value

    or

  • --option=value

Non utilizza il file RC dell'interfaccia CLI OCI

Se non si utilizza un file oci_cli_rc, la sintassi CLI di base per l'infrastruttura Roving Edge è la seguente:

oci resource action options --endpoint resource_endpoint --compartment-id Roving_Edge_tenancy_ocid_used_in_config_file --cert-bundle path_to_cert bundle

Questa sintassi è applicata ai seguenti elementi:

  • oci è il nome del comando CLI abbreviato

  • os bucket è un esempio di resource

  • create è un esempio di action

  • Le altre stringhe sono options

Gli endpoint delle risorse sono:

  • Storage degli oggetti: https://otec-console-local:8019

    I comandi dello storage degli oggetti devono includere anche l'opzione --namespace rover-namespace.

  • Computazione: https://otec-console-local:19060

  • Storage a blocchi: https://otec-console-local:5012

  • IAM: https://otec-console-local:12050

  • Rete: https://otec-console-local:18336

  • Sincronizzazione dati: https://otec-console-local:21060

  • Aggiornamento del sistema: https://otec-console-local:23060

  • Eventi: https://otec-console-local:18000
  • Monitoraggio: https://otec-console-local:22060
  • Strumenti diagnostici: https://otec-console-local:31060

Includere il valore otec-console-local per la voce di riga IP address nel file /etc/hosts per utilizzare la funzionalità del file oci_cli_rc.

Se stai utilizzando un certificato Oracle Cloud Infrastructure, gli endpoint delle risorse sono:

Ex: DNS:*.commonname.com

  • Storage degli oggetti: https://rover.commonname.com:8019

    I comandi dello storage degli oggetti devono includere anche l'opzione --namespace rover-namespace.

  • Computazione: https://rover.commonname.com:19060

  • Storage a blocchi: https://rover.commonname.com:5012

  • IAM: https://rover.commonname.com:12050

  • Rete: https://rover.commonname.com:18336

  • Sincronizzazione dati: https://rover.commonname.com:21060

  • Aggiornamento del sistema: https://rover.commonname.com:23060

  • Eventi: https://rover.commonname.com:18000

  • Monitoraggio: https://rover.commonname.com:22060

  • Strumenti diagnostici: https://rover.commonname.com:31060

Nota

Se il certificato del dispositivo è autofirmato, includere il valore otec-console-local per la riga dell'indirizzo IP nel file /etc/hosts per utilizzare la funzionalità del file oci_cli_rc.

Di seguito è riportato un esempio di comando di una CLI.

oci os bucket list --compartment-id ocid1.tenancy.orei..uniqueID --endpoint https://otec-console-local:8019 --cert-bundle /Users/username/.oci/bundle.pem

Se la voce del file config per l'ambiente dell'infrastruttura Roving Edge non è DEFAULT, includere l'opzione --profile profile_name nella sintassi CLI. Ad esempio:

oci os bucket list --compartment-id ocid1.tenancy.orei..uniqueID --endpoint https://otec-console-local:8019 --cert-bundle /Users/username/.oci/bundle.pem --profile ROVINGEDGE1
Nota

Evitare di inserire informazioni riservate come parte del nome visualizzato.

Utilizzo del file RC dell'interfaccia CLI OCI

Se si utilizza il file the oci_cli_rc, la sintassi CLI di base per l'infrastruttura Roving Edge è la seguente:

oci resource action options

Questa sintassi è applicata ai seguenti elementi:

  • oci è il nome del comando CLI abbreviato

  • os bucket è un esempio di resource

  • list è un esempio di action

  • Le altre stringhe sono options

L'esempio di riga di comando riportato di seguito mostra un costrutto tipico di comandi CLI per elencare i bucket in un compartimento specificato.

oci os bucket list --compartment-id ocid1.tenancy.orei..uniqueID

Se la voce del file config per l'ambiente dell'infrastruttura Roving Edge non è DEFAULT, è necessario includere anche l'opzione --profile profile_name nella sintassi CLI. Ad esempio:

oci os bucket list --compartment-id ocid1.tenancy.orei..uniqueID --endpoint https://otec-console-local:8019 --cert-bundle /Users/username/.oci/bundle.pem --profile ROVINGEDGE1

Parametri obbligatori e facoltativi

La maggior parte delle utility della riga di comando include parametri obbligatori e facoltativi inclusi nel comando. I parametri richiesti sono inclusi nella sintassi del comando, ad esempio:

oci os bucket create --name name [OPTIONS]

Se il valore del parametro richiesto è elencato come variabile, ad esempio name, è necessario fornire un valore. Immettere il comando visualizzato nella documentazione.

L'inclusione di [OPTIONS] nella sintassi del comando indica parametri facoltativi. Accedere alla Guida in linea dell'interfaccia CLI per un elenco di parametri facoltativi e del relativo utilizzo.

Esecuzione dei comandi CLI sulle istanze ospitate sul dispositivo

Seguire queste linee guida per eseguire i comandi CLI sulle istanze di computazione ospitate dai dispositivi Roving Edge.

Nota

Le istruzioni in questo argomento riguardano i computer host Oracle Linux.

  • Chiedi all'istanza di passare attraverso il seguente IP locale:

    169.254.169.254

    Chiedere all'istanza di fare riferimento al dispositivo Roving Edge come otec-console-local.

  • Utilizzare le seguenti regole delle tabelle IP:

    { for i in 19060 8019 12050 21060 22060 23060 22060 12060;do iptables -I 
    BareMetalInstanceServices -d 169.254.169.254/32 -p tcp -m tcp --dport $i -m 
    comment --comment "Rover service access port" -j ACCEPT;done }

    Per un elenco delle porte disponibili, vedere Service Ports.

    Nota

    In alcuni sistemi operativi, la catena BareMetalInstanceServices potrebbe invece essere InstanceServices. Utilizzare il comando iptables -L per visualizzare i componenti applicabili al sistema operativo in uso.

    Salvare la tabella IPtable in modo che le regole persistano dopo un reboot:

    iptables save

Comandi CLI non supportati

Al momento i seguenti comandi dell'interfaccia CLI non sono supportati. Se disponibili, vengono fornite soluzioni alternative.

  • CLI di storage degli oggetti: oci os list

    Il comando oci os list può essere utilizzato solo quando si include l'opzione --fields. Ad esempio:

    # oci os object list --bucket-name generic-image --fields name,size,timeCreated,md5,etag
    {
    "data": [
    {
    "archival-state": null,
    "etag": "b2c123ff0f1231c4c7f41ff92294e4a0-32",
    "md5": "ssYx/w8SUcTH9B/5IpTkoA==-32",
    "name": "exported-image",
    "size": 2132357120,
    "storage-tier": null,
    "time-created": "2022-03-01T19:50:03.076000+00:00",
    "time-modified": null
    },    {
          "archival-state": null,
          "etag": "fe5e3c12e12e31de65b86722a6fe29e7-32",
          "md5": "/l48AOleMd5luGcipv4p5w==-32",
          "name": "imported-image-20210830-1542_ocid1.image.oc1.iad..uniqueID.oci",
          "size": 2132224000,
          "storage-tier": null,
          "time-created": "2022-03-01T19:50:59.968000+00:00",
          "time-modified": null
        }
      ],
      "prefixes": []
    }
  • CLI di computazione: oci compute instance list-vnics

    Il comando oci compute instance list-vnics elenca le VNIC collegate all'istanza specificata e viene spesso utilizzato per ottenere l'IP pubblico per un nodo di calcolo. Questa CLI non è attualmente supportata nell'infrastruttura Roving Edge. Puoi ottenere informazioni sulla VNIC, incluso l'indirizzo IP associato a una VNIC collegata a un nodo di calcolo, utilizzando uno dei metodi riportati di seguito.

    • Console dispositivo: andare alla posizione seguente:

      Compute > Istanze > Dettagli istanza > VNIC collegate

      Nella finestra di dialogo visualizzata sono elencati gli indirizzi IP delle VNIC.

    • CLI: oci compute instance list-vnics

      Eseguire il comando riportato di seguito per elencare tutti i collegamenti della VNIC.

      oci compute vnic-attachment list --instance-id <> --all

      Successivamente, eseguire il comando seguente per la VNIC specifica per la quale si desidera ottenere i dettagli:

      oci network vnic get --vnic-id <>

      L'esempio seguente mostra questi due comandi vengono eseguiti insieme ai rispettivi resi:

      # oci compute vnic-attachment list --instance-id ocid1.instance.orei.orei-1..uniqueID --all
      {
        "data": [
          {
            "availability-domain": "orei-1-ad-1",
            "compartment-id": "ocid1.tenancy.orei..uniqueID",
            "display-name": null,
            "id": "ocid1.vnicattachment.orei.orei-1..uniqueID",
            "instance-id": "ocid1.instance.orei.orei-1..uniqueID",
            "lifecycle-state": "ATTACHED",
            "nic-index": 0,
            "subnet-id": "ocid1.subnet.orei.orei-1..uniqueID",
            "time-created": "2022-03-01T21:07:00.937000+00:00",
            "vlan-id": null,
            "vlan-tag": 1,
            "vnic-id": "ocid1.vnic.orei.orei-1..uniqueID"
          }
        ]
      }
      
      # oci network vnic get --vnic-id ocid1.vnic.orei.orei-1..uniqueID
      {
        "data": {
          "availability-domain": "orei-1-ad-1",
          "compartment-id": "ocid1.tenancy.orei..uniqueID",
          "defined-tags": {},
          "display-name": "test-instance",
          "freeform-tags": {},
          "hostname-label": "test-instance",
          "id": "ocid1.vnic.orei.orei-1..uniqueID",
          "is-primary": true,
          "lifecycle-state": "AVAILABLE",
          "mac-address": "02:00:17:00:04:00",
          "nsg-ids": [],
          "private-ip": "10.0.0.2",
          "public-ip": "10.145.142.128",
          "skip-source-dest-check": false,
          "subnet-id": "ocid1.subnet.orei.orei-1..",
          "time-created": "2022-03-01T21:07:00.155000+00:00",
          "vlan-id": null
        },
        "etag": "2c082d1c"
      }

      Se è collegata una sola VNIC, è possibile combinare questi comandi CLI con altri strumenti Linux per limitare l'output solo all'indirizzo IP pubblico utilizzando il seguente comando:

      oci compute vnic-attachment list --instance-id <> --all|grep -m 1 vnic-id|awk -F'"' '{print $4}'|xargs -I{} oci network vnic get --vnic-id {}|grep public-ip|awk -F'"' '{print $4}'
      

      Ad esempio:

      # oci compute vnic-attachment list --instance-id ocid1.instance.orei.orei-1..uniqueID --all|grep -m 1 vnic-id|awk -F'"' '{print $4}'|xargs -I{} oci network vnic get --vnic-id {}|grep public-ip|awk -F'"' '{print $4}'
      10.145.142.128

Accesso alla Guida dell'interfaccia della riga di comando

A tutti i comandi della Guida dell'interfaccia CLI è associato un componente della Guida a cui è possibile accedere dalla riga di comando. Per visualizzare la Guida, immettere i comandi seguiti dalle opzioni --help o -h. Ad esempio:

oci os bucket --help