# Connexió gràfica al cluster . El cluster està dissenyat per treballar en **línia de comandes**: enviar scripts als nodes via el sistema de cues (SGE). Tot i això també es pot treballar en mode gràfic amb determinats programes. Amb algunes limitacions, com que **el cluster no és accessible gràficament (en principi) des de fora del centre**. . I dins del centre hem de tenir en compte que no ens podrem connectar amb qualsevol connexió. **No podem tenir connexió gràfica al cluster des de qualsevol connexió wifi (sigui via eduroam o via convidats). Únicament tindrem connexió via connexió per cable (xarxes 161.111.254.0 i 161.111.255.0). ** ### Usuaris MacOS. Per tal de connectar-se gràficament des d'un MacOS cal fer (pot variar en funció de la versió de MacOS amb la que estiguem treballant): . Instal·lar [xquartz](https://www.xquartz.org/) al MacOS . . Configurar xquartz per tal qeu accepti connexions gràfiques entrants: ens en anem a preferències -> Protecció i activem les dues pestanyes que n'hi han: autenticar connexió i permet les connexió del client de xarxa (algo així). {{ :users:guides:photo_5879497735449723141_y.jpeg?400 |}} . Entrar a la terminal d'xquartz: ``` $ xhost + //(al mac) $ ssh -X nom_usuari@cluster-ceab.ceab.csic.es //al mac xavier.roijals@cluster-ceab:~$ qlogin //(des de cluster-ceab). ``` . Mirar des del mac quines són les connexions gràfiques entrants: ``` $ lsof -i -P | grep -i x11.bin //des del Mac ``` i ens donarà una sortida X amb uns ports TCP \*:600X, sent X la connexió gràfica. Si per exemple fos TCP \*:600**6** doncs haurem de posar al node: ``` xavier.roijals@node103$ export DISPLAY=161.111.254.196:6 ``` **atenció al 6, tal i com hem explicat abans**. (161.111.254.196 seria la ip des de la que es connecta l'usuari). Fet tot això podríem fer el típic xeyes i llavors ja executar el programa gràfic que vulguéssim. ### Usuaris GNU/Linux. En el cas d'una connexió gràfica al cluster des d'un sistema GNU/Linux seguirem els següents pasos: . En primer lloc **configurarem el desktop manager perquè permeti connexions gràfiques remotes**. Si no ho fem més que probablement no funcionarà. **No hi ha una regla general** per fer això: depèn de la **distribució** (Ubuntu, Biolinux, Debian, etc), de l'**entorn de finestres** amb que treballem (xfce, gnome, unity, etc) i de la **versió** del mateix. En el cas de lightdm (Xubuntu, Debian amb xfce, etc) haurem d'editar el fitxer /etc/ligthdm/lightdm.conf i afegir la línia: ``` xserver-allow-tcp=true ``` En el cas de GDM (Ubuntu, Debian amb Gnome, etc), haurem d'editar el fitxer /etc/gdm/custom.conf i afegir la següent opció: ``` [security] DissallowTCP=false ``` En d'altres displays managers, com KDM, xdm, etc s'hauran de mirar els paràmetres equivalents. En tots els casos haurem de reiniciar el display manager. ``` $ sudo service lightdm restart // En el cas de lightdm $ sudo service gdm restart // en el cas de gdm ``` (Recordem un altre cop que igual les comandes són diferents, o les línies a afegir/descomentar dels fitxers de configuració són diferents, o fins i tot igual els fitxers de configuració són diferents: depèn tot de la versió, del desktop manager triat i de la distribució). Un cop fet això els pasos a seguir seran els següents (els habituals): . Permetre l'accés a connexions externes a la nostra terminal: ``` $ xhost + //(al mac) ``` . Connectar-me amb accés gràfic al cluster (ssh -X): ``` $ ssh -X nom_usuari@cluster-ceab.ceab.csic.es ``` . Fer un qlogin des de cluster-ceab i accedir a un node: ``` xavier.roijals@cluster-ceab:~$ qlogin ``` . Anar fent proves amb export DISPLAY i variant el número del display final (suposant que la nostra ip fos 161.111.254.196: 161.111.254.196.0, 161.111.254.196:1, 161.111.254.196:2, etc): ``` xavier.roijals@node103$ export DISPLAY=161.111.254.196:6 //sent 161.111.254.196 la nostra ip. xavier.roijals@node103$ xeyes ``` Si veiem que ens apareixen uns ulls que van seguint el ratolí a mesura que es va movent per l'escriptori llavors el sistema gràfic és actiu i ja podem executar el programa gràfic que necessitem. ### Usuaris Windows. #### Manera clàssica de fer-ho (des de xarxa del centre i amb putty, Xming, etc). Recordem també que en tot cas per connectar-se gràficament al cluster cal fer-ho des de la xarxa cablejada del centre (no via wifi, ni eduroam, ni tampoc des de fora del centre). . En primer lloc hem d'instal·lar el programari [Xming](http://www.straightrunning.com/XmingNotes/). Dintre de l'Xming, ens anirem a "Propiedades -> Acceso directo", i dintre d'aquí on posa "Destino" posarem \Xming\Xming.exe" :0 -clipboard -multiwindow **-ac** **És molt important que posem això del -ac de l'Xming, sinó, és ben possible que no funcioni. Oju amb això.** . Un cop instal·lat i executat, cal dir-li que obri l'accés X11 a connexions externes. Això es fa via Tunneling -> X11 Tunneling -> tunnel X11 connections (activant la pestanya): {{:users:guides:capturapantallaconnexionsxming.jpeg?600|}} . Un cop fet això ens connectarem al cluster de la manera habitual via [putty](https://www.putty.org/). Dintre de putty ens en anirem a Profile settings -> Tunneling -> X11 Tunneling i activarem la pestanya Tunnel X11 connections. {{:users:guides:captura_sshsecureshellclientx11.png?600|}} Llavors ara sí que si ens connectem de la manera habitual dins de putty: ``` ssh xavier.roijals@cluster-ceab.ceab.csic.es //enlloc de xavier.roijals posarem el nom del nostre usuari ``` Llavors entrarem a cluster-ceab. I des de cluster-ceab seguirem els pasos habituals: ``` xavier.roijals@cluster-ceab:~$ qlogin ``` Anar fent proves amb export DISPLAY i variant el número del display final (suposant que la nostra ip fos 161.111.254.196: 161.111.254.196.0, 161.111.254.196:1, 161.111.254.196:2, etc): ``` xavier.roijals@node103$ export DISPLAY=161.111.254.196:6 //sent 161.111.254.196 la nostra ip. xavier.roijals@node103$ xeyes ``` Si veiem que ens apareixen uns ulls que van seguint el ratolí a mesura que es va movent per l'escriptori llavors el sistema gràfic és actiu i ja podem executar el programa gràfic que necessitem. #### Manera nova de fer-ho (permet connectar-se des de qualsevol xarxa)(més complicada) 1.- En primer lugar, hay que realizar la conexión vpnssl al CEAB. Tal y cómo vamos haciendo con Forticlient / openfortivpn. 2.- En segundo lugar hay que ejecutar [mobaxterm](https://mobaxterm.mobatek.net/download-home-edition.html). Una vez conectado con Forticlient y instalado MobaXterm, le dáis al signo más que aparece al lado del icono de la casa de mobaXterm, tal y cómo se puede ver en la captura de pantalla (donde podéis observar mis pocos progresos con el Paint): {{:users:guides:sin_titulo.png?800|}} Verás que se te abre como una sesión de terminal pero en local. Aquí deberás escribir: ``` ssh -J nombre_usuario@cluster-ceab.ceab.csic.es nombre_usuario@node102 -N -L 5901:localhost:5901 ``` (pongo node102 por ejemplo, en realidad deberías poner el número de algún nodo que hayas visto que esté más o menos libre, pero siempre -a no ser en casos **muy** específicos de la cola ceab -del nodo 102 al 112 menos el 110) (Te pedirá dos veces la password, que deberás porner la misma (la tuya del cluster) las dos veces). Si todo ha ido bien verás que no te dice nada, se queda igual, con el cursor debajo de nombre\_usuario@nodo02. 3.- Deberás repetir el mismo paso (de abrir una sesión de ssh), pero esta vez simplemente abrirte una sesión de ssh normal: ``` ssh nombre_usuario@cluster-ceab.ceab.csic.es ``` . Y una vez dentro de cluster-ceab, hacer un qlogin al node102 (o nodo que hayas elegido): ``` qlogin -q ceab@node102 ``` . Tienes que copiarte el fichero siguiente a un subdirectorio .vnc/xstartup de tu home: ``` #!/bin/sh export XKL_XMODMAP_DISABLE=1 exec startfluxbox ``` . Y entonces, dentro del node102 iniciar una sesión de vncserver (servidor gráfico): ``` vncserver -geometry 1920x800 ``` (yo le he puesto esta geometría, pero se la puedes cambiar, 1600x800, lo que prefieras). (en el primer uso, te pedirá de crear una password, le pones la que quieras). 4.- Tienes que descargarte RealVNC (versión gratuita), desde [aquí](https://www.realvnc.com/es/connect/download/viewer/) y instalártelo. Una vez instalado, debes ejecutarlo y en la barra de arriba poner: localhost:5901 Si te pide una password, le pones la que hayas creado antes... ...y se te abrirá una sesión gráfica con un escritorio muy simple y muy cutre (fluxbox) pero que consume muy pocos recursos. Aquí haces botón derecho y seleccionas Applications -> Terminal Emulators -> XTerm y se te abrirá una terminal en la sesión gráfica donde ya podrás ejecutar la aplicación gráfica que prefieras. 5.- **ESTO ES MUY IMPORTANTE**. Una vez que hayas finalizado el trabajo, deberás hacer obligatoriamente los siguientes pasos: . CERRAR la sesión gráfica de Realvnc. . dentro de las dos terminales de mobaxterm (la de ssh -J etc etc y la de ssh y ya está dentro del nodo en cuestión) deberás ir a la terminal donde tienes abierta la sesión de node100 y matar la sesión de vncserver con el comando: ``` vncserver -kill :1 ``` Si no queda abierta y luego es un follón para matar las sesiones antiguas.