Detección de desviación en espacios de trabajo
IBM Cloud® Schematics permite a los usuarios desplegar, gestionar y manipular recursos de infraestructura con espacios de trabajo basados en Terraform utilizando conceptos de declarative Infraestructura como código (IaC). Sin embargo,
cuando se despliega una configuración de Terraform y se crean los recursos, no significa que los recursos permanezcan tal como los declara la configuración. Cualquier cambio en el estado de la infraestructura se denomina drift.
Se produce cuando la infraestructura desplegada difiere del estado deseado (declarativo) definido por la configuración de plantilla.
La desviación puede ocurrir por muchas razones. La causa más frecuente son los cambios realizados en la infraestructura manualmente fuera de la automatización de Terraform. El archivo de estado de Terraform del espacio de trabajo desplegado ya no está sincronizado con los recursos de infraestructura desplegados, y se dice que el espacio de trabajo está en desviación.
La desviación puede ocurrir por muchas razones dentro del contexto de su configuración:
- Añadir o eliminar recursos de la configuración de plantilla sin aplicar los cambios.
- Cambiando definiciones de recurso de plantilla.
- Externo a la configuración de su plantilla, el desvío se produce cuando los cambios se realizan manualmente. Por ejemplo, desde una operación de línea de mandatos en un recurso de nube, o cambie a través de la consola de nube.
- Puede ocurrir a través de otras herramientas de automatización.
Ejemplo de escenario de desviación
Una instancia VSI se aprovisiona utilizando IBM Cloud Schematics y una plantilla de configuración. Un usuario de la nube DevOps puede modificar la configuración VSI provisionada iniciando sesión en la consola de la nube y modificando el volumen
de arranque de una instancia o añadiendo una interfaz Ethernet. Estos cambios dan como resultado el despliegue de infraestructura en drift.
IBM Cloud Schematics permite, previsiblemente, gestionar el ciclo de vida de recursos de la infraestructura utilizando Terraform. La deriva se produce cuando el estado real de la infraestructura difiere del estado definido en la configuración de la plantilla de Terraform.
Terraform no puede detectar la desviación en recursos y atributos que no están gestionados o configurados utilizando Terraform. Por ejemplo, Terraform no puede detectar los cambios en una máquina virtual que resultan de la instalación de aplicaciones
localmente o utilizando herramientas de gestión de configuración como Chef o Ansible.
Detección de la desviación en IBM Cloud
La detección de la desviación para los espacios de trabajo de automatización de Terraform es posible en IBM Cloud Schematics. Puede utilizar los siguientes tres métodos para comprobar la detección de la desviación.
Detección de desviación utilizando la interfaz de usuario
Puede iniciar la detección de deriva para espacios de trabajo desde la página de trabajo del espacio de trabajo Schematics. Inicia un trabajo para detectar la deriva del espacio de trabajo y sus recursos desplegados. Durante la ejecución, el
trabajo de detección de desviación es in progress, al finalizar tiene un failure o success. Para revisar los detalles de la tarea de desvío, debe comprobar el registro de tareas de desvío para conocer
el estado de desvío.
Visualización de registros de desviación de detección utilizando la interfaz de usuario
Utilice los pasos siguientes para ver el registro de trabajo de desviación.
-
En el panel de control del espacio de trabajo, seleccione el espacio de trabajo que desea comprobar para la desviación.
-
Seleccione y abra el espacio de trabajo.
-
Seleccione la lista desplegable Acciones.
-
Seleccione la opción Detectar desviación para iniciar el trabajo de detección de desviación.
-
Durante la ejecución, el estado muestra
in progresspasar a un estadosuccesso un trabajofailureal finalizar. -
El estado de desviación se puede determinar revisando la salida del inicio de sesión del trabajo cuando el trabajo está en un estado
success. En la captura de pantalla se muestra una ejecución de trabajo satisfactoria de ejemplo con desviación detectada.Revise el registro de trabajo correcto para identificar los detalles de desviación.
2022/04/19 10:10:44 ----- Terraform DRIFT ----- 2022/04/19 10:10:44 Starting command: terraform-drift-cli drift 2022/04/19 10:10:44 Terraform Drift | configuration drift identfied 2022/04/19 10:10:44 Terraform Drift | resource operation attribute drift value 2022/04/19 10:10:44 Terraform Drift | ibm_is_vpc.vpc + tags schematics:us-east.workspace.myworkspace-drift-demo.bfdd0e2d 2022/04/19 10:10:44 Terraform Drift | ibm_is_vpc.vpc + tags tag:new1 2022/04/19 10:10:44 Terraform Drift | ibm_is_vpc.vpc + tags tag:new2 2022/04/19 10:10:44 Terraform Drift | 2022/04/19 10:10:44 Command finished successfully. 2022/04/19 10:10:52 Done with the workspace actionSi el trabajo falla, revise la causa de la anomalía en el registro y corrija la condición de error volviendo a ejecutar el trabajo.
Un registro de trabajo de ejemplo de anomalía identifica la causa de la anomalía del trabajo de desviación.
2022/04/13 13:05:46 ----- Terraform Commands ----- 2022/04/13 13:05:46 Could not execute job: Error : Drift cannot be executed since state file doesn't exist. Please run terraform apply to generate state file.
Detección de desviación utilizando la CLI
Puede iniciar la detección de desviaciones desde el comando de creación de espacios de trabajo. La detección de deriva inicia un trabajo para detectar la deriva para el espacio de trabajo y sus recursos específicos. El trabajo de detección de
desviación es in progress o completed con el estado adecuado como failure o success. En cambio, para conocer los detalles del trabajo de deriva, es necesario comprobar el registro del trabajo
de deriva para conocer el estado de la deriva. Utilice los mandatos siguientes para ver la detección de la desviación.
Creación y visualización de los registros de desviación de detección utilizando la CLI
Puede seguir estos pasos para detectar la desviación en los espacios de trabajo Schematics utilizando la CLI.
-
Ejecute
ibmcloud schematics plan. -
Capte el
ibmcloud schematics job logs. -
Ejecute
ibmcloud schematics apply. -
Ejecute
ibmcloud schematics job runpara crear un trabajo en el espacio de trabajo Schematics.ibmcloud schematics job run --command-object workspace --command-object-id <workspace_id> --command-name drift -
Ejecute
ibmcloud schematics workspace actionpara recuperar todas las actividades del espacio de trabajo.ibmcloud schematics workspace action --id <workspace_id> -
Ejecute
ibmcloud schematics job logspara recuperar los registros detallados de un trabajo para ver los detalles de desviación.ibmcloud schematics logs --id <workspace_id> --act-id <Job_id>
Creación y visualización de la detección de la desviación a través de la API
Revise los mandatos de CURL para crear y ver la desviación a través de la API.
-
Recupere los pasos de acceso IAM para autenticarse con IBM Cloud Schematics.
-
Cree el espacio de trabajo. Como parte de la carga útil, debe añadir la siguiente configuración de desviación.
{ commands: [ { command: 'drift', command_name: 'drift command', command_desc: 'command to detect drift in workspace resources', }, ], operation_name: 'drift', description: 'command to detect drift in workspace resources', } -
Ejecute el plan de trabajoSchematics.
-
Capte el
ibmcloud schematics job logs. -
Ejecute
ibmcloud schematics apply. -
Ejecute
ibmcloud schematics job runpara crear un trabajo para el espacio de trabajo. -
Ejecute
ibmcloud schematics workspace actionpara recuperar todas las actividades del espacio de trabajo. -
Capte el
ibmcloud schematics job logs.