Donnerstag, 22. September 2011


Mitschrift bei der Installation des Servers. Dient lediglich als Gedankenstütze.

Allgemeines

FÜR Mac ssh-copy-id installieren:
sudo bash -c "cvs -d anoncvs@anoncvs.mindrot.org:/cvs \
get -p openssh/contrib/ssh-copy-id > /usr/local/bin/ssh-copy-id"
sudo chmod +x /usr/local/bin/ssh-copy-id
ssh-login:
ssh <firstname>@<servername>
less /proc/cpuinfo 
less /proc/meminfo
uname -a
Hilfe:
https://help.ubuntu.com/10.04/index.html
Benutzer anlegen:
als root auf dem server:
adduser <user>
adduser <user> sudo
Local den key auf dem server schieben:
sudo /usr/local/bin/ssh-copy-id -i ~/.ssh/id_dsa.pub <user>@<server>
Local weitere files auf den server schieben:
cd download
scp energiemanager.sql <user>@<server>:/home/<user>/
cd /Users/<user>/Programs/server/apache-tomcat-6.0.20/lib
scp mysql-connector-java-5.1.13.jar <user>:<server>/home/<user>
scp c3p0-0.9.1.2.jar <user>@<server>:/home/<user>/
Weitere keys für die Benutzer installieren ( auf username@server:~$) :
cd .ssh
touch authorized_keys
chmod 644 authorized_keys
cat ../id_dsa.pub >> authorized_keys
rm ../id_dsa.pub
vim 
/etc/ssh/ssh_config # PasswordAuthentication? yes

Java 6

sudo vim /etc/apt/sources.list
deb http://archive.canonical.com/ubuntu lucid partner
deb-src http://archive.canonical.com/ubuntu lucid partner
sudo apt-get update
sudo apt-get install sun-java6-jdk

My Sql

sudo apt-get install mysql-server
mysql -u <user> -p
root e...&88
tomcat tomcate...88
UTF-8 einstellen: in /etc/mysql/conf.d/character.cnf (oder <irgendeinname>.cnf)
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci 
character-sets-dir=/usr/share/mysql/charsets 
default-character-set=utf8

[mysql]
character-sets-dir=/usr/share/mysql/charsets 
default-character-set=utf8

[mysqladmin]
character-sets-dir=/usr/share/mysql/charsets 
default-character-set=utf8

[mysqlcheck]
character-sets-dir=/usr/share/mysql/charsets 
default-character-set=utf8

[mysqldump]
character-sets-dir=/usr/share/mysql/charsets 
default-character-set=utf8

[mysqlimport]
character-sets-dir=/usr/share/mysql/charsets 
default-character-set=utf8

[mysqlshow]
character-sets-dir=/usr/share/mysql/charsets 
default-character-set=utf8
Benutzer und Datenbanken einrichten:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'tomcat'@'localhost' IDENTIFIED BY 'tomcate...88' WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'trac'@'localhost' IDENTIFIED BY 'e...88' WITH GRANT OPTION;
mysql>create database energiemanager CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql>create database tracabado CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql>create database tracsandbox CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql>quit;
Datenbank initial einspielen:
mysql -u tomcat -p <dbname> < ~/<script>.sql 
Passwort ändern:
mysql> UPDATE mysql.user SET Password=PASSWORD('') WHERE User='admin';
mysql> FLUSH_PRIVILEGES;
!Mysql infos:
mysql>SHOW DATABASES;     -> zeigt alle DB
mysql>USE test;           -> schaltet auf DB 'test'
mysql>status;              -> zeigt infos, unter anderem den Zeichsatz vom server und client!
mysql>show variables like '%character%';
mysql>show variables like '%collation%';

mysqladmin version -u admin -> uptime

Tomcat

sudo apt-get install tomcat6
sudo apt-get install tomcat6-admin
sudo vim etc/tomcat6/tomcat-users.xml 
-> add user with role "manager, admin" (tomcat, e...88)
/mangager/html UND /host-manager/html
MySql - jars für tomcat-jdbc von local auf den server kopieren:
local>scp mysql-connector-java-5.1.13.jar <user>@<server>
local>scp c3p0-0.9.1.2.jar <user>@<server>:/home/<user>/
!Mysql-connector-java-5.1.13.jar ins tomcat/lib Verzeichnis kopieren (/user/share/java) C3p0.jar Bibilothek ins tomcat/lib Verzeichnis kopieren (/user/share/java)
make alias to this files in /usr/share/tomcat6/lib$ :
cd /usr/share/tomcat6/lib
 sudo ln -s ../../java/mysql-connector-java-5.1.13.jar mysql-connector-java-5.1.13.jar
 sudo ln -s ../../java/c3p0-0.9.1.2.jar c3p0-0.9.1.2.jar
JDBC in /etc/tomcat6/context.xml:
<Resource name="jdbc/abado"
        auth="Container"
        description="... Database"
        driverClass="com.mysql.jdbc.Driver"
        maxPoolSize="4"
        minPoolSize="2"
        acquireIncrement="1"
        maxIdleTime="3600"
        idleConnectionTestPeriod="3600"
        preferredTestQuery="Select 1;"
        user="tomcat"
        password="tomcate...88"
        factory="org.apache.naming.factory.BeanFactory"
        type="com.mchange.v2.c3p0.ComboPooledDataSource"
        jdbcUrl="jdbc:mysql://localhost:3306/<projname>?autoReconnect=true" />
in /etc/default/tomcat6 folgende Einstellungen vornehmen:
JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx2048m -XX:MaxPermSize=512m -XX:PermSize=128m"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=4"
JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -Dfile.encoding=UTF-8 $JAVA_OPTS"
JAVA_OPTS="${JAVA_OPTS} -DJENKINS_HOME=/var/opt/jenkins/"
JAVA_OPTS="${JAVA_OPTS} -Dlog4j.configuration=log4j_server.properties"
Hinweis:
CATALINA_HOME in /usr/share/tomcat6 
CATALINA_BASE in /var/lib/tomcat6
Automatisches Forwarding von / auf /energiemanager durch anlegen von ROOT.xml funktioniert nicht. Alternatives forwarding: in /var/lib/tomcat6/webapps/ROOT die datei index.jsp anlegen mit dem Inhalt:
<%
String destination  ="/<project-name>";        
response.sendRedirect(response.encodeRedirectURL(destination));
%>
und
sudo mv /var/lib/tomcat6/webapps/ROOT/index.html /var/lib/tomcat6/webapps/ROOT/index.html.org

Apache Webserver

Installation siehe Ubuntu-Anleitung (z.B.  http://help.ubuntu.com/10.04/serverguide/C/httpd.html).
Die  Rewrite anleitung beschreibt das Forwarding auf https.
Zunächst wird hier nur eine einfache Weiterleitung von / auf https vorgenommen:
DocumentRoot /var/www
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride FileInfo
                Order allow,deny
                allow from all
                RedirectMatch ^/$ https://<servername>/energiemanager
        </Directory>

mod-jk

Anleitung unter
 blogspot und  experience
sudo apt-get install libapache2-mod-jk
(Ubuntu lädt bei der Installation den Connector automatisch als Apache2-Modul)
sudo vim /etc/libapache2-mod-jk/workers.properties
   workers.tomcat_home = /usr/share/tomcat6
   workers.java_home = /usr/lib/jvm/java-6-sun

Füge zwischen dem letzten </Directory> und dem abschließenden </VirtualHost> folgende Zeile ein:
sudo vi /etc/apache2/sites-enables/default
  JkMount /* ajp13_worker

sudo vi /etc/apache2/mods-available/jk.load
Füge am Ende folgende Zeilen hinzu:
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
    JkLogFile /var/log/apache2/mod_jk.log
    JkLogLevel error
In Zeile 93-95 folgendes einkommentieren und den aktiven connector auskommentieren:
sudo vi /etc/tomcat6/server.xml
  <!--
    <Connector port =”8009” protocol=”AJP/1.3” redirectPort= “8443” />
   -->
Tomcat und Webser neu starten
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/tomcat6 restart 

Mercurial / BitBucket

Damit mercurial, dass hier als www-data ausgeführt wird, auf bitbucket (lesend) zugreifen kann:
sudo vim /etc/sudoers
##sudo -u www-data <command>
www-data ALL=(ALL) NOPASSWD:ALL
Ssh-Key anlegen für www-data user:
sudo mkdir /var/www/.ssh
sudo chown www-data:www-data /var/www/.ssh
sudo -u www-data ssh-keygen -t dsa
-> account bei bitbucket anlegen für abadoserver -> anmelden und key hochladen
Repository vom Bitbucket initial clonen:
cd /var/opt/repo
sudo -u www-data hg clone ssh://hg@bitbucket.org/<user>/<projectmanager>

Trac

Trac 0.12 ist nicht über apt zu installieren, brauchen wir aber für mercurial. Um trac 0.12 zu installieren (mercurial anbindung buggy in 0.11):
Vorher db anlegen und user anlegen! (evlt. schon passiert, s.o. MySql)
 http://secondlight.blogspot.com/2011/04/its-time-to-have-some-bug-tracking.html
Für trac selbst wird subversion benutzt, zum browsen unseres repos brauchen wir aber mercurial. Unsere Coordinaten für die DB: mysql://trac:e...88@localhost:3306/tracabado
sudo mkdir /var/opt/repo
sudo svnadmin create /var/opt/repo/abado

sudo vim /etc/apache2/sites-available/default
<Location /trac>
    AuthType Basic
    AuthName "Trac fuer den Energiemanager"
    AuthUserFile /var/opt/trac/.htpasswd
    Require valid-user
</Location>

sudo chown -R www-data:www-data /var/opt/trac
sudo chown -R www-data:www-data /var/opt/repo
Trac als Standalone testen:
tracd --port 8000 /var/opt/trac/abado
Configure Apache2 for trac (wsgi einbinden)
sudo trac-admin /var/opt/trac/abado deploy /usr/lib/cgi-bin/
sudo vim /etc/apache2/sites-available/default   

    #Trac as WSGI on Apache
    #extra info on http://trac.edgewall.org/wiki/TracModWSGI
    #info about daemon mode http://code.google.com/p/modwsgi/
    # http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac
    WSGIScriptAlias /trac /usr/lib/cgi-bin/trac/cgi-bin/trac.wsgi
    <Directory /var/opt/trac/cgi-bin>
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
     JkMount /* ajp13_worker
     JkUnMount /trac* ajp13_worker
One of your users (merten in this example) should have access to the web admin panel:
sudo trac-admin /var/opt/trac/a..o permission add merten TRAC_ADMIN
Install TOC plugin (Zum Anzeigen eines Inhaltsverzeichnisses:
sudo easy_install http://trac-hacks.org/svn/tocmacro/0.11
sudo vim /etc/opt/trac/abado/trac.ini
Siehe auch  Toc Macro
Folgendes einfügen:
[components]
   tractoc.* = enabled
B
sudo easy_install https://trac-hacks.org/svn/accountmanagerplugin/trunk
Optional Install more apt-get package for trac plugins later
sudo apt-get install build-essential graphviz
sudo apt-get install htmldoc
sudo apt-get install enscript
sudo easy_install -U setuptools

Maven

Maven3 ist noch nicht in den offiziellen Quellen für Ubuntu vorhanden, daher maven2:
sudo apt-get install maven2 
HINWEIS: Das Plugin unter Jenkins benutzt aber bereits Maven 3.0.3

Jenkins

/etc/default/tomcat6
JAVA_OPTS="${JAVA_OPTS} -DJENKINS_HOME=/var/opt/jenkins/"
Verzeichnis anlegen und rechte setzen:
sudo mkdir /var/opt/jenkins
sudo chown tomcat6:tomcat6 /var/opt/jenkins
tomcat6 - Maven-Verzeichnisse erstellen, Rechte setzen und Schlüssel für den BitBucket-Zugriff einrichten (=Key von Trac-Zugriff)
sudo cp -R /var/www/.ssh/ /usr/share/tomcat6/
sudo chown -R tomcat6:tomcat6 /usr/share/tomcat6/.ssh/
sudo mkdir /usr/share/tomcat6/.m2
sudo chown -R tomcat6:tomcat6 /usr/share/tomcat6/.m2

Todo

vor einem Lifegang:
  • Security: Server, auf dem nur Tomcat / Apache / MySql läuft. Siehe die entsprechenden Seiten für Live-Configuration.