Creación de scripts y archivos de estado con detección de recursos
Genere 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, puede crear scripts y archivos de estado para los recursos de su cuenta mediante la función de detección de recursos. A continuación, utilice Terraform para gestionar los recursos.
Las tareas clave incluyen cómo:
- Crear un recurso a través de la consola.
- Crear scripts y un archivo de estado para el recurso mediante la función de detección de recursos.
- Actualizar el recurso con Terraform.
- Confirmar que el recurso se ha actualizado en la consola.
Para obtener más información, consulte:
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.
- Una computadora MacOS, Linux o Windows.
- Recursos del tutorial de Terraform:
- Siga todos los pasos de Configuración de detección de recurso.
- Anote el comando del proveedor de Terraform de OCI:
-
Cloud Shell:
terraform-provider-oci_<version>de/usr/bin - Instancia informática o un entorno local: utilice el
<shorter-alias>que ha creado en el tutorial anterior para utilizarlo en lugar del comandoterraform-provider-oci_<version>.- Ejemplo:
tf-oci
- Ejemplo:
-
Cloud Shell:
- Terraform v1.1.3+:
- Si utiliza Cloud Shell, no necesita instalar Terraform. Terraform ya está instalado.
- Si utiliza una instancia informática o un entorno local, siga los pasos de Instalación de Terraform.
1. Creación de un recurso
Cree un bucket en su arrendamiento a través de la consola. Este cubo no tiene un script de Terraform. Posteriormente, utilice la detección de recursos para crear un script de Terraform y un archivo de estado para el bucket.
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-your-username-belongs-to> to manage compartments in tenancyCon este privilegio, puede crear un compartimento para todos los recursos del tutorial.
- 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:
manage-compartments -
Descripción:
Allow the group <a-group-your-username-belongs-to> to list, create, update, delete and recover compartments in the tenancy. -
Compartimento:
<your-tenancy>(root)
-
Nombre:
- En Creador de Política, seleccione Mostrar Editor Manual.
- Pegue la siguiente política:
allow group <a-group-your-username-belongs-to> to manage compartments in tenancy - Haga clic en Crear.
Referencia: Detalles de combinaciones de verbos + tipo de recurso (consulte el tipo de recurso compartments)
Cree un compartimento para los recursos que cree en este tutorial.
- En la Consola: abra el menú de navegación , seleccione Identidad y seguridad. En Identidad, seleccione Compartimentos.
- Seleccione Create Compartment.
- Introduzca los siguientes valores:
-
Nombre:
<your-compartment-name> -
Descripción:
Compartment for <your-description>. -
Compartimento principal:
<your-tenancy>(root)
-
Nombre:
- Seleccione Create Compartment.
Referencia: Creación de un compartimento
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-your-username-belongs-to> to manage all-resources in compartment <your-compartment-name>
Con este privilegio, puede gestionar todos los recursos del compartimento, otorgándole derechos administrativos en dicho compartimento.
- En la consola: abra el menú de navegación y seleccione Identidad y seguridad. En Identidad, seleccione Políticas.
- Seleccione su compartimento.
- Seleccione Crear política.
- En la página Crear política, introduzca los siguientes valores:
-
Name:
manage-<your-compartment-name>-resources -
Description::
Allow users to list, create, update, and delete resources in <your-compartment-name>. -
Compartment:
<your-tenancy>(root)
-
Name:
- En Creador de políticas, introduzca los siguientes valores:
-
Casos de uso de política:
Compartment Management -
Plantillas de políticas comunes:
Let compartment admins manage the compartment - Dominio de identidad: <identity-domain>
-
Grupos:
<a-group-your-username-belongs-to> -
Ubicación:
<your-compartment-name>
-
Casos de uso de política:
- Haga clic en Crear.
Referencia: Políticas comunes
Cree un bucket en el compartimento.
Asegúrese de crear el cubo en
<your-compartment-name> .2. Detección del recurso
Descubra el cubo que ha creado en el compartimento.
- Vaya a Uso (Detección de recursos).
Se muestran dos opciones de comandos.
- Seleccione la opción de comando que utiliza
compartment_namecomo comando base:terraform-provider-oci -command=export -compartment_name=<xxx> -output_path=<xxx> - 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 export para realizar la detección de recursos:
-command=export - Introduzca el nombre del compartimento que está detectando sus recursos:
-compartment_name=<your-compartment-name> - Cree y, a continuación, especifique un directorio para los recursos detectados:
Ejemplo:
-output_path=$HOME/resource-discovery
- Utilice el comando export para realizar la detección de recursos:
- En lugar de
- Agregue el siguiente parámetro de la sección Descripción de parámetro al comando base:
-
services
-
- En los nombres de servicio enumerados para
services, utilice:-
object_storage - Ejemplo:
-services=object_storage - Para detectar más de un servicio, separe los nombres de servicio con una coma.
- Ejemplo:
-services=object_storage,core - No necesita comillas alrededor de los nombres de servicio.
-
- Cree el comando:
Por ejemplo:
tf-oci -command=export -compartment_name=<your-compartment-name> -services=object_storage -output_path=$HOME/resource-discoveryNota
Solución de problemas[ERROR] output_path does not exist: stat /$HOME/resource-discovery: no such file or directoryEl 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.
[ERROR] no output directory specifiedEl analizador se para en el parámetro al que le falte un guión. Asegúrese de agregar un guión al principio de cada parámetro. Por ejemplo, si utiliza
servicesen lugar de-services, el analizador no llega al directorio de salida.
Felicidades! Ha creado un archivo de estado para el recurso de bucket.
Referencias:
3. Actualización del recurso
Actualice el nombre del bucket en el archivo object_storage.tf y, a continuación, ejecute los scripts de Terraform. Su cuenta autentica los scripts y, a continuación, Terraform actualiza el nombre del bucket. Confirme el nuevo nombre del bucket a través de la consola.
Actualización del cubo
- Ejecute los scripts de Terraform:
terraform apply - Cuando se le solicite confirmación, introduzca
yespara el nombre del cubo que se va a sustituir.Salida de ejemplo:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Búsqueda de un nuevo nombre de bucket en la consola
- Abra el menú de navegación y seleccione Almacenamiento. En Object Storage & Archive Storage, seleccione Buckets.
- Seleccione el compartimento:
<your-compartment-name>. - En la lista de buckets, compruebe el nombre del cubo.
El nombre del cubo es ahora
<your-bucket-name>-2.
Siguiente paso
Explore otros tutoriales de Terraform:
Para obtener más información sobre el desarrollo con productos Oracle, consulte estos sitios: