Update to 2022-04-29 11:00

This commit is contained in:
Daniel Berteaud
2022-04-29 11:00:10 +02:00
parent ed77591a35
commit 17cd763bf4
30 changed files with 619 additions and 6 deletions

View File

@@ -0,0 +1,9 @@
JAR_NAME="squash-tm.war"
HTTP_PORT={{ squashtm_port }}
TMP_DIR={{ squashtm_root_dir }}/tmp
BUNDLES_DIR={{ squashtm_root_dir }}/app/bundles
CONF_DIR={{ squashtm_root_dir }}/etc
LOG_DIR={{ squashtm_root_dir }}/logs
TOMCAT_HOME={{ squashtm_root_dir }}/data/tomcat
PLUGINS_DIR={{ squashtm_root_dir }}/app/plugins
DB_TYPE={{ (squashtm_db_engine == 'postgres') | ternary('postgresql', 'mysql') }}

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${sys:PID} %5p [%t] [%X{requestInfo}] --- %c: %m%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
<Logger name="org.apache.catalina.startup.DigesterFactory" level="error" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.apache.catalina.util.LifecycleBase" level="error" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.apache.sshd.common.util.SecurityUtils" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.crsh.plugin" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.crsh.ssh" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.hibernate.validator.internal.util.Version" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.thymeleaf" level="warn" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.squashtest.csp.tm.testautomation" level="error" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.squashtest.tm.plugin.testautomation" level="error" additivity="false" >
<AppenderRef ref="Console"/>
</Logger>
</Loggers>
</Configuration>

View File

@@ -0,0 +1,6 @@
#!/bin/bash -e
chown -R root:root {{ squashtm_root_dir }}/app
find {{ squashtm_root_dir }}/app -type f -exec chmod 644 "{}" \;
find {{ squashtm_root_dir }}/app -type d -exec chmod 755 "{}" \;
restorecon -Rv {{ squashtm_root_dir }}

View File

@@ -0,0 +1,5 @@
#!/bin/sh
set -eo pipefail
rm -f {{ squashtm_root_dir }}/backup/*.sql.zst

View File

@@ -0,0 +1,30 @@
#!/bin/sh
set -eo pipefail
{% if squashtm_db_engine == 'postgres' %}
{% if squashtm_db_server not in ['localhost', '127.0.0.1'] %}
PGPASSWORD={{ squashtm_db_pass | quote }} \
/usr/pgsql-14/bin/pg_dump \
--clean \
--create \
--username={{ squashtm_db_user | quote }} \
--host={{ squashtm_db_server | quote }} \
--port={{ squashtm_db_port }} \
{{ squashtm_db_name }} | \
{% else %}
su - postgres -c "/usr/pgsql-14/bin/pg_dump --clear {{ squashtm_db_name }}" | \
{% endif %}
zstd -c > {{ squashtm_root_dir }}/backup/{{ squashtm_db_name }}.sql.zst
{% else %}
/usr/bin/mysqldump \
{% if squashtm_db_server not in ['localhost', '127.0.0.1'] %}
--user={{ squashtm_db_user | quote }} \
--password={{ squashtm_db_pass | quote }} \
--host={{ squashtm_db_server | quote }} \
--port={{ squashtm_db_port }} \
{% endif %}
--quick --single-transaction \
--add-drop-table {{ squashtm_db_name }} | \
zstd -c > {{ squashtm_root_dir }}/backup/{{ squashtm_db_name }}.sql.zst
{% endif %}

View File

@@ -0,0 +1,44 @@
[Unit]
Description=Squash TM
After=syslog.target network.target mariadb.service postgresql.service postgresql-11.service postgresql-12.service postgresql-13.service postgresql-14.service
[Service]
Type=simple
User={{ squashtm_user }}
Group={{ squashtm_user }}
WorkingDirectory={{ squashtm_root_dir }}/app
EnvironmentFile={{ squashtm_root_dir }}/etc/env
ExecStart=/usr/lib/jvm/{{ squashtm_jre11_version }}/bin/java \
-Xms128m -Xmx2048m -server \
-Duser.language=en \
-Djava.io.tmpdir=${TMP_DIR} \
-Dlogging.dir=${LOG_DIR} \
-jar ${BUNDLES_DIR}/${JAR_NAME} \
--spring.config.additional-location=${CONF_DIR}/ \
--spring.profiles.active=${DB_TYPE} \
--spring.config.name=application,squash.tm.cfg \
--logging.config=${CONF_DIR}/log4j2.xml
UMask=007
SuccessExitStatus=143
PrivateTmp=yes
NoNewPrivileges=true
MemoryLimit=3072M
SyslogIdentifier=squash-tm
Restart=on-failure
StartLimitInterval=0
RestartSec=30
PrivateDevices=true
ProtectControlGroups=true
ProtectHome=true
ProtectSystem=full
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectSystem=strict
RestrictRealtime=true
RestrictNamespaces=true
ReadWritePaths=/run {{ squashtm_root_dir }}/logs {{ squashtm_root_dir }}/data {{ squashtm_root_dir }}/tmp
LockPersonality=true
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,11 @@
spring.datasource.url=jdbc:{{ (squashtm_db_engine == 'postgres') | ternary('postgresql', 'mysql') }}://{{ squashtm_db_server }}:{{ squashtm_db_port }}/{{ squashtm_db_name }}
spring.datasource.username={{ squashtm_db_user }}
spring.datasource.password={{ squashtm_db_pass }}
server.servlet.session.timeout=3600
server.port={{ squashtm_port }}
server.tomcat.basedir={{ squashtm_root_dir }}/data/tomcat
squash.crypto.secret={{ squashtm_secret }}
squash.path.bundles-path={{ squashtm_root_dir }}/app/bundles
squash.path.plugins-path={{ squashtm_root_dir }}/plugins