Обновление WildFly до последней версии

Встала необходимость обновить сервера приложений WildFly 10 до последней, на текущий момент, версии WildFly 15.0.1. Сделать это оказалось довольно просто.

Скачиваем нужную нам версию на сайте wildfly.org и разворачиваете ее.

cd /opt
wget https://download.jboss.org/wildfly/15.0.1.Final/wildfly-15.0.1.Final.tar.gz
tar -xzf wildfly-15.0.1.Final.tar.gz

Для миграции данных из старой версии в новую нам потребуется wildfly-server-migration

wget https://github.com/wildfly/wildfly-server-migration/releases/download/1.4.0.Final/jboss-server-migration-1.4.0.Final.zip
unzip jboss-server-migration-1.4.0.Final.zip

Все готово, пора начинать переносить данные

jboss-server-migration/jboss-server-migration.sh -s /opt/wildfly-10.1.0.Final -t /opt/wildfly-15.0.1.Final

Скрипт задаст вам несколько вопросов и перенесет все настройки и ваши приложения.

P.S.
Если вы хотите перенести ваши приложения, то на третий вопрос:

This tool is not able to assert if persistent deployments found are compatible with the target server, skip persistent deployments migration?

Нужно ответить no.

Nginx — динамическое управление upstream

Если вы хотите динамически управлять upstream в nginx через API без перезагрузки и релоада, то вам поможет этот модуль.

Пример конфигурации upstream в nginx

upstream backends {
    zone zone_for_backends 1m;
    server 127.0.0.1:6001;
    server 127.0.0.1:6002;
    server 127.0.0.1:6003;
}

Пример настройка для доступа к API

server {
    listen 6000;
    location /dynamic {
	allow 127.0.0.1;
	deny all;
        dynamic_upstream;
    }
}

Пример вызова:

$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends"

Ответ:

server 127.0.0.1:6001;
server 127.0.0.1:6002;
server 127.0.0.1:6003;

С помощью API вы сможете посмотреть список серверов в upstream, добавить, удалить, выключить, включить и изменить параметры сервера.
Более подробно можно посмотреть на странице проекта ngx_dynamic_upstream.

Что делать с ошибкой NO_PUBKEY

При добавлении репозитория вручную и обновления списка пакетом, можно натолкнуться на такую ошибку:

The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY

Чтобы решить эту проблему, нам нужно добавить ключ шифрования:
Добавляем этот ключ с сервера ключей

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 

Если ключ не найден, пробуем найти его на другом сервере

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  
sudo gpg -a --export  | sudo apt-key add -
sudo apt-get update

Sed replace

Найти слово first и заменить на second в файле file.txt

sed -i -e 's/first/second/g' file.txt

Найти первое вхождение слова first и заменить его …

sed -i -e '0,/first/ s/first/second/' file.txt

Найти первое вхождение слова first и вставить над ним строчку second …

sed -i -E '0,/first/ s/^(.*first)/second\n\1/' file.txt