UppdateraHSACache - Installationsanvisningar

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

grapeConfig.xml
<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:

application.properties
# 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:

logback.xml
<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>



environment file
export LANG=sv_SE.utf8
export LC_ALL=sv_SE.utf8

JAVA_HOME=/local/java/1.8.0
export JAVA_HOME