はじめに
IAMに関するOSSであるKeycloakですが、同ツールをインストールするためにはJDK環境が必要です。
本記事ではJDKのインストールからKeycloakの起動を行うまでの流れを記事にしました。尚、インターネットから隔離された環境を考慮してyum等のツールは利用していません。
環境情報
- fedora
- keycloak-21.1.2
Javaのインストール
OpenJDKの公式サイトからLinux用のモジュール(openjdk-xx_linux-x64_bin.tar.gz)を入手した上で展開します。
# ls openjdk-20_linux-x64_bin.tar.gz # which java /usr/bin/which: no java in (/root/.local/bin:/root/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin) # tar xzvf openjdk-20_linux-x64_bin.tar.gz jdk-20/bin/jar jdk-20/bin/jarsigner ... # ls jdk-20 openjdk-20_linux-x64_bin.tar.gz
展開したディレクトリは管理しやすい場所に移した上でパスを通します。
# mv jdk-20/ /opt/ # ls /opt/ aws jdk-20 # alternatives --install /usr/bin/java java /opt/jdk-20/bin/java 1 # which java /usr/bin/java # alternatives --install /usr/bin/jar jar /opt/jdk-20/bin/jar 1 # alternatives --install /usr/bin/javac javac /opt/jdk-20/bin/javac 1
正常にパスが通っていることが確認できます。
# java -version openjdk version "20" ... OpenJDK Runtime Environment (build 20+36-2344) OpenJDK 64-Bit Server VM (build 20+36-2344, mixed mode, sharing)
Keycloakのインストール
Keycloakのモジュール(keycloak-XX.X.X.tar.gz)を公式サイトから入手した上で、同じように展開します。
# tar xzvf keycloak-21.1.2.tar.gz keycloak-21.1.2/version.txt keycloak-21.1.2/conf/cache-ispn.xml keycloak-21.1.2/README.md ...
# cd keycloak-21.1.2/ # ls LICENSE.txt README.md bin conf lib providers themes version.txt # ls bin/ client kc.bat kc.sh kcadm.bat kcadm.sh kcreg.bat kcreg.sh
起動用のシェルが存在するので開発用モードで起動すると以下のような標準出力の後に起動します。
# ./bin/kc.sh start-dev Updating the configuration and installing your custom providers, if any. Please wait. INFO [io.quarkus.deployment.QuarkusAugmentor] (main) Quarkus augmentation completed in 14764ms INFO [org.keycloak.quarkus.runtime.hostname.DefaultHostnameProvider] (main) Hostname settings: Base URL: <unset>, Hostname: <request>, Strict HTTPS: false, Path: <request>, Strict BackChannel: false, Admin URL: <unset>, Admin: <request>, Port: -1, Proxied: false ... INFO [io.quarkus] (main) Keycloak 21.1.2 on JVM (powered by Quarkus 2.13.8.Final) started in 22.560s. Listening on: http://0.0.0.0:8080 ...
確かに別シェルからプロセスを表示すると起動状態が確認できました。
# ps aux | grep keycloak root ... pts/0 Sl+ 02:59 0:22 /opt/jdk-20/bin/java -Dkc.config.built=true -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.err.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED -Dkc.home.dir=/root/keycloak-21.1.2/bin/.. -Djboss.server.config.dir=/root/keycloak-21.1.2/bin/../conf -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Dquarkus-log-max-startup-records=10000 -cp /root/keycloak-21.1.2/bin/../lib/quarkus-run.jar io.quarkus.bootstrap.runner.QuarkusEntryPoint --profile=dev start-dev
停止はCtrl+Cで行えました。
^C .. INFO [io.quarkus] (main) Keycloak stopped in 0.205s
終わりに
KeycloakをLinux機に入れる流れについて記載しました。他の記事ではyumを利用しているケースが多かったため、資材の配置から行いましたが特に問題なく起動まで行えました。
以上、ご参考になれば幸いです。