Фон
Я пытаюсь настроить кластеризацию между несколькими узлами эликсира. Насколько я понимаю, я могу настроить это, изменив релиз vm.args. Я использую Distillery для сборки релизов и следую документации здесь: https://hexdocs.pm/distillery/config/vm.args.html.
Мой rel/vm.args
файл выглядит следующим образом:
-name <%= release_name %>@${HOSTNAME}
-setcookie <%= release.profile.cookie %>
-smp auto
-kernel inet_dist_listen_min 9100 inet_dist_listen_max 9155
-kernel sync_nodes_mandatory '[${SYNC_NODES_MANDATORY}]'
У меня есть сервер сборки под управлением Ubuntu 18.04 и два веб-сервера под управлением Ubuntu 18.04. Я собираю релиз на сервере сборки, копирую архив на веб-серверы и разархивирую его и запускаю там.
Задача
Когда я собираю свой выпуск и пытаюсь запустить его на веб-сервере, я получаю следующую ошибку при запуске:
Failed setting -name! The hostname in 'myapp@' is not fully qualified
В документации, указанной выше, говорится:
Части $ {HOSTNAME} и $ {NODE_COOKIE} будут динамически заменяться только во время выполнения, если вы экспортируете REPLACE_OS_VARS = true в системную среду перед началом выпуска, поэтому убедитесь, что вы делаете это, если хотите использовать этот подход .
Исходя из этого, я добавил REPLACE_OS_VARS=true
в среду веб-сервера, но, похоже, это никак не отразилось. Я также добавил его в среду на сервере сборки из отчаяния, но получил те же результаты.
Есть ли что-то еще, что нужно сделать, кроме установки этой переменной среды, чтобы заставить работать динамический vm.args, или я просто что-то здесь упускаю?