Uso de la interfaz de línea de comandos con un dispositivo de Roving Edge Infrastructure

Describe cómo utilizar la interfaz de línea de comandos para acceder a un dispositivo de Roving Edge Infrastructure.

La interfaz de línea de comandos (CLI) de Oracle Cloud Infrastructure proporciona un juego de comandos para configurar y ejecutar tareas de Roving Edge Infrastructure. Use la CLI como alternativa a la ejecución de comandos desde la consola de dispositivos. A veces, debe usar la CLI para completar determinadas tareas para las que no hay un equivalente disponible en la consola de dispositivos.

Utilice CLI para realizar tareas del servicio Roving Edge Infrastructure en la nube de Oracle Cloud Infrastructure. Estas tareas pueden incluir la solicitud de nodos y la ejecución de tareas directamente en los nodos del dispositivo. Instale la CLI por separado en cada dispositivo. Las CLI instaladas en los dispositivos se ejecutan localmente en su entorno y no requieren acceso a Internet.

Versión de CLI mínima necesaria

La versión de CLI mínima necesaria para Roving Edge Infrastructure es la 2.12.1.

Determinación de las versiones de CLI

Acceda a la siguiente URL para ver la versión disponible actualmente de la CLI:

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

Introduzca el siguiente comando en el indicador para ver la versión de la CLI instalada actualmente en la máquina:

oci --version

Si tiene una versión en su máquina anterior a la versión disponible actualmente, instale la versión más reciente.

Nota

Actualizar siempre a la última versión de la CLI. La CLI no se actualiza automáticamente y solo puede acceder a las funciones de la CLI nuevas o actualizadas instalando la versión actual.

Actualización del archivo de hosts

Abra el archivo /etc/hosts y agregue una entrada ip_address host_name para RED.

Donde ip_address es la dirección IP del dispositivo de Roving Edge Infrastructure y host_name es el nombre del host de Roving Edge Infrastructure en el que está ejecutando la CLI.

Por ejemplo:

10.0.1.8 rover.mycompany.com

Para acceder al nombre de host, ejecute los siguientes comandos:

  • Descargue el certificado redroot.pem:

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

  • A continuación, muestre los nombres de host DNS:

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

En el retorno del comando, aparece lo siguiente:

  • DNS:*.certcommonname.com: indica un certificado comodín. Asigne un prefijo al certificado con el subdominio de su elección "ex: rover", abra el archivo /etc/hosts y agregue una línea con lo siguiente:

    10.145.140.5 rover.certcommonname.com

  • DNS:rover-install-red-1, DNS:…,: seleccione cualquiera de las salidas de DNS y agregue la siguiente línea al archivo /etc/hosts:

    10.145.140.5 rover-install-red-1

Abra el archivo /etc/hosts y agregue una línea con lo siguiente:

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

Si el valor de parámetro necesario aparece como una variable (por ejemplo name) debe proporcionar un valor. Introduzca el comando tal y como aparece en la documentación.

La inclusión de [OPTIONS] en la sintaxis del comando indica parámetros opcionales. Acceda a la ayuda en línea de la CLI para obtener una lista de los parámetros opcionales y su uso.

Instalación de la CLI

La instalación y la configuración de las CLI se describen detalladamente en el tema Interfaz de línea de comandos (CLI) de la documentación de Oracle Cloud Infrastructure.

Configuración del archivo de configuración

Antes de configurar el archivo de configuración, debe recopilar la siguiente información:

  • OCID de arrendamiento de Roving Edge Infrastructure. Obtenga el OCID del arrendamiento mediante el siguiente comando:

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

    donde ip_address es la dirección IP del dispositivo de Roving Edge Infrastructure. El OCID de arrendamiento está incluido en la devolución, por ejemplo:

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

    También puede introducir la siguiente URL en el explorador web de la consola de dispositivos:

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

    El OCID de arrendamiento se devuelve en el explorador web.

  • OCID de Identity and Access Management (IAM) de usuario de Roving Edge Infrastructure. Obtenga el OCID del arrendamiento mediante los siguientes pasos:

    1. Acceda a la consola de dispositivos para el nodo de dispositivo.

    2. Abra el menú de navegación y seleccione Gestión de identidad > Usuarios.

      Aparecerá la página Usuarios. Todos los usuarios se muestran en formato tabular.

    3. Seleccione el usuario cuyos detalles desea obtener. Aparece la página Detalles del usuario.

    4. Busque la línea OCID en Información de usuario en la página Detalles, copie el enlace y guarde esta información.

      Mantenga la página web de usuario de IAM abierta cuando la necesite para cargar la clave pública en formato PEM.

    5. Cree un directorio .oci en el directorio raíz del host en el que tiene instalada la CLI de OCI. Por ejemplo:

      • Linux y Macintosh:

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

        mkdir %HOMEDRIVE%%HOMEPATH%\.oci
        cd ~
        cd .oci
  • Par de claves RSA en formato PEM: en un terminal Linux o Macintosh, o en la ventana PowerShell de Windows, cambie al directorio .oci y ejecute:

    oci setup keys

    El comando crea los siguientes archivos en el directorio .oci:

    • oci_api_key_public.pem

    • oci_api_key.pem

    Vuelva a la consola de dispositivos y vaya a la página Detalles de usuario de IAM. Seleccione Claves de API en la parte izquierda de la ventana y, a continuación, seleccione Agregar clave pública y seleccione el archivo oci_api_key_public.pem para cargar.

    Después de cargar la clave, registre el valor de Huella, ya que la necesitará más adelante para actualizar el archivo de configuración.

    En el directorio .oci, cree el archivo config y rellénelo con lo siguiente:

    [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

Si incluyó una frase de contraseña al crear la clave PEM, agregue una línea con:

pass_phrase=your_passphrase 
Nota

Los OCID de Roving Edge Infrastructure, como para user y tenancy, contienen orei en los valores.

Si ya tiene un archivo config con un perfil DEFAULT, puede crear más entradas con un perfil con el nombre que desee.

Cada arrendamiento (dispositivo) de Roving Edge Infrastructure necesita su propio perfil. Puede utilizar un nombre base e incrementar el número de cada dispositivo. En el siguiente ejemplo se utiliza el nombre de perfil ROVINGEDGE1 del nombre base ROVINGEDGE:

En el siguiente ejemplo se utiliza el perfil 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

Todos los OCIDS de Roving Edge Infrastructure contienen la cadena orei.

Si utiliza un nombre de perfil no predeterminado, incluya la opción --profile profile_name en todos los comandos de la CLI. Para este ejemplo, el uso del perfil ROVINGEDGE1 requiere que incluya --profile ROVINGEDGE1 en la sintaxis de la CLI. En la siguiente sección, "Configuración del archivo RC de la CLI de OCI", se describe un método opcional para eliminar este requisito.

Cada Roving Edge Infrastructuredevice necesita su propio perfil. Seleccione un nombre base como ROVINGEDGE e incremente el número de cada dispositivo. Por ejemplo: ROVINGEDGE1.

Configuración del archivo RC de la CLI de OCI

Oracle recomienda configurar un archivo RC de la CLI de OCI opcional al utilizar dispositivos de Roving Edge Infrastructure. La configuración de un archivo RC de la CLI de OCI facilita la ejecución de comandos de la CLI al eliminar la necesidad de incluir la opción --profile profile_name en todos los comandos de la CLI.

El archivo RC de la CLI de OCI debe coincidir con el perfil definido en el archivo config. Si utiliza un perfil DEFAULT en el archivo config, el archivo RC de la CLI de OCI también utiliza DEFAULT. Si ha creado un perfil con otro nombre, como ROVINGEDGE1, utilice el perfil ROVINGEDGE1 para el archivo RC de la CLI de OCI.

Antes de configurar el archivo RC de la CLI de OCI, realice las siguientes tareas para obtener la siguiente información:

  • Cree un grupo de certificados:

    Vuelva al lugar donde generó las claves de PEM y ejecute el siguiente comando:

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

    Se crea un archivo con tres certificados en el directorio .oci. Registre la ruta para usarla en el futuro.

  • Cree un archivo denominado oci_cli_rc en el directorio .oci con el siguiente contenido:

    [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

Si ya tiene un archivo oci_cli_rc configurado con una entrada DEFAULT, coincida con el nombre utilizado en el archivo config. Si utiliza otro nombre de perfil (por ejemplo, ROVINGEDGE1), el archivo oci_cli_rc incluye ese nombre. Por ejemplo:

[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 de la CLI

Puede usar los siguientes comandos para especificar opciones de CLI:

  • --option value

    o

  • --option=value

No se utiliza el archivo RC de la CLI de OCI

Si no utiliza un archivo oci_cli_rc, la sintaxis básica de la CLI para Roving Edge Infrastructure es:

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

Esta sintaxis se aplica a lo siguiente:

  • oci es el nombre abreviado del comando de CLI.

  • os bucket es un ejemplo de resource

  • create es un ejemplo de action

  • Otras cadenas son options

Los puntos finales de recursos son:

  • Almacenamiento de objetos: https://otec-console-local:8019

    Los comandos de Object Storage también deben incluir la opción --namespace rover-namespace.

  • Recursos informáticos: https://otec-console-local:19060

  • Almacenamiento de bloques: https://otec-console-local:5012

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

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

  • Sincronización de datos: https://otec-console-local:21060

  • Actualización del sistema: https://otec-console-local:23060

  • Eventos: https://otec-console-local:18000
  • Supervisión: https://otec-console-local:22060
  • Herramientas de diagnóstico: https://otec-console-local:31060

Incluya el valor otec-console-local para la entrada de línea IP address en el archivo /etc/hosts para utilizar la funcionalidad del archivo oci_cli_rc.

Si utiliza un certificado de Oracle Cloud Infrastructure, los puntos finales de recursos son:

Ex: DNS:*.commonname.com

  • Almacenamiento de objetos: https://rover.commonname.com:8019

    Los comandos de Object Storage también deben incluir la opción --namespace rover-namespace.

  • Recursos informáticos: https://rover.commonname.com:19060

  • Almacenamiento de bloques: https://rover.commonname.com:5012

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

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

  • Sincronización de datos: https://rover.commonname.com:21060

  • Actualización del sistema: https://rover.commonname.com:23060

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

  • Supervisión: https://rover.commonname.com:22060

  • Herramientas de diagnóstico: https://rover.commonname.com:31060

Nota

Si el certificado de dispositivo está autofirmado, incluya el valor otec-console-local para la entrada de línea de dirección IP en el archivo /etc/hosts para utilizar la funcionalidad del archivo oci_cli_rc.

Este es un ejemplo de un comando de la CLI:

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

Si la entrada del archivo config para el entorno de Roving Edge Infrastructure no es DEFAULT, incluya la opción --profile profile_name en la sintaxis de la CLI. Por ejemplo:

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

Evite introducir información confidencial como parte del nombre mostrado.

Uso del archivo RC de la CLI de OCI

Si utiliza el archivo the oci_cli_rc, la sintaxis básica de la CLI para Roving Edge Infrastructure es:

oci resource action options

Esta sintaxis se aplica a lo siguiente:

  • oci es el nombre abreviado del comando de CLI.

  • os bucket es un ejemplo de resource

  • list es un ejemplo de action

  • Otras cadenas son options

El siguiente ejemplo de línea de comandos muestra una construcción de comandos típica de la CLI para mostrar los cubos en un compartimento especificado:

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

Si la entrada del archivo config para el entorno de Roving Edge Infrastructure no es DEFAULT, también debe incluir la opción --profile profile_name en la sintaxis de la CLI. Por ejemplo:

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

Parámetros necesarios y opcionales

La mayoría de las utilidades de la línea de comandos tienen parámetros obligatorios y opcionales que se incluyen con el comando. Los parámetros necesarios se incluyen en la sintaxis del comando; por ejemplo:

oci os bucket create --name name [OPTIONS]

Si el valor de parámetro necesario aparece como una variable (por ejemplo name) debe proporcionar un valor. Introduzca el comando tal y como aparece en la documentación.

La inclusión de [OPTIONS] en la sintaxis del comando indica parámetros opcionales. Acceda a la ayuda en línea de la CLI para obtener una lista de los parámetros opcionales y su uso.

Ejecución de comandos de la CLI en instancias alojadas en dispositivos

Siga estas directrices para ejecutar comandos de la CLI en instancias informáticas alojadas en dispositivos Roving Edge.

Nota

Las instrucciones de este tema son para las computadoras host de Oracle Linux.

  • Haga que la instancia pase por la siguiente IP local:

    169.254.169.254

    Haga que la instancia haga referencia al dispositivo Roving Edge como otec-console-local.

  • Utilice las siguientes reglas de tablas 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 }

    Consulte Service Ports para ver la lista de puertos disponibles.

    Nota

    En algunos sistemas operativos, la cadena BareMetalInstanceServices puede ser InstanceServices. Utilice el comando iptables -L para ver qué se aplica al sistema operativo.

    Guarde iptable para que las reglas se mantengan después de un reinicio:

    iptables save

Comandos de la CLI no admitidos

Actualmente no se admiten los siguientes comandos de la CLI. Cuando es posible, se indican soluciones alternativas.

  • CLI de Object Storage: oci os list

    Solo puede utilizar el comando oci os list cuando incluya la opción --fields. Por ejemplo:

    # 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 de recursos informáticos: oci compute instance list-vnics

    El comando oci compute instance list-vnics muestra las VNIC conectadas a la instancia especificada y, a menudo, se utiliza para obtener la IP pública para un nodo de cálculo. Esta CLI no está soportada actualmente en Roving Edge Infrastructure. Puede obtener información de VNIC, incluida la dirección IP asociada con una VNIC conectada a un nodo de cálculo, mediante cualquiera de los siguientes métodos:

    • Consola de dispositivos: vaya a la siguiente ubicación:

      Compute > Instancias > Detalles de instancia > VNIC asociadas

      Las direcciones IP de las VNIC se muestran en el cuadro de diálogo que aparece.

    • CLI: oci compute instance list-vnics

      En primer lugar, ejecute el siguiente comando para mostrar todas las asociaciones de VNIC:

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

      A continuación, ejecute el siguiente comando para la VNIC específica para la que desea obtener detalles:

      oci network vnic get --vnic-id <>

      En el siguiente ejemplo, se muestran estos dos comandos que se ejecutan junto con sus respectivas devoluciones:

      # 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"
      }

      Si solo hay una VNIC conectada, puede combinar estos comandos de la CLI con otras herramientas de Linux para limitar la salida solo a la dirección IP pública mediante el siguiente 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}'
      

      Por ejemplo:

      # 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

Acceso a la ayuda de la interfaz de línea de comandos

Todos los comandos de ayuda de la CLI tienen un componente de ayuda asociado al que puede acceder desde la línea de comandos. Para ver la ayuda, introduzca cualquier comando seguido de la opción --help o -h. Por ejemplo:

oci os bucket --help