Siman PowerShell⚓︎
Introducción⚓︎
Uno de los objetivos de operación de la plataforma Siman Cloud es que la administración y soporte sobre la misma se realice de manera sencilla y consistente, pudiendo automatizar las tareas más comunes.
Para tal efecto se desarrollo una serie de comandos en PowerShell que podrán ser utilizados tanto por el área de soporte de Siman como por el equipo de operación y administración de la plataforma Cloud.
Descripción⚓︎
La implementación de esta solución esta basada en 3 modulos generales: SimanPS.Backend, SimanPS.Client y SimanPS.Interop, ademas de una libreria de .NET (programada en F#) que es utilizada para el almacenamiento de los datos de clientes y susciptores en Azure Tables.
Modulos SimanPS⚓︎
SimanPS.Backend⚓︎
Este es el componente principal el cual implementa los comandos de operación, monitoreo y gestión tanto de usuarios y suscriptores como de los recursos y servicios montados en las nubes de AWS y Azure.
Este módulo depende de los distintos módulos y herramientas de gestión de Windows Server, Active Directory asi como de cada una de las plataformas cloud, y requiere privilegios de acceso elevados en todos estos recursos. Esta instalado y configurado de manera centralzada en una VM con Windows Server y se expone su funcionalidad mediante un endpoint de sesion remota (PowerShell Session Configuration).
Los privilegios de acceso son controlado mediante roles los cuales establecen los comandos y funciones que estan disponibles para el usuario asignado al rol. Actualmente existen 2 roles definidos:
- CloudAdmin: Acceso completo a toda la funcionalidad y comandos del módulo de Backend.
- SimanSupport: Comandos de administración general de suscriptores y tareas operativas del equipo de Soporte de Siman.
SimanPS.Client⚓︎
Este módulo es el que efectivamente ejecuta el usuario en la terminal de PowerShell. Es el que establece la conexión a la sesion remota de SimanPS mediante las credenciales del usuario.
Contiene una serie de funciones proxy que ejecutan el comando base en la sesión remota y procesan el resultado de manera que su funcionamiento sea equiparable a la ejecución local y puedan encadenarse distintos conservando la funcionalidad del pipeline.
El cliente puede ser ejecutado dentro del entorno de red de Siman Cloud (dominio siman.cloud) o desde cualquier equipo con conexion a Internet mediante el protocolo WinRM utilizando un canal seguro HTTPS.
SimanPS.Interop⚓︎
Este es un módulo interno el cual el usuario no tiene acceso directo, es cargado como submodulo por los anteriores y contiene comandos, funciones y la definicion de tipos de datos comunes para la comunicación y serialización/deserialización de objetos entre el cliente y servidor.