Rozleťse Wiki

Návody, postupy a technická dokumentace k RozLETSe a Cyclosu

Uživatelské nástroje

Nástroje pro tento web


instalace_ubuntu_server_16.04_na_vpsfree

Instalace Cyclosu na Ubuntu server 16.04 na vpsFree

Stručný popis proběhlé migrace 28.4.2017

  1. do-release-upgrade na 14.04
  2. přesun Apache2 virtualHostů z /home/… do /srv a povolení /srv v konfiguráku Apache2, oprava zálohovacích skriptů na nové cesty a pro jistotu symlinky z původních složek do /srv/…
  3. oprava Apache2 konfiguráků podle nové syntaxe na Require all granted
  4. změna distribuce ve vpsAdminu na 14.04 (až potud velmi bezproblémové)
  5. do-release-upgrade na 16.04 (před tím se správně měla změnit distribude ve vpsAdminu na 16.04 aby to fakovalo jiné jádro, nutné každopádně provést poté před restartem, kvůli problémům jádra 2.6.32 s glibc6)
    1. nutnost opakovaně po selhání spouštět ručně apt-get -f install a opravovat chyby. Největší problém dělal v init skriptech jakýsi mesh který bylo nutné úplně z SysV initskriptů vymazat aby se dalo pohnout dál, psalo to insserv: Starting mesh_linux64 depends on ondemand and therefore on system facility `$all' which can not be true! (https://pastebin.com/2BaRWEL2)
    2. nevím jestli to bylo nutné, ale zbavil jsem se systemd a vrátil upstart: http://notesofaprogrammer.blogspot.cz/2016/09/running-upstart-on-ubuntu-1604-lts.html
  6. tomcat6 nahrazen za tomcat8 a přesunut rozbalený WAR s cyclosem, změna práv souborů na tomcat8:tomcat8
  7. stará Joomla 2.5 na www.rozletse.cz s x podivnými relikty pluginů přestala úplně fungovat, nutnost změny mysql na mysqli ale ani to nestačilo. Vyřešeno až nahráním vanilla nové Joomly 3.8 a vložením starého konfiguráku a poté přes administraci Fix database a vyházení pluginů co neexistovaly atd. Tip: radši před migrací OS udělat postupný upgrade Joomly.

Návod níže byl psaný v době, kdy vpsFree podporovalo jen Ubuntu server 14.04. Upgrade na 16.04 proto využívá balíku update-manager-core a příkazu do-release-upgrade. Navíc návod vycházel z instalace nového serveru namísto do-release upgrade existujícího jak se nakonec stalo 28.4.2017 kdy proběhl dvoukrokový upgrade Ubuntu 12.04 až na 16.04 viz body výše. Následující checklist tak je jen pro informaci, jak by se dal nainstalovat nový server pro Cyclos a migrovat do něj existující data.

</WRAP>

Základní nastavení serveru před upgradem na 16.04

  1. přes vpsAdmin (https://vpsadmin.vpsfree.cz/) vytvořit nové playground VPS s Ubuntu server 14.04
  2. vygenerovat si heslo roota, to si uložit do správce hesel (Keepass2) a opsat si IP adresu IPv4
  3. v /etc/hosts lokálně si případně doplnit záznam pro IP adresu, aby stačilo zadávat jen doménové jméno, např. dev.rozletse.cz
  4. přihlásit se jako root na vps přes ssh (ssh root@dev.rozletse.cz)
  5. přes adduser si vytvořit vlastního uživatele
  6. přidělit uživateli sudo práva přes sudo usermod -aG sudo username
  7. zkusit se na nového uživatele v novém okně přihlásit a vyzkoušet příkaz sudo su, jestli uživatel opravdu má sudo práva
  8. pro pohodlnost si nainstalovat mc a mcedit, sudo apt-get udpate && sudo apt-get install mc mcedit
  9. zabezpečit ssh server: sudo mcedit /etc/ssh/sshd_config. zakázat login roota: PermitRootLogin No, a změnit port z 22 např. na 10022: Port 10022
  10. povolit si přihlášení přes rsa public key, z lokálního PC zkopírovat záznam z ~/.ssh/id_rsa.pub a ten vložit do souboru authorized_hosts na serveru (~/.ssh/authorized_hosts)
  11. opravit přístupová práva k této složce na serveru, chmod 700 ~/.ssh a chmod 600 ~/.ssh/authorized_keys
  12. vygenerovat si české locales, sudo locale-gen cs_CZ.UTF-8 a nastavit si časovou zónu, sudo dpkg-reconfigure tzdata
  13. upgradovat všechny balíky 14.04: sudo apt-get upgrade

Upgrade na 16.04

  1. nainstalovat balík update-manager-core: sudo apt-get install update-manager-core
  2. provést upgrade na novou LTS verzi: sudo do-release-upgrade -d
  3. schválit dočasné spuštění záložní instance sshd na portu 1022, povolit reload ssh, a případné přepsání konfiguračních souborů novými verzemi schválit (a/y)
  4. na konci povolit restart serveru

Přihlášení po upgradu na 16.04

  • pokud byl ugprade úspěšný, do 30 s po restartu se lze znovu přihlásit a mělo by nás přivítat nové Ubuntu 16.04:
ssh -p 10022 dev.rozletse.cz
Welcome to Ubuntu 16.04 LTS (GNU/Linux 3.16.6-042stab113.11 x86_64)
 
 * Documentation:  https://help.ubuntu.com/
Last login: Sat Apr 23 15:25:50 2016 from xxx

Bash autocompletion

  • pro pohodlnou další práci je vhodné nainstalovat autocomplete: sudo apt-get install bash-completion a znovu se přihlásit, případně ještě upravit /etc/bash.bashrc

Instalace základních serverů

  1. webserver Apache (apache2), MySQL (MariaDB), Java JRE (openjdk-8-jdk-headless) a Tomcat (tomcat8): sudo apt-get install openjdk-8-jdk-headless mariadb-server-10.0 apache2 tomcat8 tomcat8-admin tomcat8-user php libapache2-mod-php Neinstalovat openjdk-9, není kompatibilní s tomcatem

Nastavení SSL

  • nutné zabezpečit přístup do Tomcat managera, Tomcat servletů na nativních portech, a přesměrovávat virtualhosty Apache na SSL na portu 443, případně zajistit všechny další služby (webmin, phpmyadmin/adminer apod.)

Let's encrypt

TODO

Nefunguje na WInXP krom Firefoxu

Běžné SSL certifikáty

TODO

Dále se uvádí nešifrované http spojení na portu 8080/80, pokud jde o ssl tak 8443 nebo 443.

Příprava Tomcat GUI manageru

  1. upravit login v /etc/tomcat8/tomcat-users.xml a přiřadit se do skupiny manager-gui
  2. přihlásit se v dev.rozletse.cz:8080/manager

Příprava SQL databáze

  1. zabezpečit SQL server např. dle návodu http://www.yassl.com/files/yassl_securing_mysql.pdf nebo pomocí skriptu mysql_secure_installation
  2. nainstalovat phpmyadmin či adminer, či ručně vytvořit nového SQL uživatele a databázi (např. cyclos/cyclos):
    sudo mysql -uroot -p
    create database cyclos;
    grant all on cyclos.* to cyclos@localhost identified by 'heslo-sql-uzivatele-cyclos';
    flush privileges;
    exit
  3. v případě existující databáze kterou je nutné migrovat exportovat dosavadní SQL databázi
    mysqldump -u cyclos -p cyclos > cyclos-db.sql

    , a tu pak znovu importovat,

    mysql -u cyclos -p cyclos < cyclos-db.sql

Příprava WAR servletu s Cyclosem

  1. stáhnout zip s cyclos3 z https://sourceforge.net/projects/cyclos/files/Cyclos3/3.7.3/cyclos_3.7.3.zip/download a rozbalit jej, nebo zkopírovat existující cyclos z existujícího serveru ze složky tomcatu/webapps
  2. upravit war soubor nebo zkopírovaný cyclos v souboru cyclos/WEB-INF/classes/cyclos.properties - zejména nastavit SQL server, databázi a username
  3. zabalit zpátky do waru: jar cvf cyclos.war .
  4. ve /var/lib/tomcat8/conf/server.xml odkomentovat řádek s connector port 8009 pro AJP/1.3
  5. v /etc/default/tomcat8 nastavit JAVA_OPTS následovně:
    JAVA_OPTS="-Djava.awt.headless=true -Xms192m -Xmx768m -XX:+UseConcMarkSweepGC -XX:MaxPermSize=192m"

    , restartovat službu tomcatu: sudo service tomcat8 restart. Bez tohoto navýšení paměti se spuštění Cyclosu nezdaří a spouštění se může zaseknout ve smyčce konzumující naplno CPU, aniž by se kdy Cyclos dokázal spustit

  6. war soubor přes tomcat manager deploynout: context path /cyclos, a zadat adresu war souboru v rámci filesystému serveru, např. /home/brozkeff/cyclos-config/cyclos.war

Test funkčního Cyclosu

Přístup na Cyclos z portu 80 příp. 443/ssl přes reverzní proxy Apache2

  1. povolit modul proxy_ajp v Apache: sudo a2enmod proxy_ajp
  2. V příslušném Virtualhostu Apache (např. /etc/apache2/sites-enabl)ed/000-default.conf) doplnit následující řádky a restartovat Apache2 (sudo service apache2 restart)
    ProxyPass /cyclos ajp://127.0.0.1:8009/cyclos
    ProxyPassReverse /cyclos ajp://127.0.0.1:8009/cyclos
  3. Cyclos by tímto měl být přístupný přímo přes port 80 nebo 443 v případě ssl u Apache: http://dev.rozletse.cz/cyclos / https://dev.rozletse.cz/cyclos

Další věci tímto návodem neřešené

  • jiné služby na serveru (mailserver)
  • nastavení domén a DNS záznamů
  • zálohování
  • konfigurace Cyclosu úplně nanovo v případě, že nejde jen o přenos existující databáze a war souboru s upravenou grafickou šablonou a překladovými klíči
instalace_ubuntu_server_16.04_na_vpsfree.txt · Poslední úprava: 2017/05/02 15:57 autor: brozkeff