Installation av Virtualiseringsplattform Revisionshistorik Version Beskrivning Ändrad av PA1 Upprättande av dokument för version 1.3.1 av virtualiseringsplattformen PA2 Smärre justeringar efter installation på en ren maskin. Marcus Krantz [marcus.krantz@callistaenterprise.se] Peter Larsson [peter.larsson@ callistaenterprise.se] Innehållsförteckning Introduktion... 1 Installation... 1 Förutsättningar... 2 Konfigurera driftmiljö... 2 Installation av databas för loggning... 2 Installation av virtualiseringsplattformen... 3 Skapa katalog för certifikat... 3 Kopiera bibliotek... 3 Skapa hemkatalog för virtualiseringsplattformen... 3 Konfigurera Mule ESB för uppstart... 4 Konfigurera virtualiseringsplattformen... 5 Verifiering... 9 Introduktion Virtualiseringsplattformen driftsätt på Mule ESB. Utöver Mule ESB krävs också ActiveMQ samt MySQL. Loggmeddelanden som kommer från virtualiseringsplattformen skickas på en kö som tillhandahålls av ActiveMQ. Den här kön bearbetas och loggarna skrivs till en MySQL databas. Därav beroendet till ActiveMQ och MySQL. Den här anvisningen är uppdelad i två delar; installation och verifiering. Installation Virtualiseringsplattformens uppackningsplats benämns i dessa anvisningar som ${DIST} och Mule ESBs uppackningsplats benämns som ${MULE_HOME}. Virtualiseringsplattformens hemkatalog behöver skapas (se REF) och denna kommer att benämnas som ${VP_HOME}. Virtualiseringsplattformen kommer hädanefter benämnas som VP. Således benämns ActiveMQs uppackningsplats ${ACTIVEMQ_HOME}.
Förutsättningar Java 1.6 eller senare är installerat. Se http://www.oracle.com/technetwork/java/javase/index- 137561.html för nedladdning- och installationsanvisningar. Teknisk verifiering har dock endast gjorts med Java SE 6 Update 27. Mule ESB 2.2.8 är installerad. Den här versionen är ej nedladningsbar från Mulesoft men kan byggas från källkod med hjälp av Maven. Källkoden för version 2.2.8 finns tillgänglig på http://svn.codehaus.org/mule/tags/mule- 2.2.8/ ActiveMQ 5.4.3 är installerad. Se http://activemq.apache.org/activemq- 543- release.html för nedladdning- och installationsanvisningar. MySQL 5.1 är installerad. Se http://www.mysql.com/downloads/mysql/ för nedladdning- och installationsinstruktioner. Virtualiseringsplattformens distributionsfil är nedladdad och uppackad på filsystemet. Distributionen finns att ladda ner på följande adress: http://forge.osor.eu/frs/?group_id=126 Konfigurera driftmiljö Innan själva installationen av virtualiseringsplattformen kan påbörjas, behöver man konfigurera miljön som skall köra plattformen. Filen ${DIST}/VP_ENVIRONMENT innehåller de miljövariabler som behöver vara på plats för att kunna installera och starta virtualiseringsplattformen. Installation av databas för loggning Virtualiseringsplattformen loggar alla meddelanden som går igenom plattformen. Loggmeddelanden skickas på en JMS- kö som bearbetas och loggmeddelandena skrivs till en MySQL- databas. Installera databasen genom att genomföra följande steg: mysql u root p create database tp_logs character set utf8; grant usage on tp_logs. to tploguser@localhost identified by tploguserpassword ; grant all privileges on tp_logs. to tploguser@localhost; flush ; exit Nu ska det finnas en loggdatabas för att ta emot virtualiseringsplattformens loggar. Ett databasschema måste dock skapas. Gör det här genom följande kommando:
mysql u tploguser p database=tp_logs < ${DIST}/sql/tp_logs_ddl.sql För version 1.3.1 av virtualiseringsplattformen tillkom det några små modifikationer av loggdatabas- schemat för att underlätta felsökning i virtualiseringsplattformen. Installera dessa uppdateringar genom följande kommando: mysql u tploguser p database=tp_logs < ${DIST}/sql/tp_logs_1.3.1.sql Databasen är nu färdigkonfigurerad. Installation av virtualiseringsplattformen Det här avsnittet beskriver hur man installerar virtualiseringsplattformen på en befintlig Mule ESB 2.2.8 installation. Skapa katalog för certifikat Virtualiseringsplattformen autentiserar sina konsumenter med hjälp av certifikat utfärdade av SITHS. Avsändarens identitet plockas ut från certifikatet och används senare vid uppslag mot tjänstekatalogen för att kunna avgöra ifall avsändaren har rättighet att anropa en viss producent. Certifikaten skall ligga i en certifikat- katalog i Mule ESB. Skapa denna genom följande kommando, och kopiera sedan certifikaten till detta bibliotek. mkdir ${MULE_HOME}/certs Kopiera bibliotek Virtualiseringsplattformen utgörs av en mängd bibliotek (jar- filer) som Mule ESB måste läsa in för att kunna start VP. Detta avsnittet visar hur man kopierar in dessa biliotek till rätt ställe. 1. Börja med att radera de exempelapplikationer som följer med Mule ESB. Det här görs genom att exekvera följande kommando: rm rf ${MULE_HOME}/lib/user/ 2. Installera nu virtualiseringsplattformens bibliotek genom att kopiera dem till Mule ESBs bibliotektskatalog. Exekvera följande kommando: cp rf ${DIST}/lib/.jar ${MULE_HOME}/lib/user/ Skapa hemkatalog för virtualiseringsplattformen För att virtualiseringsplattformen ska kunna köras krävs en hemkatalog för den. Här återfinns all konfiguration som är specifik för själva plattformen, men även de tjänster som körs i VP kommer att finnas här.
1. Skapa en hemkatalog för virtualiseringsplattformen genom att exekvera: mkdir p ${VP_HOME} Konfigurera Mule ESB för uppstart Innan Mule kan skapas krävs det att man gör viss konfiguration. Bland annat för att Mule ESB ska veta var virtualiseringsplattformens konfiguration finns. Men även JMX och loggning behöver vara på plats. 1. Skapa underkatalogerna config och services. config- katalogen kommer att innehålla property- filer för konfiguration av VP och services- katalogen kommer att innehålla de tjänster som virtualiseras på VP. Skapa dessa katalogen med hjälp av följande kommando: mkdir p ${VP_HOME}/vp/config ${VP_HOME}/vp/services 2. Filen ${DIST}/mule- config/wrapper.conf innehåller en konfiguration av Mule ESB för att köra VP. Den här filen kan oftast användas rakt av men nedan kommer en beskrivning av vilka ändringar som krävs. Notera att <N> skall ersättas med den logiska nummerordningen som redan används i wrapper.conf. # set app home wrapper.java.additional.<n>=- Dapp.home=%VP_HOME% # enable JMX wrapper.java.additional.<n+1>=- Dcom.sun.management.jmxremote.port=1111 wrapper.java.additional.<n+2>=dcom.sun.management.jmxremote.password.file=%mule_home%/conf/jmx.password wrapper.java.additional.<n+3>=- Dcom.sun.management.jmxremote.ssl=false # add classpath wrapper.java.classpath.<n>=%vp_home%/vp/services/.jar # set log file size wrapper.logfile.maxsize=4m 3. Kopiera nu VPs konfigurationsfiler. Det här görs genom att exekvera följande kommando: cp rf ${DIST}/vp- config/ ${VP_HOME}/vp/config/ 4. Slutligen behövs loggkonfiguration vara på plats i Mule ESB innan den kan startas upp. Kopiera där för log4j.properties till Mule ESBs konfigurationskatalog. cp ${DIST}/mule- config/ ${MULE_HOME}/conf/
5. För att Mule ESB skall kunna starta upp korrekt med JMX- stöd behöver rättigheter ändras på jmx.password filen. Ändra rättigheter genom: chmod 400 ${MULE_HOME}/conf/jmx.password Nu är Mule ESB konfigurerad för uppstart. Virtualiseringsplattformens bibliotek finns på plats samt förinställd konfiguration. Det ska nu gå att starta Mule ESB, dock kan det krävas vissa justeringar av VPs inställningar innan Mule ESB kan startas ordentligt. Notera att för att allt ska startas korrekt krävs det att ActiveMQ är igång, MySQL är uppsatt samt att Tjänstekatalogen är uppstartad. Installationen av tjänstekatalog beskrivs i separat anvisning. Starta Mule genom att exekvera följande kommando: sh ${MULE_HOME}/bin/mule config vp- config.xml && tail f ${MULE_HOME}/logs/vp.log När Mule ESB är startad så visas: Mule Started!!! Konfigurera virtualiseringsplattformen För att VP skall operera optimalt krävs en del konfiguration. Den här sektionen är en referens över de inställningar man kan göra. Inställningarna görs i filen ${VP_HOME}/vp/config/vp- config.properties IP_WHITE_LIST Komma separerad lista över ip- addresser som agerar reverse- proxy framför virtualiseringsplattformen. Förinställt värde: - SERVICE_TIMEOUT Antal millisekunder virtualiseringsplattformen väntar på svar från konsumenter. Förinställt värde: 30000 tp.host Namn eller ip- address som virtualiseringsplattformen är installerad på. Dvs. hosten för virtuella tjänster Förinställt värde: localhost tp.port Port där virtuella tjänster exponeras. Förinställt värde: 20000 tp.baseuri Bas- url där virtuella tjänster exponeras. En fullständig bas- address till en virtuell tjänst blir https://${tp.host}:${tp.port}/${tp.baseuri}/
Förinställt värde: vp TP_SOKVAGVALSINFO_URL Url till tjänstekatalogens web tjänst. Förinställt värde: http://localhost:8080/tp- vagval- admin- services/sokvagvalsinfo LOGMANAGER_DB_HOST Hostnamn för MySQL- instansen där VPs loggar lagras. Förinställt värde: localhost LOGMANAGER_DB_PORT Port till MySQL- instansen där VPs loggar lagras. Förinställt värde: 3306 LOGMANAGER_DB_NAME Namn på det databasschema som lagrar VPs loggar. Förinställt värde: tp_logs LOGMANAGER_DB_USER Användarnamn på databasanvändaren som används för att ansluta till MySQL- instansen. Förinställt värde: tploguser LOGMANAGER_DB_PASSWORD Lösenord för databasanvändaren som används för att ansluta till MySQL- instansen. Förinställt värde: tploguserpassword VAGVALROUTER_SENDERID Namn på det fält som används för att plocka ut avsändarens identitet ifrån certifikatet. Förinställt värde: OU PINGSERVICE_INBOUND_URI Url till VPs interna ping- tjänst. Förinställt värde: monitor/ping PINGSERVICE_PORT Port där VPs interna ping- tjänst skall exponeras. Den fullständiga Urlen blir http://${tp.host}:${pingservice_port}/${pingservice_inbound_uri} Förinställt värde: 20000 PINGSERVICE_RESPONSE Returvärde som visas vid anrop till VPs interna ping- tjänst. Förinställt värde: TP is alive!
PINGFORCONFIGURATIONSERVICE_RIVTABP20_PORT Port till VPs interna ping- tjänst. Nationellt tjänstekontrakt: PingForConfiguration.(RIV- TA BP 2.0) Förinställt värde: 23001 PINGFORCONFIGURATIONSERVICE_RIVTABP20_INBOUND_URI Relativ url till VPs interna ping- tjänst. Nationellt tjänstekontrakt: PingForConfiguration (RIV- TA BP 20) Förinställt värde: PingForConfiguration/1/rivtabp20 PINGFORCONFIGURATIONSERVICE_RIVTABP21_PORT Port till VPs interna ping- tjänst. Nationellt tjänstekontrakt: PingForConfiguration.(RIV- TA BP 2.1) Förinställt värde: 23001 PINGFORCONFIGURATIONSERVICE_RIVTABP21_INBOUND_URI Port till VPs interna ping- tjänst. Nationellt tjänstekontrakt: PingForConfiguration.(RIV- TA BP 2.1) Förinställt värde: PingForConfiguration/1/rivtabp21 HTMLDASHBOARDSERVICE_INBOUND_URI Relativ url till VPs dashboard tjänst. Dashboard tjänsten visar statistik över hur många anrop som har gått igenom VP sen start. Förinställt värde: monitor/dashboard HTMLDASHBOARDSERVICE_PORT Port till VPs dashboard tjänst. Förinställt värde: 9191 RESETVAGVALCACHE_INBOUND_URI Relativ url till VPs tjänst för ny inläsning av tjänstekatalogens data. Förinställt värde: resetcache RESETVAGVALCACHE_PORT Port till VPs tjänst för ny inläsning av tjänstekatalogens data. Förinställt värde: 10101 GETSUPPORTEDSERVICECONTRACTS_OUTBOUND_HOST Hostnamn där tjänsten GetSupportedServiceContracts körs. Den här tjänsten exponeras automatiskt av tjänstekatalogen. Förinställt värde: localhost GETSUPPORTEDSERVICECONTRACTS_OUTBOUND_PORT Port till där GetSupportedServiceContracts- tjänsten exponeras. Förinställt värde: 8080 GETSUPPORTEDSERVICECONTRACTS_OUTBOUND_URI Relativ url där tjänsten GetSupportedServiceContracts finns.
Förinställt värde: tp- vagval- admin- services/getsupportedservicecontracts Följande inställningar berör säkerhet som pekar ut certifikat- filer, lösenord, och annan känslig information. De här inställningarna görs i filen ${VP_HOME}/vp/config/vp- security.properties TP_TLS_STORE_LOCATION Relativ plats från ${MULE_HOME}/bin där certifikaten som skall användas återfinns. Förinställt värde:../certs TP_TLS_STORE_TRUSTORE_TYPE Typ av truststore som används. Förinställt värde: JKS TP_TLS_STORE_TRUSTSTORE_FILE Filnamnet på truststoren. Förinställt värde: truststore.jks TP_TLS_STORE_TRUSTSTORE_PASSWORD Lösenord till truststoren. Förinställt värde: password TP_TLS_STORE_PRODUCER_TYPE Typ av producent- certifikat som används. Förinställt värde: JKS TP_TLS_STORE_PRODUCER_FILE Filnamnet på producent- certifikatet. Förinställt värde: tp.jks TP_TLS_STORE_PRODUCER_PASSWORD Lösenord på producent- certifikatet. Förinställt värde: password TP_TLS_STORE_PRODUCER_KEY_PASSWORD Lösenord till producent- certifikatets nyckel. Förinställt värde: password TP_TLS_STORE_CONSUMER_TYPE Typ av konsument- certifikat som används. Förinställt värde: JKS TP_TLS_STORE_CONSUMER_FILE Filnamnet på konsument- certifikatet.
Förinställt värde: tp.jks TP_TLS_STORE_CONSUMER_PASSWORD Lösenord på konsument- certifikatet. Förinställt värde: password Verifiering Det här avsnittet förutsätter att man har gjort all nödvändig konfiguration för den miljön där virtualiseringsplattformen har installerats. Det förutsätts också att alla externa tjänster är igång såsom ActiveMQ, MySQL och tjänstekatalogen. Observera att följande måsta vara på plats innan man kan starta: Certifikaten måste finnas ${MULE_HOME}/certs i enlighet med ovanstående konfiguration (vp- security.properties) Tjänstekatalogen (tk) måste vara startad och konfigurerad i enlighet med ovanstående konfiguration (vp- config.properties) För att förenkla uppstart och nedstängning av virtualiseringsplattformen medkommer script för dessa aktioner. Dessa finns tillgängligs i ${DIST}/bin. Kopiera dessa till ${VP_HOME}/bin. $ mkdir ${VP_HOME}/bin $ cp ${DIST}/bin/.sh ${VP_HOME}/bin Viss modifikation till dessa script kan vara nödvändig att göra. Det som behöver göras är att ange sökvägen till Mule ESB och ActiveMQ. Modifiera start.sh och stop.sh enligt följande: start.sh #!/bin/bash d=`dirname $0`/.. export VP_HOME=`pwd $d` export MULE_HOME=${VP_HOME}/mule-standalone-2.2.8 echo -n "Starting ActiveMQ 5.4.3..." cd ${VP_HOME}/apache-activemq-5.4.3/bin./activemq start &>/dev/null if [ $? == 0 ]; then echo done. fi echo -n "Starting Mule 2.2.8..." cd ${MULE_HOME}/bin if [ $? == 0 ]; then echo done. fi exit 0
stop.sh #!/bin/bash d=`dirname $0`/.. export VP_HOME=`pwd $d` export MULE_HOME=${VP_HOME}/mule-standalone-2.2.8 echo -n "Stopping Mule 2.2.8..." cd ${MULE_HOME}/bin./mule stop -config vp-config.xml 2>&1 >/dev/null if [ $? == 0 ]; then echo done. fi echo -n "Stopping ActiveMQ 5.4.3..." cd ${VP_HOME}/apache-activemq-5.4.3/bin./activemq stop &>/dev/null if [ $? == 0 ]; then echo done. fi exit 0 När scripten är uppdaterade med rätt sökvägar är det dags att starta upp Mule ESB med VP installerad. Det här görs genom att använda de nyss modifierade start- scriptet start.sh. sh start.sh && tail f ${MULE_HOME}/logs/vp.log Mule ESB kommer nu starta upp och när den är klar ska man ha följande output i loggen: Mule ESB and Integration Platform Version: 2.2.8 Build: 22648 MuleSoft, Inc. For more information go to http://www.mulesoft.org Server started: 10/14/11 12:15 PM Server ID: vp JDK: 1.6.0_26 (mixed mode) OS encoding: MacRoman, Mule encoding: UTF-8 OS: Mac OS X (10.7.1, x86_64) Host: Marcus-Krantzs-MacBook-Pro.local (192.168.0.109)
Agents Running: JMX Agent För att verifiera att VP är igång kan man testa att skriva in följande url i sin webläsare. # See also PINGSERVICE_PORT property in $VP_HOME/vp/config/vp- config.properties http://localhost:20000/monitor/ping Varav en sida skall visas med texten: Virtualiseringsplattformen är uppe! Denna verifiering visar nu att virtualiseringsplattform är installerad och startad.