Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Вместо <IAM_TOKEN> подставляем свой токен вида 

t1.9euelZqSkZmXkszJlsuSy8eWy5ORk-3rnpWaj4uJmc6WnsiLyImVm82Yl8fl8_dEA2hx-e8lWDdX_t3z9wQyZXH57yVYN1f-zef1656VmoydmJTJkIubx8idm5zJmc-O7_0.hw-uRRvhkdkC7gG-scE-fyWbBl2fLQMvOCQZlb-Har-M2Y_OCISA52AA_MqQbVnB4K1Z94cP4ZPncOrZGo8QBQtgoih3j4tug390gj34ghj390o85ytug30pough5jio3eg5034u9ty053p4wujgh45ophjg0459oyuhgj45hg04589ugjeoipwjgk590gjw4959u999t99jw4ejg5904wguj

Предупреждение

Команду вполне возможно придется вводить с sudo, особенно, если run.sh запускает тоже с sudo. Иначе run.sh покажет ошибку авторизации, как будто не видит факта успешного логина.

...

View file
nameinstall-docker-ubuntu.sh
View file
nameremove_visiology.sh
View file
namemongorestore.sh

install-docker-ubuntu.sh | Установка последней версии Docker и Docker-Compose на Ubuntu. После выполнения установки нужно перезайти в терминал.
remove_visiology.sh | Удаление Visiology (сервисы, подсети, тома, образы). Подходит только, если на Docker работает исключительно платформа, т. к. может удалить ваши дополнительные Docker ресурсы.
mongorestore.sh | Быстрое восстановление БД на основе имеющегося дампа. ВАЖНО: В переменной BKP_PATH задаём название директории с выбранным бэкапом из папки /var/lib/docker/volumes...

4. Долгий запуск докер сервисов в закрытом контуре

...

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

  1. Если мы явно заблокируем DNS сервера, например на прокси, то запуск будет быстрый. Связано это с тем, что пакеты моментально отклоняются правилами и никакого ожидания не происходит.

  2. В ином случае много зависит от инфраструктуры, через что запросы на DNS проходят (фаерволлы, маршрутизаторы). Здесь уже большая вероятность в необходимости ожидания таймаута. В разных средах запуск одного сервера может занимать от секунды до десятка секунд и выше. Если умножить на кол-во Docker сервисов, то такие такое время перезапуска платформы может быть не приемлемо.

  3. По всей видимости при создании сервисов Docker обращается по своим делам в реестр. В случае с платформой на момент написания этой заметки используется Яндекс регистр образов с адресом cr.yandex.


Выбор решения зависит от предпочтений администратора сервера. Универсальных быстрых решения два:

  1. Прописать в /etc/hosts сервера с платформой следующую строчку:

    Блок кода
    languagebash
    127.0.0.1 cr.yandex

  2. Добавить параметр к разворачиванию стека --resolve-image never в run.sh. Кусочек скрипта с добавленным флагом ниже:

    Блок кода
    eval ${ENVIRONMENT_VARIABLES} docker stack deploy --resolve-image never ${composeFilesString} ${STACK_NAME}
Примечание

Если для сервера в будущем откроется выход в Интернет (хотя бы к cr.yandex) в том числе для выкачивания Docker образов напрямую из Яндекс регистра, эту запись в hosts естественно нужно убрать.

...

Далее перезапускаем платформу и проверяем.

9.

...

Блок кода
BKP_PATH='v2.26.3177-2022-06-09 08-12-28'
rm -r /docker-volume/mongodb/*
docker service update visiology_mongodb
ID=$(docker ps | grep visiology.admin | awk '{print $1}')
MONGO_USER=$(docker exec -t $ID sh -c "cat secrets/MONGO_AUTH_USER")
MONGO_PAS=$(docker exec -t $ID sh -c "cat secrets/MONGO_AUTH_PASSWORD")
mkdir /docker-volume/mongodb/dump
cp -r "/var/lib/docker/volumes/visiology_database-backups/_data/$BKP_PATH/VisiologyVA" /docker-volume/mongodb/dump
docker exec -t $(docker ps --format "{{.ID}} {{.Names}}" | grep mongodb | awk '{print $1}') sh -c "mongo VisiologyVA -u $MONGO_USER -p "$MONGO_PAS" --eval "printjson(db.dropDatabase())" && mongorestore -u $MONGO_USER -p "$MONGO_PAS" --db VisiologyVA data/db/dump/"

...

Оффлайн карта для Leaflet

...

По умолчанию leaflet работает с онлайн ресурсами, по умолчанию используется такой адрес: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
Но как быть если на сервере отсутствует выход в интернет? Для этого необходимо скачать карту, точнее её участок себе на внутренний ресурс либо в папку customjs.

Для этого нам понадобится следующее ПО - http://wiki.openstreetmap.org/index.php/JTileDownloader
Переходим по ссылке и скачиваем последнюю версию. Распаковываем и запускаем, тут надо учесть один нюанс, программа написана на Java и требует установленной явы машины.
После запуска нас интересует несколько полей:

Paste URL - тут вводим ссылку нужного участка, ссылку можно взять с https://www.openstreetmap.org/ единственное, её придётся подредактировать.
Нам нужна ссылка такого вида - https://www.openstreetmap.org/?lat=54.127&amp;lon=42.330&amp;zoom=7&amp
А опенстритмап отдаёт такой вариант - https://www.openstreetmap.org/#map=7/54.127/42.330
Поэтому просто копируем, приводим к нужному виду и вставляем в поле.

Radius (km) - радиус скачивания тайлов (участков карты).

Output zoom level - уровень зума.

Output zoom levels - дополнительные уровни зума.

Outputfolder - каталог в который будут загруженны тайлы.

...

После настройки нажимаем на Download Tiles и ждём, если участок карты достаточно большой, скачивание займёт приличное время.

После скачивания мы получим структуру папок: уровень_зума/x/y.png

Данную структуру следует залить на ваш внутренний ресурс или в папку customjs на сервере. Далее в коде меняем url карты, если это customjs то урл будет примерно такой:
https://example.visiology.su/viewer/custom/tiles/{z}/{x}/{y}.png

Готово! Теперь карта будет загружаться с вашего ресурса.

10. Запуск Dashboard Designer без прав администратора

...

  1. Скачиваем DD: address_of_platform/admin/api/downloadDesigner.

  2. Распаковываем, создаём ярлык exe файла.

  3. Добавляем в target ярлыка(через пробел) “http(s)://address_of_platform/admin”.

  4. Запускаем.

Информация

Таким образом можно запускать Дизайнер без установки лаунчера в Program Files и без доступа на запись в ProgramData. Но нужно не забывать соблюдать версионность: после обновления платформы нужно все шаги повторить, чтобы версии Дизайнера и платформы совпадали. В обычной установке за этим следит лаунчер, здесь нужно самостоятельно.