Configuración de la detección de recursos
Configure la detección de recursos para generar archivos de Terraform para los recursos existentes en el compartimento.
Utilice la función de detección de recursos de OCI para:
- Crear archivos de estado para recursos existentes en la consola y, a continuación, agregar esos recursos a una configuración de Terraform.
- Duplicar su infraestructura existente en un nuevo arrendamiento o región.
- Permite detectar el cambio de estado para los recursos actualizados.
En este tutorial, configurará la función de detección de recursos del proveedor Oracle Cloud Infrastructure Terraform en su entorno local. Para confirmar la configuración, ejecute la detección de recursos para recuperar información desde su arrendamiento y crear un script para ella.
Las tareas clave incluyen cómo:
- Crear claves RSA.
- Instalar los binarios del proveedor de Terraform de OCI.
- Configurar las variables de autenticación de la API del proveedor Terraform de OCI.
- Autenticar los comandos de la CLI del proveedor de OCI.
- Crear un script en su entorno, en relación con los dominios de disponibilidad de su arrendamiento, mediante la función de detección de recursos.
Para obtener más información, consulte Casos de uso y beneficios.
Antes de empezar
Para realizar correctamente este tutorial, debe tener lo siguiente:
- Una cuenta de Oracle Cloud Infrastructure. Consulte Solicitar y gestionar promociones de Oracle Cloud gratis.
- Un entorno MacOS, Linux o Windows:
- MacOS
- Linux (cualquier distribución)
- Puede instalar una máquina virtuales de Linux con una unidad de computación siempre gratis en Oracle Cloud Infrastructure. Consulte Cuenta gratuita: instalación de Apache y PHP en la instancia de Oracle Linux.
-
Oracle Cloud Infrastructure Cloud Shell:
-
Cloud Shell
Nota
Si utiliza Oracle Cloud Infrastructure Cloud Shell, el proveedor de Terraform de OCI ya está instalado y no necesita crear claves RSA. Omita esta sección y continúe con Add List Policy (Agregar política de lista).
-
Cloud Shell
- Cómo instalar Linux en Windows con WSL (WSL)
- Git para Windows para acceder a una máquina virtual de Linux.
1. Preparación
Prepare su entorno para autenticar y ejecutar comandos de detección de recursos. Además, recopile la información que su cuenta necesita para autenticar sus comandos.
Puede crear claves RSA para la firma de API en su cuenta de Oracle Cloud Infrastructure.
Si utiliza Cloud Shell o Resource Manager, omita la creación de las claves de RSA. Ya se ha autenticado al conectarse a la consola de OCI.
Ahora ha configurado las claves RSA para conectarse a su cuenta de OCI.
- Referencia
- Cómo generar una clave de firma de API
Si su nombre de usuario está en el grupo Administrators, omita esta sección. De lo contrario, solicite al administrador que agregue la siguiente política a su arrendamiento:
allow group <a-group-that-your-username-belongs-to> to read all-resources in tenancyCon este privilegio, puede mostrar todos los recursos de su arrendamiento.
- Conéctese a la consola de Oracle Cloud.
-
En el menú de navegación , seleccione el menú Perfil
y, a continuación, seleccione Configuración de usuario.
- Seleccione Grupos o Mis grupos, según la opción que vea.
- En un bloc de notas, copie el nombre de un grupo al que pertenece el nombre de usuario.
- Abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Políticas.
- Seleccione el compartimento:
<your-tenancy>(root) - Seleccione Crear política.
- En la página Crear política, introduzca los siguientes valores:
-
Nombre:
list-resources -
Descripción:
Allow the group <a-group-that-your-username-belongs-to> to list the resources in this tenancy. -
Compartimento:
<your-tenancy>(root)
-
Nombre:
- En Creador de Política, seleccione Mostrar Editor Manual.
- Pegue la siguiente política:
allow group <a-group-that-your-username-belongs-to> to read all-resources in tenancy - Haga clic en Crear.
Referencia: Políticas comunes
Prepare la información que necesita para autenticar los comandos del proveedor de Terraform OCI y cópielos en el blo de notas.
Si utiliza Cloud Shell, solo tendrá que buscar
<tenancy-ocid> en el siguiente paso.Si utiliza Cloud Shell, omita esta sección.
Instale la última versión de los binarios del proveedor de Terraform de OCI v4.2+:
2. Creación de un script de autenticación
Cree un script de shell para asignar información de autenticación a las variables de autenticación del proveedor de OCI. Su cuenta de Oracle Cloud Infrastructure autentica sus comandos de proveedor de OCI mediante los valores asignados a estos parámetros.
Si utiliza Cloud Shell o Resource Manager, no necesita agregar autenticación. Continúe con la sección 3. Detectar un recurso.
- Vaya a Autenticación (Detección de recursos).
- Configure las siguientes variables de entorno para la autenticación basada en claves de API:
- TF_VAR_tenancy_ocid
- TF_VAR_user_ocid
- TF_VAR_fingerprint
- TF_VAR_private_key_path
- TF_VAR_region
En esta sección, ejecute el archivo provider-oci.sh para agregar las variables de autenticación del proveedor de OCI a las variables de entorno.
3. Detección de un recurso
Descubra los dominios de disponibilidad de su arrendamiento.
Cada arrendamiento tiene una lista de dominios de disponibilidad. Al detectar los dominios de disponibilidad en su región, confirma lo siguiente:
- Su cuenta de Oracle Cloud Infrastructure puede autenticar sus comandos de proveedor de Oracle Cloud Infrastructure.
- Puede obtener información de su cuenta con la función de detección de recursos.
- En el directorio
$HOME, cree un directorio denominadoresource-discovery.cdmkdir resource-discovery - Si utiliza Cloud Shell, busque el archivo de proveedor de Terraform de OCI instalado en el directorio
/usr/bin.ls /usr/binEl nombre de archivo es:
terraform-provider-oci_<version>Nombre de archivo de ejemplo:
terraform-provider-oci_v5.2.1 - Ejecute el siguiente comando:
- En Cloud Shell:
terraform-provider-oci_<version> -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discovery - En su instancia informática o en su entorno local:
tf-oci -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discovery
Importante
- Sustituya
<tenancy-ocid>por la información de Recopilación de la información necesaria. - Si utiliza Cloud Shell, sustituya
terraform-provider-oci_<version>por el nombre de archivo que ha encontrado en el paso 2.
Salida de ejemplo:
... INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-1' INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-2' INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-3' ... INFO <date> Found 6 'availability_domain' resources. Generated under '/<home-directory>/resource-discovery/availability_domain.tf'. INFO <date> === COMPLETED ===Nota
- El OCID de arrendamiento es el OCID de compartimento para el compartimento raíz. Al proporcionar un
<compartment-ocid>específico o su<tenancy-ocid>se obtienen los mismos dominios de disponibilidad. - Para detectar recursos de identidad, no necesita mencionar un OCID de compartimento. En el ejemplo anterior, obtiene el mismo resultado si elimina
compartment_iddel comando.compartment_idpermite conocer la sintaxis de otros servicios.
- En Cloud Shell:
-
mensaje de error: Fallo al consultar los paquetes de proveedores disponibles:
- Si estás en una VPN, comprueba tu configuración de proxy.
-
Errores 401 - (Error de servicio: No autenticado):
- Tiene un valor incorrecto para uno de los siguientes:
- OCID de arrendamiento
- OCID de usuario
- huella
- Clave privada de RSA (la ruta o la clave)
- Tiene un valor incorrecto para uno de los siguientes:
-
no existe dicho host:
- Tiene un valor incorrecto para lo siguiente:
- identificador de región
- Tiene un valor incorrecto para lo siguiente:
- Vaya a Uso (Detección de recursos).
Se muestran dos opciones de comandos.
- Seleccione la opción de comando que utiliza
compartment_idcomo comando base:terraform-provider-oci -command=export -compartment_id= -output_path= - Actualice el comando base:
- En lugar de
terraform-provider-oci, utilice el comando de enlace simbólico:tf-oci - Revise la sección Descripción de parámetro para agregar valores adecuados a los parámetros del comando base:
- Utilice el comando
exportpara realizar la detección de recursos:-command=export - Agregue el OCID del compartimento en el que está detectando recursos:
-compartment_id=<tenancy-ocid> - Cree y, a continuación, especifique un directorio para los recursos detectados:
Ejemplo:
-output_path=$HOME/resource-discovery
- Utilice el comando
- En lugar de
- Busque la frase
availability_domainy observe la siguiente información:Resources that are dependent on availability domains will be generated under availability_domain.tf file. These include: oci_core_boot_volume oci_file_storage_file_system oci_file_storage_mount_target oci_file_storage_snapshot - Para servicios, utilice:
-
availability_domain(aunque no sea un servicio, funciona con el servicio). - Ejemplo:
-services=availability_domain - No necesita comillas alrededor de los nombres de servicio.
-
- Cree el comando:
Por ejemplo:
tf-oci -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discoveryNota
El comando de detección de recursos no crea un directorio para los recursos detectados. Cree un directorio y especifique la ruta de acceso en el comando.
Felicidades! Su cuenta de Oracle Cloud Infrastructure ahora puede autenticar sus comandos de proveedor Terraform de OCI. Y su entorno está listo para ejecutar los comandos de detección de recursos.
Referencias:
Siguiente paso
Explore otros tutoriales de Terraform:
Para obtener más información sobre el desarrollo con productos Oracle, consulte estos sitios: