Boot-service

Создание сервиса для запуска Keycloak

Оригинал документации

Для запуска сервера Keycloak на сервере Linux существует возможность создать службу.

Скрипты для описания службы находятся в директории сервера KEYCLOAK_HOME/docs/contrib/scripts.

$ ls /opt/keycloak/docs/contrib/scripts
total 16
drwxr-xr-x 2 wildfly wildfly 4096 May  3 06:10 systemd
drwxr-xr-x 3 wildfly wildfly 4096 May  3 06:10 service
-rw-r--r-- 1 wildfly wildfly 1446 May  3 06:10 README.md
drwxr-xr-x 2 wildfly wildfly 4096 May  3 06:10 init.d

Воспользуемся вариантом init.d.

$ ls -lrt /opt/keycloak/docs/contrib/scripts/init.d
total 20
-rwxr-xr-x 1 wildfly wildfly 4681 May  3 06:10 wildfly-init-redhat.sh
-rwxr-xr-x 1 wildfly wildfly 7122 May  3 06:10 wildfly-init-debian.sh
-rw-r--r-- 1 wildfly wildfly  854 May  3 06:10 wildfly.conf

В данном случае имеем скрипт с переменными окружения которые используются при запуске сервера. Для этого копируем конфигурацию wildfly.conf на ее место.

$ sudo cp /opt/keycloak/docs/contrib/scripts/init.d/wildfly.conf /etc/default/keycloak
$ sudo vim /etc/default/keycloak

Далее нужно раскомментировать и указать значения для параметов.

# General configuration for the init.d scripts,
# not necessarily for JBoss AS itself.
# default location: /etc/default/keycloak

## Location of JDK
# JAVA_HOME="/usr/lib/jvm/java-8-oracle"

## Location of WildFly
JBOSS_HOME="/opt/keycloak"

## The username who should own the process.
JBOSS_USER=keycloak

## The mode WildFly should start, standalone or domain
JBOSS_MODE=standalone

## Configuration for standalone mode
JBOSS_CONFIG=standalone.xml

## Configuration for domain mode
# JBOSS_DOMAIN_CONFIG=domain.xml
# JBOSS_HOST_CONFIG=host-master.xml

## The amount of time to wait for startup
STARTUP_WAIT=60

## The amount of time to wait for shutdown
SHUTDOWN_WAIT=60

## Location to keep the console log
JBOSS_CONSOLE_LOG="/var/log/keycloak/console.log"

## Additionals args to include in startup
# JBOSS_OPTS="--admin-only -b 127.0.0.1"

После этого копируем скрипт описания службы запуска сервера. В случае сервера Ubuntu можно взять скрипт wildfly-init-debian.sh

$ sudo cp /opt/keycloak/docs/contrib/scripts/init.d/wildfly-init-debian.sh /etc/init.d/keycloak

Для дистрибутивов CentOS можно взять скрипт wildfly-init-redhat.sh Даем пользователю от которого будет запускать сервер Keycloak права на директории.

$ sudo chown -R wildfly:wildfly /var/log/keycloak/
$ sudo chown -R wildfly:wildfly /opt/keycloak-3.1.0.Final/

После этого можно использовать команды.

$ sudo service keycloak start
$ sudo service keycloak stop