Deployment Manager: Implementación automatizada de VM para SAP NetWeaver en Linux

En esta guía de implementación, se muestra cómo implementar y conectar una máquina virtual (VM) de Compute Engine que está lista para la instalación de SAP Adaptive Server Enterprise (ASE) en un sistema operativo Linux.

En las instrucciones de esta guía, se utiliza Cloud Deployment Manager para implementar y configurar la VM, el sistema operativo Linux y los volúmenes de disco necesarios para SAP ASE.

Si deseas usar Terraform para automatizar la implementación de los recursos de Google Cloud para SAP ASE en un sistema Linux, consulta Terraform: Implementación automatizada de VM para SAP ASE en Linux.

Si deseas obtener detalles sobre la planificación de la implementación, consulta la Guía de planificación de SAP ASE.

Requisitos previos

Si necesitas que tu carga de trabajo de SAP se ejecute de acuerdo con los requisitos de residencia de datos, control de acceso, personal de asistencia o requisitos reglamentarios, debes crear la carpeta de cargas de trabajo de Assured Workloads requerida. Para obtener más información, consulta Controles de cumplimiento y soberanía para SAP en Google Cloud.

Si aún no tienes un proyecto de Google Cloud con facturación habilitada, debes crear uno antes de implementar una VM para la instalación de SAP ASE.

Sigue estos pasos para crear un proyecto:

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

Configurar el entorno del comando gcloud

Estas instrucciones usan Cloud Shell para ingresar comandos gcloud para implementar o configurar tus recursos de Google Cloud. Se accede a Cloud Shell a través de la consola de Google Cloud en tu navegador.

Cloud Shell se ejecuta en una VM que aprovisiona Google Cloud cada vez que inicias Cloud Shell. La primera vez que usas Cloud Shell, Google Cloud también crea un directorio $HOME persistente para ti, que se restablece cada vez que abres Cloud Shell.

La VM aprovisionada incluye la última versión de Google Cloud CLI. Por lo tanto, los comandos de gcloud que usas en Cloud Shell son los mismos que usarías en una instancia de gcloud CLI instalada a nivel local.

Si tienes instalada la gcloud CLI, puedes emitir los comandos de gcloud que se usan en estas instrucciones desde tu máquina local. Sin embargo, con una gcloud CLI instalada de forma local, siempre debes asegurarte de usar la versión más reciente de la gcloud CLI.

Ya sea que uses Cloud Shell o la gcloud CLI, puedes establecer y cambiar las propiedades del entorno del comando de gcloud y guardarlas como una configuración. Las configuraciones son conjuntos de pares clave-valor que influyen en el comportamiento de los comandos gcloud.

A continuación, se indican algunas acciones básicas que puedes realizar con una configuración en Cloud Shell:

  • Inicializa una configuración:

    gcloud init
  • Verifica los ajustes de tu configuración actual de gcloud:

    gcloud config list
  • Cambia al proyecto de Google Cloud requerido. Reemplaza PROJECT_ID por tu ID del proyecto de Google Cloud.

    gcloud config set project PROJECT_ID
  • Configura una región predeterminada. Reemplaza REGION por una región de Google Cloud.

    gcloud config set compute/region REGION
  • Configura una zona predeterminada. Reemplaza ZONE por una zona de Google Cloud.

    gcloud config set compute/zone ZONE
  • Crea una configuración nueva. Reemplaza NAME por el nombre de la configuración.

    gcloud config configurations create NAME

Para obtener más información sobre cómo trabajar con configuraciones, consulta Cómo administrar las configuraciones de la gcloud CLI.

Crea una red

Por razones de seguridad, crea una red nueva. Puedes controlar quién tiene acceso con reglas de firewall o a través de otro método de control de acceso.

Si tu proyecto tiene una red de VPC predeterminada, no la uses. En su lugar, crea tu propia red de VPC para que las únicas reglas de firewall vigentes sean aquellas que crees de forma explícita.

Durante la implementación, las instancias de VM suelen requerir acceso a Internet para descargar el agente de Google Cloud para SAP. Si usas una de las imágenes de Linux certificadas por SAP disponibles en Google Cloud, la instancia de VM también requerirá acceso a Internet para registrar la licencia y acceder a repositorios de proveedores de SO. Una configuración con una puerta de enlace NAT y con rótulos identificadores de red de VM admite este acceso, incluso si las VM de destino no tienen IP externas.

Para configurar la red, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en Crear red de VPC.
  3. Ingresa un Nombre para la red.

    El nombre debe cumplir con la convención de nombres. Las redes de VPC usan la convención de nombres de Compute Engine.

  4. En Modo de creación de subredes, selecciona Custom.
  5. En la sección Subred nueva, especifica los siguientes parámetros de configuración para una subred:
    1. Ingresa un Nombre para la subred.
    2. En Región, selecciona la región de Compute Engine en la que deseas crear la subred.
    3. En Tipo de pila IP, selecciona IPv4 (pila única) y, luego, ingresa un rango de direcciones IP en el formato CIDR. , como 10.1.0.0/24.

      Este es el rango de IPv4 principal de la subred. Si planeas agregar más de una subred, asigna rangos de IP de CIDR no superpuestos para cada subred de la red. Ten en cuenta que cada subred y sus rangos de IP interna se asignan a una sola región.

    4. Haz clic en Listo.
  6. Para agregar más subredes, haz clic en Agregar subred y repite los pasos anteriores. Puedes agregar más subredes a la red después de haberla creado.
  7. Haz clic en Crear.

gcloud

  1. Ve a Cloud Shell.

    Ir a Cloud Shell

  2. Para crear una red nueva en el modo de subredes personalizadas, ejecuta el siguiente comando:
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    Reemplaza NETWORK_NAME por el nombre de la red nueva. El nombre debe cumplir con la convención de nombres. Las redes de VPC usan la convención de nombres de Compute Engine.

    Especifica --subnet-mode custom para evitar el uso del modo automático predeterminado, que crea de forma automática una subred en cada región de Compute Engine. Para obtener más información, consulta Modo de creación de subredes.

  3. Crea una subred y especifica la región y el rango de IP a través del siguiente comando:
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    Reemplaza lo siguiente:

    • SUBNETWORK_NAME: el nombre de la subred nueva
    • NETWORK_NAME: el nombre de la zona que creaste en el paso anterior
    • REGION: la región en la que deseas la subred. Si usas SAP ASE con SAP NetWeaver, usa una región que sea compatible con SAP NetWeaver.
    • RANGE: el rango de direcciones IP especificado en formato CIDR, como 10.1.0.0/24

      Si planeas agregar más de una subred, asigna rangos de IP de CIDR no superpuestos para cada subred de la red. Ten en cuenta que cada subred y sus rangos de IP interna se asignan a una sola región.

  4. Si quieres, puedes repetir el paso anterior y agregar más subredes.

Configura una puerta de enlace NAT

Si necesitas crear una o más VM sin direcciones IP públicas, debes usar la traducción de direcciones de red (NAT) para permitir que las VM accedan a Internet. Usa Cloud NAT, un servicio administrado distribuido y definido por software por Google Cloud que permite que las VM envíen paquetes salientes a Internet y reciban cualquier paquete de respuesta entrante establecido. Como alternativa, puedes configurar una VM independiente como una puerta de enlace NAT.

Para crear una instancia de Cloud NAT para tu proyecto, consulta Usa Cloud NAT.

Después de configurar Cloud NAT para tu proyecto, tus instancias de VM pueden acceder a Internet de forma segura sin una dirección IP pública.

Cómo agregar reglas de firewall

De forma predeterminada, una regla de firewall implícita bloquea las conexiones entrantes desde fuera de tu red de nube privada virtual (VPC). Para permitir conexiones entrantes, establece una regla de firewall para la VM. Después de establecer una conexión entrante con una VM, se permite el tráfico en ambas direcciones a través de esa conexión.

También puedes crear una regla de firewall para permitir el acceso externo a puertos especificados o restringir el acceso entre las VM en la misma red. Si se usa el tipo de red de VPC default, también se aplican algunas reglas predeterminadas adicionales, como la regla default-allow-internal, que permite la conectividad entre VM en la misma red en todos los puertos.

En función de la política de TI que se aplique a tu entorno, es posible que debas aislar o restringir la conectividad a tu host de base de datos, lo que puedes hacer a través de la creación de reglas de firewall.

Según la situación en que te encuentres, puedes crear reglas de firewall para permitir los siguientes accesos:

  • Objeto de escucha de red de ASE para conexiones de clientes. El número de puerto ASE predeterminado es 5000.
  • Los puertos requeridos por SAP ASE Cockpit. Para obtener una lista de los puertos que usa ASE Cockpit, consulta la documentación SAP ASE de Cockpit en el Portal de ayuda de SAP.
  • Los puertos SAP predeterminados que se enumeran en TCP/IP de todos los productos SAP.
  • Conexiones desde tu computadora o tu entorno de red corporativa a tu instancia de VM de Compute Engine. Si no estás seguro de qué dirección IP usar, comunícate con el administrador de red de tu empresa.
  • Comunicación entre las VM de la subred de SAP HANA, incluida la comunicación entre los nodos en un sistema de escalamiento horizontal de SAP HANA o la comunicación entre el servidor de base de datos y los servidores de aplicaciones en una arquitectura de 3 niveles. Puedes habilitar la comunicación entre las VM si creas una regla de firewall para permitir el tráfico que se origina desde la subred.
  • Conexiones SSH a tu instancia de VM, incluido SSH en el navegador.
  • Conexión a tu VM a través de una herramienta de terceros en Linux. Crea una regla para permitir el acceso a la herramienta a través de tu firewall.

Para crear una regla de firewall, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Firewall de la red de VPC.

    Ir a Firewall

  2. En la parte superior de la página, haz clic en Crear regla de firewall.

    • En el campo Red, selecciona la red donde se ubica tu VM.
    • En el campo Destinos, especifica los recursos de Google Cloud a los que se aplica esta regla. Por ejemplo, especifica Todas las instancias de la red. O bien, para limitar la regla a instancias específicas en Google Cloud, ingresa etiquetas en Etiquetas de destino especificadas.
    • En el campo Filtro de fuente, selecciona una de las siguientes opciones:
      • Rangos de IP para permitir el tráfico entrante de direcciones IP específicas. Especifica el rango de direcciones IP en el campo Rangos de IP de origen.
      • Subredes para permitir el tráfico entrante desde una subred específica. Especifica el nombre de la subred en el siguiente campo Subredes. Puedes usar esta opción para permitir el acceso entre las VM en una configuración de escalamiento horizontal o de 3 niveles.
    • En la sección Protocolos y puertos, selecciona Protocolos y puertos especificados y luego ingresa tcp:PORT_NUMBER.
  3. Haz clic en Crear para crear tu regla de firewall.

gcloud

Crea una regla de firewall a través del siguiente comando:

$ gcloud compute firewall-rules create FIREWALL_NAME
--direction=INGRESS --priority=1000 \
--network=NETWORK_NAME --action=ALLOW --rules=PROTOCOL:PORT \
--source-ranges IP_RANGE --target-tags=NETWORK_TAGS

Implementa una VM de Linux para SAP ASE con Deployment Manager

En las siguientes instrucciones, se utiliza Deployment Manager para implementar una instancia de VM con Linux y todos los discos persistentes que requiere SAP ASE. Los valores para la instalación se definen en una plantilla de archivo de configuración de Deployment Manager.

Deployment Manager trata todos los recursos que se crean para el sistema SAP ASE como una sola entidad llamada implementación. Puedes ver todas las implementaciones del proyecto de Google Cloud en la página Implementaciones de la consola de Google Cloud.

En las siguientes instrucciones, se usa Cloud Shell, pero si lo prefieres, puedes usar Google Cloud CLI en tu terminal local.

  1. Abre Cloud Shell.

    Ir a Cloud Shell

  2. Descarga la plantilla del archivo de configuración template.yaml en tu directorio de trabajo a través del uso del siguiente comando en Cloud Shell:

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_ase/template.yaml
  3. De manera opcional, cambia el nombre del archivo template.yaml para identificar la configuración que define.

  4. Abre el archivo template.yaml en el editor de código de Cloud Shell.

    Para abrir el editor de código de Cloud Shell, haz clic en el ícono de lápiz en la esquina superior derecha de la ventana de terminal de Cloud Shell.

  5. En el archivo template.yaml, actualiza los siguientes valores de propiedad. Para hacerlo, reemplaza los corchetes y su contenido por los valores de la instalación.

    Propiedad Tipo de datos Descripción
    type String

    Especifica la ubicación, el tipo y la versión de la plantilla de Deployment Manager que se usará durante la implementación.

    El archivo YAML incluye dos especificaciones type, y una de ellas se marca como comentario. La especificación type que está activa de forma predeterminada especifica la versión de la plantilla como latest. La especificación type que se marca como comentario especifica una versión específica de la plantilla con una marca de tiempo.

    Si necesitas que todas tus implementaciones usen la misma versión de plantilla, usa la especificación type, que incluye la marca de tiempo.

    instanceName String El nombre de la instancia de VM en la que se instalará SAP ASE. El nombre debe tener hasta 13 caracteres y especificarse en letras minúsculas, números o guiones.
    instanceType String El tipo de máquina virtual de Compute Engine en la que se instalará SAP ASE. Si estás ejecutando SAP ASE con SAP NetWeaver en la misma VM, selecciona un tipo de máquina que incluya suficientes CPU y memoria para admitir ambos sistemas. Consulta la guía de planificación de SAP NetWeaver.
    zone String La zona en la que implementarás SAP ASE. Debe estar en la misma región que seleccionaste para la subred.
    subnetwork String El nombre de la subred que creaste en un paso anterior. Si realizas la implementación en una VPC compartida, especifica este valor como SHARED_VPC_PROJECT/SUBNETWORK. Por ejemplo, myproject/network1.
    linuxImage String El nombre de la imagen del sistema operativo Linux o la familia de imágenes que usas con SAP ASE. Para especificar una familia de imágenes, agrega el prefijo family/ al nombre de la familia. Por ejemplo, family/rhel-7 o family/sles-12-sp2-sap. Para usar una imagen específica, ingresa solo el nombre de la imagen. Si deseas ver la lista de las familias de imágenes disponibles, consulta la página Imágenes en la consola de Cloud.
    linuxImageProject String El proyecto de Google Cloud que contiene la imagen que usarás. Este proyecto puede ser uno propio o un proyecto de imagen de Google Cloud, como rhel-sap-cloud o suse-sap-cloud. Para ver una lista de proyectos de imágenes de Google Cloud, consulta la página Imágenes en la documentación de Compute Engine.
    aseSID String El ID de instancia de la base de datos.
    asesidSize Número entero El tamaño en GB de /sybase/DBSID, que es el directorio raíz de la instancia de base de datos. En la VM implementada, este volumen se etiqueta como ASE.
    asediagSize Número entero El tamaño de /sybase/DBSID/sapdiag, que contiene el espacio de tabla de diagnóstico para SAPTOOLS.
    asesaptempSize Número entero El tamaño de /sybase/DBSID/saptmp, que contiene el espacio de tabla temporal de la base de datos.
    asesapdataSize Número entero El tamaño de /sybase/DBSID/sapdata, que contiene los archivos de datos de la base de datos.
    aselogSize Número entero El tamaño de /sybase/DBSIDlogdir, que contiene los registros de transacciones de la base de datos.
    asebackupSize Número entero Es el tamaño del volumen /sybasebackup. Si se configura en 0 o se omite, no se crea ningún disco.
    asesapdataSSD booleano El SSD se activa o desactiva para la unidad de datos. Si se configura como true, el disco de datos es SSD.
    aselogSSD booleano El SSD se activa o desactiva para la unidad de registro. Si se configura como true, el disco de registro es SSD.
    usrsapSize Número entero Solo es necesario si estás instalando SAP ASE para que se ejecute con SAP NetWeaver en la misma instancia de VM.
    sapmntSize Número entero Solo es necesario si estás instalando SAP ASE para que se ejecute con SAP NetWeaver en la misma instancia de VM.
    swapSize Número entero Solo es necesario si estás instalando SAP ASE para que se ejecute con SAP NetWeaver en la misma instancia de VM.

    El siguiente archivo de configuración crea una VM que está configurada para ejecutar el servidor de base de datos de SAP ASE y SAP NetWeaver. El archivo de configuración dirige a Deployment Manager para implementar la VM n1-standard-16 que ejecuta un sistema operativo SLES 12 SP2. La VM incluye todos los directorios necesarios para ejecutar SAP ASE con SAP NetWeaver.

    resources:
    - name: sap_ase
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_ase/sap_ase.py
      #
      # By default, this configuration file uses the latest release of the deployment
      # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
      # of the scripts, comment out the type property above and uncomment the type property below.
      #
      # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103310846/dm-templates/sap_ase/sap_ase.py
      #
      properties:
        instanceName: ex-vm-ase-lin
        instanceType: n1-standard-16
        zone: us-central1-f
        subnetwork: example-sub-network
        linuxImage: family/sles-12-sp2-sap
        linuxImageProject: suse-sap-cloud
        aseSID: AS1
        asesidSize: 10
        asediagSize: 15
        asesaptempSize: 20
        asesapdataSize: 50
        aselogSize: 30
        asebackupSize: 100
        asesapdataSSD: Yes
        aselogSSD: Yes
        usrsapSize: 15
        sapmntSize: 15
        swapSize: 24
  6. Crea la instancia de VM:

    gcloud deployment-manager deployments create DEPLOYMENT_NAME --config TEMPLATE_NAME.yaml

    El comando anterior invoca a Deployment Manager, que implementa la VM según las especificaciones del archivo template.yaml. El proceso puede tardar unos minutos. Para verificar el progreso de la implementación, sigue los pasos que se indican en la siguiente sección.

Verifica la implementación

Para verificar la implementación, revisa los registros de implementación en Cloud Logging y la configuración de la VM.

Verifica los registros

  1. En la consola de Google Cloud, abre Cloud Logging para supervisar el progreso de la instalación y verificar si hay errores.

    Ir a Cloud Logging

  2. Filtra los registros:

    Explorador de registros

    1. En la página Explorador de registros, ve al panel Consulta.

    2. En el menú desplegable Recurso, selecciona Global y, luego, haz clic en Agregar.

      Si no ves la opción Global, ingresa la siguiente consulta en el editor de consultas:

      resource.type="global"
      "Deployment"
      
    3. Haz clic en Ejecutar consulta.

    Visor de registros heredado

    • En la página Visor de registros heredado, en el menú del selector básico, selecciona Global como tu recurso de registro.
  3. Analiza los registros filtrados:

    • Si se muestra "--- Finished", el proceso de implementación está completo y puedes continuar con el siguiente paso.
    • Si ves un error de cuota, sigue estos pasos:

      1. En la página Cuotas de IAM y administración, aumenta cualquiera de las cuotas que no cumplan con los requisitos de SAP ASE que se enumeran en la Guía de planificación de SAP ASE.

      2. En la página Implementaciones de Deployment Manager, borra la implementación para limpiar las VMs y los discos persistentes de la instalación con errores.

      3. Vuelve a ejecutar tu implementación.

Verifica la configuración de la VM

  1. Después de que el sistema SAP ASE se implemente sin errores, conéctate a la VM a través de SSH. En la página de instancias de VM de Compute Engine, puedes hacer clic en el botón SSH para la instancia de VM o puedes usar tu método de SSH preferido.

    Botón SSH de la página instancias de VM de Compute Engine

  2. Cambia al usuario raíz.

    sudo su -
  3. En el símbolo del sistema, ingresa df -h. Asegúrate de ver un resultado similar al siguiente, como el directorio //sybase/DBSID/sapdata.

    Volúmenes de datos que creó la secuencia de comandos.

  4. Ingresa el siguiente comando para confirmar que el directorio de intercambio se creó:

    cat /proc/meminfo | grep Swap

    Deberías ver resultados similares al siguiente ejemplo:

    Ejemplo de resultado de la terminal cuando hay un directorio de intercambio.

Si alguno de los pasos de la validación muestra que la instalación falló, haz lo siguiente:

  1. Corrige el error.
  2. En la página Implementaciones, borra la implementación para limpiar las VMs y los discos persistentes de la instalación con errores.
  3. Vuelve a ejecutar tu implementación.

Instala la base de datos

Ahora que tu sistema operativo está configurado, puedes instalar tu base de datos SAP ASE:

Sigue estos pasos para instalar SAP ASE en tu VM:

  1. Establece una conexión SSH a tu VM basada en Linux.
  2. Descarga o copia los medios de instalación de SAP ASE desde SAP a tu VM.
  3. Prepara el archivo de licencia o servidor de licencias SySAM de SAP ASE para usarlo con la instalación.
  4. Instala la base de datos de SAP ASE. Consulta la Guía de instalación y actualización de SAP ASE para Linux si deseas obtener orientación.

Valida la instalación del agente de Google Cloud para SAP

Después de que hayas implementado una VM y le hayas instalado SAP NetWeaver, valida que el Agente de Google Cloud para SAP funcione de forma correcta.

Verifica que el Agente de Google Cloud para SAP esté en ejecución

Para verificar que el agente esté en ejecución, sigue estos pasos:

  1. Establece una conexión SSH con la instancia de VM del host.

  2. Ejecuta el siguiente comando:

    systemctl status google-cloud-sap-agent

    Si el agente funciona de forma correcta, el resultado contendrá active (running). Por ejemplo:

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

Si el agente no está en ejecución, reinicia el agente.

Verifica que el agente de host SAP reciba métricas

Para verificar que el Agente de Google Cloud para SAP recopile las métricas de infraestructura y que se envíen de forma correcta al agente de host SAP, sigue estos pasos:

  1. En el sistema SAP, ingresa la transacción ST06.
  2. En el panel de descripción general, revisa la disponibilidad y el contenido de los siguientes campos para verificar la configuración completa y correcta de la infraestructura de supervisión de SAP y Google:

    • Proveedor de servicios en la nube: Google Cloud Platform
    • Acceso de supervisión mejorada: TRUE
    • Detalles de supervisión mejorada: ACTIVE

Realiza tareas posteriores a la implementación

Antes de usar tu instancia de SAP ASE, te recomendamos que realices los siguientes pasos posteriores a la implementación:

  1. Actualiza el software SAP ASE con los parches más recientes, si están disponibles.
  2. Instala cualquier componente adicional.
  3. Configura y crea una copia de seguridad de la nueva base de datos SAP ASE.

Si deseas obtener orientación adicional posterior a la implementación, consulta la sección Tareas posteriores a la instalación de la Guía de instalación y actualización de SAP ASE para Linux.

Soluciona problemas

En esta sección, se proporciona información sobre cómo corregir problemas comunes.

Soluciona problemas de conexión a la VM

Si tienes problemas para conectarte a tu VM a través de SSH, asegúrate de haber creado una regla de firewall para abrir el puerto 22 en la red de Google Cloud que estás usando.

Para otros problemas posibles, consulta Problemas conocidos de SSH desde el navegador.