Действия при изменении IP-адреса Space Disp или БД
Изменение IP-адреса БД
Порядок действий
При изменении IP-адреса БД необходимо выполнить следующие действия:
- 
Перейти в терминал узла с ролью Leader и сохранить текущие настройки в файл old_secretsс помощью команды:sudo docker exec -it ID cat /run/secrets/LOC_SET > old_secretsпараметр ID- это ID контейнера, который можно получить в выводе командыdocker ps.
- 
Открыть файл old_secretsна редактирование.
- 
Найти строку DB_HOSTи изменить зашифрованное значение на новый IP-адрес подключения:DB_HOST = '10.251.32.3'Примечание IP-адрес 10.251.32.3 представлен в качестве примера. 
- 
Удалить stackс помощью команды:docker stack rm multivdi
- 
Удалить старый secretс помощью команды:docker secret rm LOC_SET
- 
Создать новый secretс измененным содержимым с помощью команды:docker secret create LOC_SET old_secrets
- 
Пересоздать stackдля применения новых переменных окружения с помощью команды:sudo docker stack deploy --resolve-image never -c /opt/multivdi/multivdi-stack.yml multivdi
Внимание
Если изменился также и IP-адрес Space Disp, необходимо пересоздать кластер с помощью команды:
docker swarm init --force-new-cluster
Для проверки изменения IP-адреса БД необходимо выполнить команды:
docker exec -it ID "cat /run/secrets/LOC_SET"
Пример
docker exec -it e3072f35e77d "cat /run/secrets/LOC_SET"
Возможные ошибки
Ошибка: Невозможно извлечь secret.  
Решение:
Записать secret с настройками в контейнер Redis, который не пересоздается каждые N-секунд. Для этого:  
- 
Открыть файл multivdi-stack.yml:sudo vim /opt/multivdi/multivdi-stack.yml
- 
Добавить в сервис vdi-redisв полеsecretsеще одно значение:LOC_SET.
- 
Пересоздать stack:stack rmstack deploy
- 
Выполнить команду: redis docker exec -it ID cat /run/secrets/LOC_SET > old_secretsВ параметре IDнеобходимо указать ID контейнера.Примечание При записи новых secretsдобавленныйsecretнеобходимо убрать из Redis.
Изменение IP-адреса Leader или Manager
При изменении IP-адреса узла с ролью Leader необходимо пересоздать docker-кластер. Для этого следует выполнить следующие команды на узле, который будет занимать роль Leader.
- 
Выйти из текущего кластера: docker swarm leave
- 
Создать новый кластер: docker swarm init --force-new-cluster
- 
Вывести и сохранить токен для подключения узлов с ролью Manager: sudo docker swarm join-token manager -qjoin-token- токен для подключения новых узлов с ролью Manager, полученный на Leader.
После выполнения вышеописанных действий необходимо поочередно на каждом из оставшихся узлов (кроме БД) выполнить следующие команды:
- 
Выйти из текущего кластера: docker swarm leave
- 
Присоединиться к новому кластеру: docker swarm join-token leader-ipjoin-token- токен для подключения новых узлов с ролью Manager, полученный на Leader.leader-ip- IP-адрес узла с ролью Leader.
Для просмотра списка узлов в кластере необходимо на любом из узлов выполнить команду:
sudo docker node ls