Installationspaket:
Installationpaket består av
- hsa-cache-x.x.x.war
- uppdateraHSACache.groovy
Ställa in skriptet på server
Det är lämpligt att skapa mappen hsaUppdatering för skriptet. Servern måste ha Groovy installerat.
Skriptet
Exempel på lämplig mappstruktur
conf - mappen för config filen(application.properties och logback.xml), keystore/truststore(application.properties: keystore.path och truststore.path) och environment file
files - mappen för hsa filar(application.properties: hsa.files.dir) och hsa symlink(application.properties: hsa.symlink.file)
scripts - mappen för UppdateraHSACache.groovy script
log - plats för loggar (man kan ställa in den i logback.xml)
.groovy - mappen för grapeConfig.xml och grapes dependencies
Grapes/maven
Groovy scriptet använder Grab som dependency manager. För att Grapes ska kunna hitta dependencies (hsa-cache-x.x.x.war) behövs filen .groovy/grapeConfig.xml
Kodblock | ||
---|---|---|
| ||
<ivysettings>
<settings defaultResolver="downloadGrapes"/>
<resolvers>
<chain name="downloadGrapes" returnFirst="true">
<filesystem name="cachedGrapes">
<ivy pattern="${user.home}/hsaUppdatering/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml"/>
<artifact pattern="${user.home}/hsaUppdatering/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision](-[classifier]).[ext]"/>
</filesystem>
<ibiblio name="localm2" root="file:${user.home}/hsaUppdatering/.m2/repository" checkmodified="true" changingPattern=".*" changingMatcher="regexp" m2compatible="true"/>
<!-- todo add 'endorsed groovy extensions' resolver here -->
<ibiblio name="jcenter" root="https://jcenter.bintray.com/" m2compatible="true"/>
<ibiblio name="ibiblio" m2compatible="true"/>
</chain>
</resolvers>
</ivysettings> |
Grapes försöker hitta dependencies i .m2/repository och https://jcenter.bintray.com/ och spara dem i .groovy/grapes/
Konfigurationsfiler:
Det finns två config filer för scriptet:
Kodblock | ||
---|---|---|
| ||
# den symlink måste bli i property HSA_FILES i config file för alla VP i den miljö
hsa.symlink.file=link/till/hsacache.xml
# map med alla hsa filen
hsa.files.dir=link/till/hsa-files/dir
#hsa server
hsa.file.url=https://hsa.server.se/get/file
hsa.file.name=hsaunits.zip
#cert for hsa server
keystore.path=link/till/keystore.jks
keystore.password=keystorePass
truststore.path=link/till/truststore.jks
truststore.password=truststorePass
#alert mail
send.mail=true
mail.smtp.host=smtp.server.se
mail.smtp.port=465
mail.smtp.login=support@server.se
mail.smtp.password=password
to.mail=mail@support.se
alert.mail.subject=Problem med uppdatering av HSA cache
alert.mail.text=Ett fel inträffade under körning av hsa uppdateringsskript \n %s
# om skillnad mellan 2 hsa filer är mer an den antal => avbryter skript, skickar mail till support
allowable.diff.hsa.file=70973
# alla VP urlar för den miljö
reset.HSA.cache.url=http://vp.server.se:PORT/resethsacache
reset.HSA.cache.url.1=http://vp2.server.se:PORT/resethsacache
reset.HSA.cache.url.2=http://vp3.server.se:PORT/resethsacache
|
Riktiga symlink-filen (hsa.symlink.file) kan saknas(om skriptet körs för första gången). Då kan skriptet ska skapa den själv.
Man måste också ställa in VP att läsa in rätt fil:
Ändra HSA_FILES property i file vp-config-override.properties. Den propertien ska peka på samma fil som property hsa.symlink.file=link/till/hsacache.xml i application.properties
Config fil för loggning. Man kan ställa in log fil och sökväg:
Kodblock | ||
---|---|---|
| ||
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>nyHSAFileNedladdning.log</file>
<append>true</append>
<encoder>
<pattern>%d{YYYY/MM/dd HH:mm:ss.SSS} %-5level - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>nyHSAFileNedladdning.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>30</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{YYYY/MM/dd HH:mm:ss.SSS} %-5level - %msg%n</pattern>
</encoder>
</appender>
<logger name="scriptLogger" level="info">
<appender-ref ref="FILE"/>
</logger>
<root level="debug">
<appender-ref ref="STDOUT"/>
</root>
</configuration> |
Kodblock | ||
---|---|---|
| ||
export LANG=sv_SE.utf8
export LC_ALL=sv_SE.utf8
JAVA_HOME=/local/java/1.8.0
export JAVA_HOME |