Установка Keycloak и PostgeSQL в Linux (Centos, Rocky, Debian)

Thank you for reading this post, don't forget to subscribe!

 

Оригинал статьи:

Уста­нов­ка Keycloak и PostgeSQL в Linux (Centos, Rocky, Debian)

Keycloak — про­дукт с откры­тым кодом для реа­ли­за­ции single sign-on с воз­мож­но­стью управ­ле­ния досту­пом, наце­лен на совре­мен­ные при­ме­не­ния и сер­ви­сы. По состо­я­нию на 2018 год, этот про­ект сооб­ще­ства JBoss нахо­дит­ся под управ­ле­ни­ем Red Hat кото­рые исполь­зу­ют его как upstream про­ект для сво­е­го про­дук­та RH-SSO

Подготовка к установке Keycloak

Добав­ля­ем поль­зо­ва­те­ля и группу

$ sudo groupadd -r keycloak
$ sudo useradd -m -d /var/lib/keycloak -s /sbin/nologin -r -g keycloak keycloak

Созда­ем ката­лог, ска­чи­ва­ем дистрибутив

$ sudo mkdir -p /opt/keycloak
$ sudo wget https://github.com/keycloak/keycloak/releases/download/19.0.1/keycloak-19.0.1.zip -P /opt/keycloak

Рас­па­ко­вы­ва­ем, назна­ча­ем права

$ sudo unzip /opt/keycloak/keycloak-19.0.1.zip -d /opt/keycloak
$ cd /opt
$ sudo chown -R keycloak. keycloak
$ sudo chmod o+x /opt/keycloak/keycloak-19.0.1/bin/

Установка OpenJDK

Уста­нав­ли­ва­ем OpenJDK в RHEL-like дистрибутивах

$ sudo dnf -y install java-11-openjdk
Уста­нов­ка OpenJDK в Debian-like дистрибутивах

$ sudo apt -y install openjdk-11-jdk
Проверяем

$ java -version

Установка PostgreSQL 14 в RHEL-like (Centos 8-9, Rocky 8-9, AlmaLinux 8-9)

Отклю­ча­ем модуль PostgreSQL

$ sudo dnf -qy module disable postgresql
Добав­ля­ем репо­зи­то­рий PostgreSQL для RHEL-like 9

$ sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Либо добав­ля­ем репо­зи­то­рий PostgreSQL для RHEL-like 8

$ sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Уста­нав­ли­ва­ем PostgreSQL 14

$ sudo dnf -y install postgresql14-server postgresql14
Ини­ци­а­ли­зи­ру­ем базу PostgreSQL

$ sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Добав­ля­ем сер­вис в авто­за­груз­ку и запускаем

$ sudo systemctl enable postgresql-14
$ sudo systemctl start postgresql-14
Проверяем

$ systemctl status postgresql-14

Установка PostgreSQL в Debian

Добав­ля­ем репозиторий

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Уста­нав­ли­ва­ем ути­ли­ту gnupg2 и добав­ля­ем ключ репозитория

$ sudo apt -y install gnupg2
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Уста­нав­ли­ва­ем PostgreSQL 14

$ sudo apt update
$ sudo apt -y install postgresql-14

Настройка PostgreSQL

Созда­ем поль­зо­ва­те­ля и базу для Keycloak

SSL

Берем гото­вый ssl-сер­ти­фи­кат для ваше­го доме­на, либо гене­рим самоподписанный

$ sudo openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout /opt/keycloak/keycloak-19.0.1/conf/server.key.pem -out /opt/keycloak/keycloak-19.0.1/conf/server.crt.pem
Назна­ча­ем права

$ sudo chown keycloak. /opt/keycloak/keycloak-19.0.1/conf/server*

Настраиваем Keyсolak

Редак­ти­ру­ем кон­фи­гу­ра­ци­он­ный файл keycloak.conf

Настройка Firewall для RHEL-like

Откры­ва­ем порт 8443

$ sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp
$ sudo firewall-cmd --reload
В Debian по-умол­ча­нию Firewall UFW не установлен.

Запускаем Keycloak

Пере­хо­дим в каталог

Запус­ка­ем keycloak в режи­ме developer mode

Зада­ем логин / пароль админа

Созда­ем кон­фиг для прода

Пер­вый запуск и импорт логин-пароль адми­на в базу

После успеш­но­го запус­ка оста­нав­ли­ва­ем про­цесс (Ctrl+C)

Запус­ка­ем Keycloak

Создаем Systemd Unit

Созда­ем файл keycloak.service

Запус­ка­ем сер­вис, смот­рим ста­тус, добав­ля­ем в автозагрузку

$ sudo systemctl daemon-reload
$ sudo systemctl start keycloak
$ sudo systemctl status keycloak
$ sudo systemctl enable keycloak