wiki:Server/POKAL2

Der POKAL-Server pokal2

Dieser Server ist läuft im Verbund der POKAL-CLOUD. Er ist neben POKAL1 und POKAL3 einer der Rechner, der derzeit eine externe IP-Adresse hat und daher aus dem Internet angesprochen werden kann.

Hinweis: Der Name pokal2 resultiert nur aus der Durchbenennung der POKAL-Server und hat an für sich nichts mit dem Projektnamen POKAL 2.0 zu tun, vgl. POKAL/SeLF2013.

POKAL2 ist seit März 2015 der Rechner, der die Domäne https://pokal.uni-frankfurt.de/ bedient #1086. Zwischen 2012-2014 war das POKAL1.

Aktuelles

Auf POKAL2 läuft derzeit die offizielle Version von POKAL. Wie alle Rechner der POKAL-CLOUD ist er so eingerichtet, dass jeder Entwickler einen eigenen Linux-Account hat. Wichtige Dienste, die auf POKAL2 jederzeit laufen müssen, sind:

  • der Webserver nginx
  • SAGE, welches daemonized mit Shellscripten von /home/sageserver gesteuert wird
  • Django (POAK)
  • POKAL/CMS (PHP FastCGI, ist ein Systemdaemon)

Alle wichtigen Files sind unter /home/sageserver gespeichert. Folgende kommentierte und zurechtgeschnittene Ausgabe von tree -L 3 -d illustriert dadrin wichtige Verzeichnisse:

sven@pokal2:/home/sageserver$ tree -L 3 -d
.
├── bolt                       <-- PHP-basiertes CMS
│   └── pages
│       ├── app
│       ├── CodeSniffer
│       ├── extensions
│       ├── files
│       ├── src
│       ├── test
│       ├── tests
│       ├── theme
│       └── vendor
├── notebooks                  <-- Checkouts verschiedener Branches vom SageNB = POKAL-Code!
│   ├── chat_history
│   │   ├── flask_version
│   │   ├── sagenb
│   │   └── util
│   ├── master
│   │   ├── flask_version
│   │   ├── sagenb
│   │   ├── sagenb.egg-info
│   │   └── util
│   ├── philips_tasks
│   │   ├── flask_version
│   │   ├── sagenb
│   │   ├── sagenb.egg-info
│   │   └── util
│   └── running -> philips_tasks/
├── notebook.sagenb            <-- Notebook-Nutzdaten (wichtig!)
│   └── notebook.sagenb
│       └── home
├── sage -> sage-6.1.1
└── sage-6.1.1                 <-- Genutzte SAGE-Installation
    ├── autom4te.cache
    ├── build
    │   └── pkgs
    ├── config
    ├── local
    │   ├── bin
    │   ├── etc
    │   ├── gap
    │   ├── include
    │   ├── lib
    │   ├── libexec
    │   ├── man
    │   ├── openssl
    │   ├── share
    │   └── var
    ├── logs
    │   └── pkgs
    ├── m4
    ├── src
    │   ├── bin
    │   ├── build
    │   ├── c_lib
    │   ├── doc
    │   ├── ext
    │   ├── mac-app
    │   └── sage
    ├── tmp
    └── upstream

Älteres

Folgende Inhalte wurden geschrieben, während POKAL2 noch der Entwicklungsrechner für POKAL 2.0 war. Thomas hat sich vor allem um das Aufsetzen von POKAL2 gekümmert.

Arbeiten auf pokal2

Auf POKAL2 hat bislang (Status: April 2014) vor allem Thomas Dinge ausprobiert, während der Entwicklung von POKAL 2.0. Siehe dafür auch POKAL 2.0.

Testbetrieb im Server 'pokal2'

Folgende Informationen wurden von Thomas Anfang 2014 dokumentiert und im Meeting #789 vorgestellt.

bisher installiert:

  • aktuelles tex-live
  • iPython, numpy, etc
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
sage -i openssl
(sage -f python) # takes time
(SAGE_UPGRADING=yes make ssl) # takes time
sudo apt-get install gnutls-bin
  • sage (nur für den user 'thomas')
  • 7z

Versucht, SMC zu installieren. Nötig war dafür

# install node.JS, npm and coffee-script
sudo apt-get install build-essential libssl-dev curl
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install
curl https://npmjs.org/install.sh | sh
[sudo] npm install -g coffee-script

Das ist die Installation von npm ohne sudo. Wäre auch mit sudo möglich. Per default wird die SMC im Ordner '~/.sagemathcloud' installiert. Es werden auch keine Fehler ausgegeben, wenn man versucht, SMC zu starten und wieder zu stoppen:

thomas@physik-online-test9:~/.sagemathcloud$ ./start_smc 
Read SageMathCloud environment variables.
Rebuild any modified coffeescript
local_hub start
start daemon
after daemon
local_hub.js daemon successfully started
thomas@physik-online-test9:~/.sagemathcloud$ console_server start
sage_server start
console_server.js daemon successfully started

thomas@physik-online-test9:~/.sagemathcloud$ ./stop_smc 
Read SageMathCloud environment variables.
Remove port files.
Stop daemons.
local_hub stop
start daemon
after daemon
local_hub.js daemon successfully stopped
console_server stop
sage_server stop
thomas@physik-online-test9:~/.sagemathcloud$

Aber ich bin nicht ganz sicher, ob die SMC so wirklich gestartet wird, denn ich konnte mich nicht über http://localhost:8080 mit irgendwas verbinden. Die einzige Zeile im Startskript, die keine Erfolgsmeldung ausgibt (sondern gar nichts, also auch keinen Fehler), ist diese:

sage "$HOME"/.sagemathcloud/sage_server.py --pidfile "$HOME"/.sagemathcloud/data/sage_server.pid --logfile "$HOME"/.sagemathcloud/data/sage_server.log -d

Das gilt es wohl, genauer zu untersuchen.

Solange diese Version der SMC noch nicht richtig funktioniert, können wir leider nicht feststellen, wie viel der SMC wirklich geopensourced wurde.

Updates

Sagenotebook-Server mit Usererstellung

thomas@physik-online-test9:~/.sagemathcloud$ sudo chmod -R 777 ~/.sage
thomas@physik-online-test9:~/.sagemathcloud$ sudo ./sagenb_server.py --address 0.0.0.0 --path /home/thomas/.sage/sage_notebook.sagenb/ --pool_size=1

(TCP-)Services auf POKAL2

Das läuft derzeit auf POKAl2 (unwichtige Sachen rausgelöscht):

$ sudo netstat -atlpn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      29096/memcached 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30161/haproxy   
tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      28690/lighttpd  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      20001/sshd      
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      29964/postgres  
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      16413/exim4     
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      30968/8         
tcp        0      0 127.0.0.1:3009          0.0.0.0:*               LISTEN      14779/node      
tcp        0      0 127.0.0.1:8002          0.0.0.0:*               LISTEN      2600/python     
tcp        0      0 127.0.0.1:3013          0.0.0.0:*               LISTEN      14767/node      
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      2556/nginx      
tcp6       0      0 :::22                   :::*                    LISTEN      20001/sshd      
tcp6       0      0 ::1:25                  :::*                    LISTEN      16413/exim4     
tcp6       0      0 ::1:6010                :::*                    LISTEN      30968/8         
tcp6       0      0 :::6523                 :::*                    LISTEN      26276/infinoted 

Wir haben also auf folgenden öffentlichen Ports folgende Dienste:

  • 80: haproxy (Proxy für SAGE)
  • 1234: lighttpd für gitweb
  • 6010: v8 - irgendwas mit JavaScript. Was ist das?
  • 3009: node - wofür?
  • 8002: python - vmtl. Django für POAK?
  • 9000: nginx - statische Auslieferung für Thomas Reddit-Test?
  • 6523: Infinoted - Datenbank-Server!?

Irgendwie sollte da mal gehörig aufgeräumt werden.

Last modified 3 years ago Last modified on Mar 5, 2015 5:35:17 PM