Configurar una cadena de herramientas de CD para la Infraestructura como Código
Este tutorial es la tercera parte de una serie de tres tutoriales en los que aprenderás las mejores prácticas de IBM Cloud® DevSecOps utilizando una implementación de referencia completa que está disponible como servicio y funciona con IBM Cloud® Continuous Delivery. En la parte 3 de esta serie de tutoriales, utilizará la plantilla de cadena de herramientas para la implementación continua (CD) con las prácticas recomendadas relacionadas con la seguridad y el cumplimiento normativo en DevSecOps.
Antes de empezar
Antes de comenzar la parte 3 de esta serie de tutoriales, asegúrese de haber completado los siguientes requisitos previos:
CD - Implementación de una aplicación segura con prácticas de DevSecOps
La cadena de herramientas CD de DevSecOps contiene únicamente un proceso de implementación continua. Se implementan las siguientes recomendaciones:
- se cambia la automatización de la gestión para ayudar a los desarrolladores, aprobadores y auditores a realizar un seguimiento de los despliegues desde el punto de vista del cumplimiento.
- Crea un resumen de las pruebas a partir de las pruebas recopiladas en el proceso de CI.
- Crea una solicitud de cambio en el repositorio de gestión de cambios basado en Git Repos and Issue Tracking y añade a este la documentación de la implementación.
- Utiliza el repositorio de inventario para promocionar los artefactos creados a entornos de implementación como el de pruebas y el de producción.
- Comprueba el CR y lo aprueba automáticamente si se superan todas las comprobaciones.
- Si se aprueba la solicitud de cambio (CR) o se trata de una emergencia, la cadena de herramientas implementa la imagen desde el inventario a producción.
Visión general de la configuración guiada para la cadena de herramientas de entrega continua
Cualquiera de los métodos de esta guía de aprendizaje le va a ofrecer una experiencia de configuración guiada. Se le guiará a lo largo del proceso de configuración de la cadena de herramientas y se le mostrarán las opciones de configuración recomendadas que son necesarias para crear su cadena de herramientas.
Un indicador de progreso muestra los pasos para completar la configuración. Puede utilizar el indicador de progreso para volver a un paso anterior. Las opciones de configuración del paso actual se visualizan en el área principal de la página.
Para avanzar al paso siguiente, pulse Continuar. Sólo puede avanzar al paso siguiente una vez completada y validada la configuración del paso actual. Puede ir al paso anterior pulsando el botón Atrás.
Algunos pasos incluyen un conmutador Cambiar a configuración avanzada. Estos pasos le muestran, de forma predeterminada, la configuración mínima necesaria. No obstante, los usuarios avanzados que necesiten un control más detallado pueden hacer clic en el botón Cambiar a configuración avanzada para mostrar todas las opciones de la integración subyacente.
Cuando se hayan completado correctamente todos los pasos, se crea la cadena de herramientas haciendo clic en Crear en el paso Resumen.
Siempre puede volver a los pasos anteriores en el instalador guiado. El instalador de la cadena de herramientas conserva todos los valores de configuración de los pasos sucesivos.
Inicie la configuración de la cadena de herramientas de entrega continua
Inicie la configuración de la cadena de herramientas de entrega continua utilizando una de las opciones siguientes:
Configurar el nombre y la región de la cadena de herramientas de CD
Revise la información predeterminada para la configuración de la cadena de herramientas. El nombre de la cadena de herramientas la identifica en IBM Cloud. Asegúrese de que el nombre de la cadena de herramientas sea exclusivo dentro de las cadenas de herramientas de la misma región y grupo de recursos en IBM Cloud.
Elija la cadena de herramientas de CI asociada en el menú desplegable para copiar parte de la configuración de CI para ayudar en la configuración de esta cadena de herramientas de CD.
Advertencia: Esta acción puede sobrescribir algunos de los valores que ya ha introducido.
Configurar integraciones de herramientas de CD
Si ya se ha vinculado a una cadena de herramientas CI existente en el paso Bienvenido, los nombres de los repositorios relacionados con la aplicación que se utilizan en esa cadena de herramientas se rellenan previamente. Revise los URL de repositorio y, a continuación, continúe con los pasos siguientes.
Repositorios relacionados con la aplicación
Si quieres configurar tu cadena de herramientas de CD desde cero, configura estos repositorios durante la creación de la cadena de herramientas de CI y, a continuación, utilízalos o enlázalos aquí.
Para obtener la URL correspondiente, ve al CI Pipeline y selecciona la ficha de la herramienta correspondiente. Haga clic con el botón derecho en la tarjeta de herramientas y seleccione Copiar dirección de enlace.
- Inventario: El repositorio de inventario registra los detalles de los artefactos creados por los flujos de trabajo de CI y CD. Por ejemplo,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-inventory - Problemas: El repositorio de incidencias registra las incidencias que se encuentran mientras se ejecuta el canal de CI. Por ejemplo,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-issues. - Pruebas: aquí se recopilan todas las pruebas de conformidad sin formato que pertenecen a la aplicación. Por ejemplo,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-evidence.
Actualmente, la cadena de herramientas solo admite enlaces a repositorios Git Repos and Issue Tracking alojados en IBM.
Inventario
URL del repositorio: URL del repositorio de inventario configurado en su cadena de herramientas de CI, tal y como se ha indicado en el paso anterior.
Problemas
URL del repositorio: URL del repositorio de incidencias configurado en tu cadena de herramientas de CI, tal y como se ha indicado en el paso anterior.
Configuración de la canalización
El repositorio de configuración de interconexión contiene archivos YAML y scripts necesarios para el despliegue, las pruebas y otras tareas personalizadas.
Para este tutorial, el repositorio de configuración del pipeline es el mismo que el definido para el CI de DevSecOps para Infrastructure as Code ( IaC ). Seleccione Utilizar repositorio de configuración de despliegue existente y seleccione el repositorio que se utiliza para la configuración de canalización de la cadena de herramientas de CI.
Para obtener más información sobre los repositorios de Git, consulte Configuración de Git Repos and Issue Tracking. Para obtener más información sobre los scripts personalizables, consulte Scripts personalizados.
Secretos
Varias herramientas en esta cadena de herramientas, y posiblemente en sus scripts personalizables, requieren secretos para acceder a recursos privilegiados. Una clave de API de IBM Cloud es un ejemplo de un secreto de este tipo. Almacena estos secretos de forma segura en una herramienta de gestión de secretos recomendada por IBM, como IBM Key Protect for IBM Cloud, IBM Cloud® Secrets Manager o HashiCorp Vault. La herramienta de gestión de secretos puede integrarse en la cadena de herramientas para que pueda referenciar fácilmente los secretos en su pipeline Tekton.
Este tutorial utiliza IBM Cloud® Secrets Manager como cámara acorazada para los secretos.
Almacenamiento de pruebas
El armario de pruebas almacena las pruebas de todas las tareas que ejecuta la canalización. Estas pruebas son recogidas por la tubería durante la ejecución de la misma.
Seleccione el cubo Cloud Object Storage (COS) configurado para su cadena de herramientas de integración continua (CI). Asegúrese de que se utiliza el mismo cubo COS en todas las cadenas de herramientas de integración continua (CI), Continuous Delivery (CD) y cumplimiento continuo (CC).
Es una buena práctica utilizar un cubo Cloud Object Storage como almacén de pruebas para almacenar todas las pruebas y artefactos que se recopilan durante la ejecución de la canalización.
Para más información sobre el almacenamiento de pruebas, véase Pruebas.
Pruebas
URL del repositorio: URL del repositorio de Evidence Locker configurado en su cadena de herramientas de integración continua (CI), tal y como se ha indicado en el paso anterior.
Grupo de nube Object Storage
Para utilizar esta función, debe disponer de una instancia de Cloud Object Storage y un bucket. Haga clic en Usar buckets de Cloud Object Storage como almacén de pruebas para crear una instancia de Cloud Object Storage. Para obtener más información sobre cómo configurar un depósito que pueda actuar como almacén de pruebas de cumplimiento normativo, consulte Configuración de Cloud Object Storage para almacenar pruebas.
- Los campos instancia de Cloud Object Storage, nombre de Bucket y punto final de Cloud Object Storage se rellenan automáticamente.
- Introduce la clave API del 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 ya existente.
El campo endpoint es opcional. Seleccione o proporcione el punto final durante la configuración de la cadena de herramientas o durante la ejecución de la canalización.
Destino de despliegue
Para el caso de uso DevSecOps para Terraform, elija la opción Despliegue personalizado.
Destino personalizado
Esta opción requiere la clave API IBM Cloud que se utiliza en los scripts de despliegue de la canalización. Los scripts de despliegue proporcionados utilizan Schematics para cargar el artefacto de configuración de Terraform en el espacio de
trabajo Schematics y utilizan Schematics CLI plan y apply comandos para entregar la configuración de Terraform en IBM Cloud.
Clave de API de IBM Cloud
La clave API interactúa con la herramienta CLI IBM Cloud en varias tareas:
- Es preferible: Importar una clave existente de un almacén de secretos haciendo clic en el icono de la clave.
- Copia y pega una clave existente.
- Cree una clave pulsando el botón Nuevo +.
Guarde la clave API recién generada en un almacén de secretos.
Gestión de solicitudes de cambio
Utilice un repositorio IBM Cloud-hosted Git Repos and Issue Tracking para gestionar las solicitudes de cambio. Para obtener más información, consulte Automatización de la gestión de cambios.
Herramientas opcionales
Slack
Configure la herramienta Slack para recibir notificaciones sobre sus eventos PR/CI Pipeline:
- Webhook Slack
- Es preferible: Se puede importar un webhook existente desde un almacén de secretos haciendo clic en el icono de la llave.
- Copie y pegue un webhook existente.
- Canal Slack: envíe un mensaje a un canal Slack existente.
- Slack nombre del equipo: la frase antes de . slack.com en nuestro equipo URL. Por ejemplo, si la URL de tu equipo es
https://team.slack.com, el nombre del equipo es team. - Notificaciones automatizadas de Slack: Personalice su selección eligiendo los eventos para los que desea recibir notificaciones.
Puede añadir la herramienta Slack después de crear la cadena de herramientas.
Una vez creada la cadena de herramientas, activa o desactiva el envío de notificaciones mediante la propiedad de entorno slack-notifications en tu canalización de CD (0 = desactivado, 1 = activado)
Creación de la cadena de herramientas de entrega continua
En la página Resumen, haz clic en Crear y espera a que se cree la cadena de herramientas.
Configure las integraciones de cada cadena de herramientas una vez creado el proceso.
Explore la cadena de herramientas de entrega continua
Una vez creada la cadena de herramientas de CD, haga clic en la tarjeta cd-pipeline para abrir y ejecutar la cadena de promoción.
Ejecute la interconexión de promoción
Asegúrate de que el proceso de CI se haya ejecutado correctamente antes de ejecutar el proceso de promoción.
La interconexión de promoción crea una Solicitud de extracción con el contenido del inventario en la rama de entorno de origen de inventario (por ejemplo: maestro) dirigida a la rama de entorno de destino de inventario (por ejemplo: transferencia o producción).
- En el panel de cd-pipeline, haga clic en Ejecutar pipeline y seleccione el Activador de promoción manual. Haz clic en Ejecutar para activar el proceso.
- Espere a que finalice la ejecución de la tubería de promoción y compruebe el registro de ejecución.
- Una vez que el proceso de promoción se haya completado con éxito, el registro de tareas
promoteproporciona un enlace a la solicitud de incorporación de cambios en el repositorio de inventario. El nombre de la solicitud de incorporación de cambios sigue el formatopromote <Inventory Source Environment> to <Inventory Target Environment>.
-
Abre la solicitud de incorporación de cambios en tu navegador mediante el enlace que aparece en el registro. Rellena los datos de las siguientes secciones:
- Prioridad: (obligatorio) Una de las siguientes: Crítica, Alta, Moderada, Baja, Planificación.
- Responsable de la solicitud de cambio: (obligatorio) dirección de correo electrónico del responsable.
- Descripción adicional: Descripción de los cambios en la aplicación.
- Objetivo: Objetivo de los cambios que se realizan en la aplicación.
- Explicación del impacto: impacto del cambio en el comportamiento de la aplicación o en el entorno.
- Plan de restitución: pasos para restituir si se produce un error de despliegue.
-
Rellena los campos de la solicitud de incorporación de cambios y haz clic en Guardar.
-
Añada la etiqueta
EMERGENCYa su PR si ha fallado alguna comprobación de conformidad en CI y desea continuar con la implantación -
Fusione la solicitud de extracción de Git Repos and Issue Tracking.
Los detalles de la solicitud de incorporación de cambios son utilizados por el proceso de entrega continua (CD Pipeline) para crear una solicitud de cambio en el repositorio de gestión de solicitudes de cambio durante la ejecución del proceso de entrega continua.
Configurar el CD Pipeline
variables de terraform
Para este tutorial, especifique el nombre de la instancia de protección de claves que se creará en el entorno de producción.
Para ello, seleccione Propiedades del entorno en la línea de comandos y haga clic en Añadir.
Añade una propiedad de tipo Text Value y nombre TF_VAR_key_protect_instance. Establezca un valor significativo que indique la entrega al entorno de producción, como key-protect-production-202210191453.
El valor de esta propiedad de entorno se inyecta como valor de la variable de configuración key_protect_instance terraform.
También debe configurar el proveedor IBM Cloud para Terraform con el ibmcloud_api_key apropiado que se autentique con el IBM Cloud como se describe en Configuración del plugin IBM Cloud Provider
Añade una propiedad de tipo Secure Value y nombre TF_VAR_ibmcloud_api_key. Establezca el valor de la clave api que se utilizará para la creación de recursos en IBM Cloud.
La muestra utilizada en este tutorial espera un resource_group para crear la instancia KeyProtect. El nombre por defecto de resource_group es Default. Si esto no es apropiado para su cuenta, reemplace
la variable por defecto resource_group en el archivo variables.tf o especifique el valor de la variable resource_group a utilizar estableciendo la propiedad de entorno TF_VAR_resource_group en el nombre del grupo de recursos apropiado.
Rama de configuración de la tubería
La rama del repositorio de configuración del pipeline se define como master en las propiedades del entorno de CD Pipeline por defecto. Cambia la rama a main para este tutorial.
Para ello, seleccione Propiedades del entorno en la línea de comandos de cd y haga clic en edit para cambiar el valor a main
Ejecución de la interconexión de entrega continua
Inicia un proceso de CD de una de las siguientes formas:
- Se recomienda: activar manualmente el proceso de CD.
- Opcional: automáticamente tras cada
Mergeacción en el repositorio de inventario. Se ha configurado un disparador Git Repos and Issue Tracking para activar automáticamente el proceso de entrega continua (CD), pero está desactivado de forma predeterminada.
También puede activar el proceso de CD manualmente en cualquier momento, pero si no hay cambios desde el último despliegue con éxito, el proceso de CD se aborta antes de tiempo porque no hay nada que desplegar. Puede añadir y utilizar force-redeploy variable para volver a ejecutar el CD sin cambios de código.
Una ejecución correcta de una interconexión de entrega continua tiene este aspecto:
Una vez ejecutado correctamente el proceso de CD, podrá encontrar el servicio de instancia KeyProtect en la lista de recursos.
