При работе со старыми IPMI-консолями серверов, периодически возникает проблема с невозможностью запуска старых версий джава-апплетов на последней версии openjdk. Самый простой путь решения проблемы — установить дополнительно старую версию java.
1. Установим Java
# основное ставим из официальных репозиториев
apt install -y icedtea-8-plugin icedtea-netx icedtea-plugin openjdk-8-jdk
# старенькую джаву скачиваем по ссылке:
# http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
# (требуется регистрация)
# И распаковываем архив
tar xvzf jdk-7u80-linux-x64.tar.gz
# переносим к остальным джава-машинам
mv jdk1.7.0_80 /usr/lib/jvm/
# и добавляем старую версию java в альтернативы
update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.7.0_80/bin/javaws 1
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_80/bin/java 1
2. Немного автоматизируем
Чтобы постоянно не менять версии джава вручную через команду: sudo update-alternatives —config javaws можем сделать пару скриптов:
cat set_java7.sh
#!/usr/bin/env bash
sudo update-alternatives --set java /usr/lib/jvm/jdk1.7.0_80/bin/java
sudo update-alternatives --set javaws /usr/lib/jvm/jdk1.7.0_80/bin/javaws
cat set_java_latest.sh
#!/usr/bin/env bash
sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
sudo update-alternatives --set javaws /usr/lib/icedtea-web/bin/javaws
chmod +x set_java_latest.sh
chmod +x set_java7.sh
Чтобы при смене версии джавы не вводить пароль администратора можно через команду visudo или просто в /etc/sudoers добавить строку:
YOUR_USERNAME ALL = NOPASSWD: /usr/bin/update-alternatives
Теперь при запуску скриптов система не будет просить пароль
3. Добавляем в исключения алерты по безопасности для 7й джавы
При открытии ipmi-консоли через http-соединение нередко 7я джава ругается на не секьюрное соединение и выдает ошибку типа: «Your security settings have blocked an application signed with an expired or not-yet-valid cert». Для быстрого добавления в исключения таких алертов можем добавить функцию в конец .bashrc
#Java security
function _jsec() {
echo "http://$1" >> ~/.java/deployment/security/exception.sites
echo "https://$1" >> ~/.java/deployment/security/exception.sites
echo "host $1 added"
}
# перезапускаем сеанс BASH
source .bashrc
# и добавляем в исключения нужный сервер
_jsec 10.10.10.10
В случаях когда джава ругается на самоподписанные сертификаты можно изменить параметры безопасности на настройках аплета, для этого в консоли выполните команду:
javaws -viewer