Configuración de una cadena de herramientas CI con Terraform
Con este tutorial, puedes utilizar la plantilla de la cadena de herramientas para la integración continua (CI) con las Security and Compliance Center prácticas relacionadas en DevSecOps para la Infraestructura como Código (IaC) Terraform. Está preconfigurado para el despliegue continuo (CD) con integración de inventario, gestión de cambios con Git Repos and Issue Tracking, recopilación de pruebas y despliegue de la infraestructura en IBM Cloud.
Antes de empezar
Completa los siguientes pasos antes de empezar este tutorial.
- Completa Configuración de los requisitos previos. Para más información, véase la importancia de la IC para IaC.
- Vea el Cómo empezar con DevSecOps en el vídeo IBM Cloud- Parte 1.
Inicie la configuración de la cadena de herramientas de integración continua
El servicio Continuous Delivery proporciona plantillas que le guían a través de la configuración de la cadena de herramientas y crean procesos en un orden lógico. Un indicador de progreso muestra los pasos para completar la configuración. Siga los pasos para acceder a la plantilla de la cadena de herramientas CI.
- Accede a la consola IBM Cloud.
- Haga clic en Menú
y seleccione DevOps.
- En la página Cadenas de herramientas, pulse Crear cadena de herramientas.
- Marque Infraestructura como código.
- Haz clic en la baldosa CI - Desarrollar infraestructura segura como código con DevSecOps.
Configurar la cadena de herramientas CI
La página Bienvenida resume el propósito de la cadena de herramientas junto con punteros a la documentación y materiales relacionados.
-
Pulse Iniciar.
-
Introduzca un Nombre de la cadena de herramientas dentro de su cadena de herramientas para la misma región y grupo de recursos en el IBM Cloud.
-
Seleccione una región de la lista desplegable.
-
Seleccione un grupo de recursos de la lista desplegable.
-
Pulse Continuar.
Sólo puede avanzar al paso siguiente una vez completada y validada la configuración del paso actual. Siempre puede hacer clic en Atrás para ver los pasos anteriores del instalador guiado. El instalador de la cadena de herramientas conserva todos los valores de configuración de los pasos sucesivos.
Algunos pasos incluyen un botón Cambiar a configuración avanzada. Estos pasos le presentan por defecto la configuración mínima. Sin embargo, los usuarios avanzados que necesiten un control más preciso pueden hacer clic en el conmutador Cambiar a configuración avanzada para mostrar las opciones de la integración subyacente.
Integración de herramientas de CI
Revise la configuración predeterminada y proporcione las configuraciones definidas por el usuario siempre que sea necesario para configurar la integración de la herramienta CI. Configure varios repositorios durante la instalación. Puede clonar los repositorios de ejemplo o puede utilizar los suyos propios, pero la cadena de herramientas sólo da soporte a repositorios Git Repos and Issue Tracking.
Código de infraestructura
El repositorio de código de la infraestructura es el proyecto o módulo que la cadena de herramientas y la canalización de CI construyen, prueban y entregan el artefacto de destino. El repositorio de código de la infraestructura está alojado en GitHub Enterprise. Por coherencia, esta guía de aprendizaje hace referencia a Git Repos and Issue Tracking.
Revise la información por defecto para el código de infraestructura:
- Aceptar Utilizar muestra por defecto. Si desea vincular un repositorio IaC existente para la cadena de herramientas, seleccione Bring your own infrastructure code, y proporcione como entrada al campo Repository URL. Actualmente, la cadena de herramientas sólo admite la vinculación a repositorios Git Repos and Issue Tracking existentes. Para obtener más información, consulte Bringing your own infrastructure code to DevSecOps.
- Introduzca un nombre para Nombre del nuevo repositorio.
- Pulse Continuar.
Inventario
El repositorio de inventario registra los detalles de los artefactos creados por las cadenas de herramientas CI.
- Puede aceptar la configuración por defecto proporcionada en la plantilla.
- Pulse Continuar.
Problemas
El repositorio de problemas registra los problemas que se encuentran mientras se ejecuta la interconexión de AC.
- Puede aceptar la configuración por defecto proporcionada en la plantilla.
- Haga clic en Continuar
Secretos
Especifique las integraciones de bóvedas secretas que se añadirán a su cadena de herramientas mediante los conmutadores, como se explica en Gestión de IBM Cloud secretos.
- Esta guía de aprendizaje utiliza IBM Cloud® Secrets Manager como caja fuerte para secretos. Los campos Región, Grupo de recursos y Nombre de servicio se rellenan automáticamente en función de las opciones disponibles. Pulse los indicadores desplegables para ver las otras opciones.
- Escriba su Secrets Manager nombre de instancia.
- Seleccione el Tipo de autorización de la lista desplegable.
- Pulse Continuar.
Almacenamiento de pruebas
El repositorio de evidencias almacena todas las evidencias y artefactos generados por el DevSecOps CI pipeline.
- Active el control deslizante del cubo IBM Cloud Object Storage para almacenar todas las pruebas en el cubo IBM Cloud Object Storage que se puede configurar en la página siguiente.
- Acepta la configuración por defecto.
- Pulse Continuar.
Grupo de nube Object Storage
Debe tener la instancia IBM Cloud Object Storage y un bucket que actúe como armario de pruebas de cumplimiento.
- Los campos Cloud Object Storage instance, Bucket name y Cloud Object Storage endpoint se rellenan automáticamente.
- Introduzca su clave API de ID de servicio.
- Es preferible: Se puede importar una clave existente de un almacén de secretos haciendo clic en el icono de la clave.
- Se puede copiar y pegar una clave existente.
- Pulse Continuar.
El campo de punto final no es obligatorio. Puede seleccionar o proporcionar el punto final durante la configuración de la cadena de herramientas o durante la ejecución de la canalización.
Desplegar
Configure el espacio de trabajo de destino Schematics donde se mantienen los estados de Terraform. Si no se proporciona el nombre del espacio de trabajo, toolchain crea un espacio de trabajo predeterminado Schematics con el ToolchainName-ToolchainId-PipelineID
.
-
Escriba su IBM Cloud API Key. Si la clave API tiene acceso suficiente. El Schematics espacio de trabajo, Git y Grupo de recursos detalles se rellenan automáticamente. Puede modificar cualquiera de estos campos para adaptarlos a su configuración.
- Es preferible: Se puede importar una clave existente de un almacén de secretos haciendo clic en el icono de la clave.
- Se puede copiar y pegar una clave existente.
- Desde aquí se puede crear una nueva clave pulsando el Nuevo +.
La clave API recién generada puede guardarse inmediatamente en una bóveda de secretos.
-
Introduzca el Nombre del espacio de trabajo esquemático.
-
Pulse Continuar.
Firma
Los artefactos creados por la cadena de herramientas y registrados en el inventario deben firmarse antes de su despliegue en producción.
- Introduzca la GnuPG. También puede crear una nueva clave GPG haciendo clic en NUEVA. Para obtener más información, consulte Generación de una clave GPG.
- Pulse Continuar.
Herramientas opcionales
Slack
Configura el Slack para recibir notificaciones sobre tus pull requests, o eventos del CI pipeline. También puede añadir la herramienta Slack después de la creación de la cadena de herramientas.
- Introduzca su Slack webhook. Para obtener más información, consulte Slack webhook.
- Introduce tu Canal de Slack para publicar el mensaje.
- Introduce el Nombre del equipo de la banda. Por ejemplo, si la URL de su equipo es
https://team.slack.com
, el nombre del equipo esteam
. - Escogiendo Notificaciones Slack Automatizadas para los eventos de los que quieres recibir notificaciones.
- Pulse Continuar.
Opcionalmente, puede alternar el envío de notificaciones con la propiedad de entorno slack-notifications
en su canalización de CD utilizando 0 = off, and 1 = on
.
Creación de la cadena de herramientas de integración continua
-
En la página Resumen, pulse Crear cadena de herramientas.
-
Espera a la creación de la cadena de herramientas.
Se pueden configurar otras integraciones de la cadena de herramientas una vez creada la canalización.
Explore la cadena de herramientas de integración continua
La cadena de herramientas CI contiene pr-pipeline
y ci-pipeline
. Estas canalizaciones se activan cuando se envía una nueva solicitud de fusión o se fusiona con la rama principal en el repositorio de código de la infraestructura.
Sigue los pasos para acceder a tu cadena de herramientas:
-
Desde la consola IBM Cloud.
-
Haga clic en Menú
> Seleccione DevOps.
-
En la página Cadenas de herramientas, pulse Crear cadena de herramientas.
-
Haga clic en su cadena de herramientas para ver la salida como se muestra en la captura de pantalla.
La muestra que se utiliza en este tutorial espera un
resource_group
para crear la instancia Key Protect. El nombre predeterminado deresource_group
esDefault
. Si el valor predeterminado no es adecuado para su cuenta, sustituya la variable predeterminadaresource_group
en el archivovariables.tf
. En caso contrario, especifique la variableresource_group
estableciendo la propiedad de entornoTF_VAR_resource_group
en los procesos PR y CI con el nombre de grupo de recursos adecuado.Figura 1. DevSecOps Cadena de herramientas CI
Ejecutar la interconexión pr
Para iniciar el pr-pipeline
, crea una solicitud de fusión en el repositorio de tu aplicación:
-
En la página de la cadena de herramientas de CI, haga clic en el mosaico del repositorio de aplicaciones. Por defecto se crea con un nombre
compliance-app-<timestamp>
. -
Cree una rama a partir de la rama principal.
-
Actualiza algún código de la aplicación o añade un archivo Léame y guarda los cambios.
-
Enviar Solicitud de fusión.
-
En la página de la cadena de herramientas de CI, haga clic en el mosaico pr-pipeline. Compruebe que el canal de relaciones públicas se activa con la creación de la solicitud de fusión.
-
Espera a que se complete la ejecución de
pr-pipeline
. La solicitud de fusión correspondiente que se encuentra en el repositorio de su aplicación está en estadoPending
hasta que todas las etapas de la tubería PR terminan con éxito. -
Una vez que se haya ejecutado correctamente la canalización PR, haga clic en la canalización para explorar los numerosos pasos que se han completado y para ver la página como se muestra en la captura de pantalla.
Figura 2. DevSecOps Canal de relaciones públicas exitoso -
Vuelva a la Solicitud de fusión.
-
Fusione la solicitud para que sus cambios se copien en la rama principal del repositorio de su aplicación. Asegúrese de que su canal CI se activa automáticamente.
Ejecución de la interconexión de integración continua
Inicie la interconexión de AC de una de las maneras siguientes:
- Automáticamente: tras una canalización exitosa del PR, aprobando y fusionando el PR con la rama principal.
- Manualmente: para desencadenar manualmente el pipeline CI, seleccione la tarjeta Delivery Pipeline y haga clic en Run Pipeline y seleccione Manual Trigger.
En este tutorial, la canalización CI se activó después de fusionar los cambios de código en la rama maestra del repositorio de la aplicación.
-
En la página cadena de herramientas IC, haga clic en la ficha pipeline-ci.
-
Haga clic en Ejecutar junto al nombre de su canalización. Observe que se está ejecutando una canalización. Espere a que finalice la ejecución de la tubería.
-
Después de que la ejecución de la tubería de CI sea exitosa, haga clic en la tubería para explorar los pasos completados para ver la página como se muestra en la captura de pantalla.
Figura 3. DevSecOps canalización de CI
Las pruebas de todas las comprobaciones de conformidad de la cadena de CI se cargan en el repositorio del armario de pruebas, pero también en el bucket IBM Cloud Object Storage.
Para evaluar si tiene algún fallo en la ejecución de su pipeline, compruebe el paso final de su pipeline.
Personalización de la interconexión
Para obtener más información sobre la personalización de la canalización, consulte ¿Cómo personaliza un usuario la canalización?
Próximos pasos
Has creado con éxito un DevSecOps CI toolchain para Terraform, editado el código en el repositorio de código de la infraestructura, ejecutado ci-pipeline
para construir, probar y desplegar tus cambios en el entorno de desarrollo.
Ahora, explore a Configurar una cadena de herramientas de CD para Terraform.