Alguien encuentra un charm que dice ejecutar una VPN, lo despliega, expone la aplicación y espera a que un cliente se conecte. El despliegue sale bien, el puerto se abre y el túnel sigue sin funcionar, porque tres promesas no relacionadas se fundieron en una. Un charm es una implementación de despliegue con un contrato concreto. Examina esas promesas por separado y los huecos aparecen antes del lanzamiento en lugar de después.

Paso uno: fija el artefacto del que estás leyendo

Lee los metadatos propios del candidato: publicador, repositorio de origen, canal, revisión, base y arquitectura. Después establece quién mantiene el software de VPN dentro de la carga de trabajo y quién entrega sus actualizaciones de seguridad, porque a menudo son dos partes distintas. Un upstream sin mantenimiento dentro de un charm bien mantenido es un problema de soporte esperando una mala semana.

juju info CHARM_NAME informa de canales, bases y arquitecturas en Juju 3.6, y la documentación señala que una consulta de revisión concreta no se puede combinar con esos filtros. Consulta la revisión por separado en lugar de construir una combinación que el comando rechaza. Lee también la base y la arquitectura, ya que un canal puede cubrir más de una.

Anota la combinación exacta que revisaste junto al despliegue. Un refresh que mueve el canal es entonces un cambio intencionado con un antes y un después, no una sorpresa un lunes.

Paso dos: lee la configuración como un contrato

Determina el papel que juega el charm: terminar el acceso remoto, unirse a una VPN existente o algo completamente distinto. Luego busca cómo documenta la inscripción de clientes, los emisores de confianza, la rotación de credenciales y la revocación. Esos cuatro deciden si puedes operar la cosa, y un archivo de cliente generado es una salida sensible en lugar de un archivo para un ticket.

Sigue las interfaces y acciones que el charm expone realmente. No des por hecho que existe una acción de inscripción porque otro charm para el mismo software tenga una.

Pregunta qué hace la reconciliación con las ediciones manuales. Si el charm sobrescribe un archivo de configuración en la próxima actualización, un arreglo manual tiene una vida útil de una sola actualización. Pregunta a los mantenedores dónde está documentado ese comportamiento y trata el silencio como desconocimiento.

Paso tres: separa el listener de la ruta reenviada

El listener exterior es el socket que acepta el túnel. El reenvío es lo que ocurre con el tráfico dentro de él, y una ruta de retorno es lo que permite que vuelvan las respuestas. Un charm puede entregar lo primero y dejar los otros dos al equipo de infraestructura.

La salida es una tercera pieza. Si los clientes del túnel deben llegar a internet a través de este host, tiene que existir un arreglo de direccionamiento o traducción, y no se crea abriendo un puerto. Asigna un responsable a esa pieza antes de que llegue el primer cliente.

Paso cuatro: la exposición es una acción de cortafuegos

En Juju 3.6, exponer una aplicación ajusta las reglas del cortafuegos de la nube y, de forma predeterminada, permite el tráfico desde cualquier origen a los puertos que la carga de trabajo ha abierto. Los selectores de endpoint y CIDR del comando existen precisamente para que ese valor predeterminado pueda acotarse.

La exposición no crea usuarios de VPN, no valida sus credenciales ni instala una política de reenvío. Tampoco demuestra que la carga de trabajo esté escuchando en la dirección y el transporte que esperas, por lo que la prueba posterior a la exposición importa más que el mensaje de éxito. Comprueba el socket en escucha en la unidad además de la regla de la nube.

Paso cinco: acepta con cuatro pruebas

Tras un despliegue aprobado, inscribe un cliente nuevo y confirma el servicio privado previsto. Luego revoca esa identidad y confirma que el acceso termina de verdad, en lugar de que solo se rechace el siguiente inicio de sesión. Repite la comprobación desde una red que no controlas y después desde dentro de la oficina, porque esos dos caminos responden a preguntas distintas.

Termina con una actualización y una reconexión, porque ahí interactúan la reconciliación, el manejo de credenciales y los reinicios de servicio. Si la documentación no puede explicar quién es dueño de una de esas operaciones, anótalo como una laguna de adopción en lugar de rellenarla con una receta sin mantenimiento tras el mismo nombre de charm. Una laguna anotada es una decisión; una laguna rellenada en silencio es una futura caída. Pásala a quien sea dueño de la decisión del servicio, con la fecha en que la encontraste.

Artículos relacionados