- Inicio
- Redes multinube
- Multi-cloud networking CE-HA demo
- Desplegar la demostración
Desplegar la demostración
Requisitos previos
Sección titulada «Requisitos previos»- Terraform en la versión mínima indicada en
terraform/versions.tf—>= 1.8, para las funciones definidas por el proveedor y el bloquecheckque protege la VIP. - El proveedor
xcsh. Nada fija una versión:.terraform.lock.hclestá en gitignore y la restricción es un mínimo abierto, por lo que cadainitresuelve la última versión publicada. Esto es deliberado en un proyecto en prelanzamiento: la demostración debe fallar ante una regresión del proveedor en lugar de quedarse en una versión obsoleta que la oculte. - Una credencial de API de F5 XC para el tenant en
var.expected_xc_tenant, exportada comoXCSH_API_TOKEN(o el par P12/PEM). Exporta únicamente la credencial, nunca una URL — consulta más abajo. - Credenciales de Azure con permisos para crear un grupo de recursos, una VNet, un Route Server y VMs.
- Un namespace de F5 XC preexistente para la capa de aplicación. El despliegue lo lee y nunca lo crea ni lo destruye, de modo que un namespace que contenga demostraciones no relacionadas jamás acabará en la lista de destrucción de este stack.
Proporciona los dos valores que no tienen predeterminado
Sección titulada «Proporciona los dos valores que no tienen predeterminado»Todas las demás variables tienen un valor predeterminado funcional, y cada nombre de objeto deriva de
var.component. Dos se dejan deliberadamente sin él:
cd terraformcp terraform.tfvars.example terraform.tfvars| Variable | Por qué no tiene valor predeterminado |
|---|---|
origin_ip | Cualquier valor predeterminado es una máquina concreta. Uno obsoleto envía el tráfico de un despliegue nuevo al host de otra persona en lugar de fallar. |
lb_domain | El balanceador de carga hace coincidencia por Host, así que esto es lo que debe enviar cada petición. Pertenece a quien ejecute el despliegue. |
Ambos se validan por formato, de modo que una errata hace fallar el plan en lugar de la demostración.
terraform.tfvars está en gitignore, y debe seguir así: contiene un id de suscripción y
valores propios de cada ingeniero.
El tenant es configuración, no lo que sea que tu shell esté exportando
Sección titulada «El tenant es configuración, no lo que sea que tu shell esté exportando»var.expected_xc_tenant nombra el tenant y es el único lugar donde se nombra.
providers.tf deriva de él el api_url del proveedor xcsh, lo que deliberadamente
anula cualquier XCSH_API_URL presente en el entorno, y una postcondition en
terraform/main.tf hace fallar el plan cuando el entorno nombra un tenant distinto.
Consulta cualquiera de las dos mitades sin ejecutar nada que modifique el estado:
terraform output -raw xc_tenant # what the deployment targetsterraform output -raw xc_env_tenant # what your shell claims — diagnostic onlyf5-sales-demof5-sales-demo-
Inicializa. La configuración del backend no se incluye en el repositorio; proporciona la tuya.
Ventana de terminal terraform init -backend-config=backend.hcl -
Primer apply. Esto construye Azure, los sitios CE y el token de registro, y arranca los CE.
Ventana de terminal terraform apply -
Vuelve a aplicar una vez que los CE se hayan registrado. Esto no es opcional, y la razón está más abajo en lugar de ser algo que descubras.
Ventana de terminal terraform apply
Después ve a comprobar que está saludable antes de mostrárselo a nadie.
La aprobación de registro está automatizada, y el apply sigue siendo de dos fases
Sección titulada «La aprobación de registro está automatizada, y el apply sigue siendo de dos fases»La aprobación de registro ya no necesita a una persona en la consola: el recurso
xcsh_registration_approval la realiza, y el módulo del sitio resuelve qué
registro aprobar.
Eso sigue sin convertir el despliegue en un único apply desatendido, y merece la pena
entender la razón antes de observar una primera ejecución y concluir que ha fallado:
- El objeto de registro de un CE se llama
r-<uuid>. Nunca se nombra según el sitio, así que nada puede predecir el nombre en tiempo de plan. - El registro solo existe después de que la VM haya arrancado y
vpmse haya registrado. - Por eso el primer apply no planifica ninguna aprobación. Vuelve a aplicar una vez que los CE se hayan registrado y las aprobaciones se crearán.
terraform/main.tf documenta este orden en la parte superior del archivo, que es la
versión autoritativa: la secuencia de despliegue vive junto al código que la implementa.
El SSH del operador es una decisión de tiempo de construcción
Sección titulada «El SSH del operador es una decisión de tiempo de construcción»El despliegue escribe una clave de operador en la cuenta admin del appliance, cuyo shell de inicio
de sesión es la CLI del sitio. La escribe write_files de cloud-init, que se ejecuta una sola vez en el primer arranque.
Desmantelarlo
Sección titulada «Desmantelarlo»terraform destroyEl namespace de la aplicación sobrevive: se lee, nunca se gestiona, por lo que destroy no puede llevarse consigo un namespace
que contenga demostraciones no relacionadas. Todo lo demás en el grupo de recursos desaparece.