Перейти к содержанию

Автоматизация скриптов установки и обновления

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

  1. setup.sh - скрипт установки на новую базу данных.
  2. upgrade.sh - скрипт обновления системы или её конфигурации на актуальную версию для существующей базы данных.
  3. export.sh - скрипт экспорта конфигурации из базы данных в файлы на диске.
  4. migrate.sh - скрипт миграции существующей базы данных в новую.

Для любого из этих скриптов:

  • вызов без аргументов инициирует диалог с пользователем для ввода основных настроек;
  • вызов с аргументом --help или -? отображает справку по аргументам с указанием значений по умолчанию;
  • вызов с любыми другими аргументами выполняет скрипт в неинтерактивном режиме, причём для всех неуказанных аргументов используются значения по умолчанию.

Tip

Используйте неинтерактивный режим скриптов для сценариев автоматизации.

Ниже приводится описание аргументов для различных скриптов. При этом используются обозначения:

  • некоторые аргументы имеют синонимы, которые можно использовать наравне с первой формой аргумента, они перечисляются через запятую: -short, --long;
  • аргументы с двоеточием имеют значение, задаваемое после двоеточия -a:value;
  • в колонке “Значение по умолчанию” выводится то значение аргумента или поведение скрипта, которое используется, когда скрипт запущен в неинтерактивном режиме, но этот аргумент не передан;
  • при указании логинов и паролей пользователя, они должны соответствовать карточке сотрудника со значением “Администратор” в поле “Уровень доступа”.

Скрипт установки setup.sh

Аргумент Описание Значение по умолчанию
-d, --default Запустить скрипт в неинтерактивном режиме, даже если ни один другой аргумент не указан
-v, --verbose Выводить результаты выполнения команд на консоль Команды запускаются в тихом (quiet) режиме
-a:, --address: Адрес веб-сервиса https://localhost
-u:, --user: Логин пользователя для подключения к веб-сервису admin
-p:, --password: Пароль пользователя для подключения к веб-сервису admin
-db:, --database: Имя базы данных Имя из строки подключения в app-db.json
-cdb, --create-database Создать базу данных перед установкой База данных должна существовать на момент запуска скрипта
-cs:, --connection-string: Имя строки подключения из app-db.json default
-t:, --timeout: Таймаут в секундах для проверок соединения к базе данных и к веб-сервису; 0 - неограниченный таймаут; -1 - таймаут по умолчанию из app.json 20
-f:, --files: Абсолютный путь к хранилищу файлов, доступ к которому требуется для веб-сервиса и Chronos $HOME/tessa/files
-o:, --offset: Смещение UTC в минуту для временной зоны по умолчанию 180
-fts: 0 - для сервера не устанавливаются компоненты, связанные с полнотекстовым поиском; 1 - полнотекстовый поиск устанавливается. 1
-na, --no-applications Не публиковать desktop-приложения Desktop-приложения публикуются
-nd, --no-deski Не публиковать приложение-ассистент web-клиента Deski Deski публикуется
-nk, --no-keys Не обновлять ключи CipherKey и SignatureKey в файлах app.json для веб-сервиса и Chronos Ключи обновляются
-wp:, --web-path: Путь к папке веб-сервиса, используемый для обновления ключей (абсолютный или относительный от папки tools) $HOME/tessa/web
-cp:, --chronos-path: Путь к папке Chronos, используемый для обновления ключей (абсолютный или относительный от папки tools) $HOME/tessa/chronos
-tp:, --tools-path: Путь к папке tools, содержащий утилиту tadmin (абсолютный или относительный от папки со скриптом) ./tools
--applications-path: Путь к папке с desktop-приложениями, которые будут опубликованы ../../Applications
-cfg:, --configuration-path: Путь к папке с конфигурацией, которая импортируется (абсолютный или относительный от папки tools) ../../Configuration
--deski-path: Путь к папке с приложением Deski, которое будет опубликовано (абсолютный или относительный от папки tools) ../../DeskiSetup
--fixes-path: Путь к папке с дополнительными скриптами и миграциями Fixes, используемыми при установке (абсолютный или относительный от папки tools) ../../Fixes

Пример

./setup.sh -a:https://tessa-server.com -db:tessa --create-database -fts:0 --offset:120 -f:/var/tessa/files -wp:/var/tessa/web -cp:/var/tessa/chronos

Скрипт выполняет установку на новую базу данных с аргументами:

  • https://tessa-server.com - адрес веб-сервиса (логин и пароль пользователя стандартные - admin);
  • tessa - имя базы данных, которое переопределяет имя, указанное в строке подключения default в файле app-db.json;
  • база данных создаётся скриптом, она должна отсутствовать перед вызовом скрипта (следовательно, пользователь СУБД, указанный в строке подключения, должен обладать разрешениями на создание базы данных);
  • полнотекстовый поиск не устанавливается;
  • смещение временной зоны по умолчанию устанавливается как UTC+02:00;
  • /var/tessa/files - путь до папки с файлами;
  • /var/tessa/web - путь до папки с веб-сервисом;
  • /var/tessa/chronos - путь до папки с Chronos;
  • все прочие аргументы получают значения по умолчанию.

Скрипт обновления upgrade.sh

По использованию скрипта обновления обратитесь к разделу Обновление на новую сборку платформы.

Аргумент Описание Значение по умолчанию
-d, --default Запустить скрипт в неинтерактивном режиме, даже если ни один другой аргумент не указан
-v, --verbose Выводить результаты выполнения команд на консоль Команды запускаются в тихом (quiet) режиме
-a:, --address: Адрес веб-сервиса https://localhost
-u:, --user: Логин пользователя для подключения к веб-сервису admin
-p:, --password: Пароль пользователя для подключения к веб-сервису admin
-db:, --database: Имя базы данных Имя из строки подключения в app-db.json
-cs:, --connection-string: Имя строки подключения из app-db.json default
-t:, --timeout: Таймаут в секундах для проверок соединения к базе данных и к веб-сервису; 0 - неограниченный таймаут; -1 - таймаут по умолчанию из app.json 20
-na, --no-applications Не публиковать desktop-приложения Desktop-приложения публикуются
-nd, --no-deski Не публиковать приложение-ассистент web-клиента Deski Deski публикуется
-nk, --no-keys Не обновлять ключи CipherKey и SignatureKey в файлах app.json для веб-сервиса и Chronos Ключи обновляются
-wp:, --web-path: Путь к папке веб-сервиса, используемый для обновления ключей (абсолютный или относительный от папки tools) $HOME/tessa/web
-cp:, --chronos-path: Путь к папке Chronos, используемый для обновления ключей (абсолютный или относительный от папки tools) $HOME/tessa/chronos
-tp:, --tools-path: Путь к папке tools, содержащий утилиту tadmin (абсолютный или относительный от папки со скриптом) ./tools
--applications-path: Путь к папке с desktop-приложениями, которые будут опубликованы ../../Applications
-cfg:, --configuration-path: Путь к папке с конфигурацией, которая импортируется (абсолютный или относительный от папки tools) ../../Configuration
--deski-path: Путь к папке с приложением Deski, которое будет опубликовано (абсолютный или относительный от папки tools) ../../DeskiSetup
--fixes-path: Путь к папке с дополнительными скриптами и миграциями Fixes, используемыми при установке (абсолютный или относительный от папки tools) ../../Fixes

Пример

./upgrade.sh -a:https://tessa-server.com -db:tessa --no-applications -f:/var/tessa/files -wp:/var/tessa/web -cp:/var/tessa/chronos

Скрипт выполняет обновление существующей базы данных с аргументами:

  • https://tessa-server.com - адрес веб-сервиса (логин и пароль пользователя стандартные - admin);
  • tessa - имя базы данных, которое переопределяет имя, указанное в строке подключения default в файле app-db.json;
  • скрипт не выполняет публикацию приложений desktop-клиента;
  • /var/tessa/web - путь до папки с веб-сервисом;
  • /var/tessa/chronos - путь до папки с Chronos;
  • все прочие аргументы получают значения по умолчанию.

Скрипт экспорта export.sh

По использованию скрипта экспорта обратитесь к разделу Экспорт конфигурации веб-сервиса.

Аргумент Описание Значение по умолчанию
-d, --default Запустить скрипт в неинтерактивном режиме, даже если ни один другой аргумент не указан
-v, --verbose Выводить результаты выполнения команд на консоль Команды запускаются в тихом (quiet) режиме
-a:, --address: Адрес веб-сервиса https://localhost
-u:, --user: Логин пользователя для подключения к веб-сервису admin
-p:, --password: Пароль пользователя для подключения к веб-сервису admin
-db:, --database: Имя базы данных Имя из строки подключения в app-db.json
-cs:, --connection-string: Имя строки подключения из app-db.json default
-t:, --timeout: Таймаут в секундах для проверок соединения к базе данных и к веб-сервису; 0 - неограниченный таймаут; -1 - таймаут по умолчанию из app.json 20
-tp:, --tools-path: Путь к папке tools, содержащий утилиту tadmin (абсолютный или относительный от папки со скриптом) ./tools
-cfg:, --configuration-path: Путь к папке, в которую экспортируется конфигурация (абсолютный или относительный от папки tools) ../../Configuration

Пример

./export.sh -a:https://tessa-server.com -u:admin -p:adminpswd -db:tessa -cfg:~/tessa/Configuration

Скрипт выполняет экспорт конфигурации из базы данных в папку с аргументами:

  • https://tessa-server.com - адрес веб-сервиса, admin - логин пользователя, adminpswd - его пароль;
  • tessa - имя базы данных, которое переопределяет имя, указанное в строке подключения default в файле app-db.json;
  • конфигурация экспортируется в папку по пути ~/tessa/Configuration (где ~ - домашняя папка пользователя);
  • все прочие аргументы получают значения по умолчанию.

Скрипт миграции migrate.sh

По использованию скрипта миграции обратитесь к разделу Миграция базы данных.

Аргумент Описание Значение по умолчанию
-d, --default Запустить скрипт в неинтерактивном режиме, даже если ни один другой аргумент не указан
-v, --verbose Выводить результаты выполнения команд на консоль Команды запускаются в тихом (quiet) режиме
-a:, --address: Адрес веб-сервиса https://localhost
-u:, --user: Логин пользователя для подключения к веб-сервису admin
-p:, --password: Пароль пользователя для подключения к веб-сервису admin
-db1:, --database-1: Имя исходной базы данных Имя из строки подключения в app-db.json
-db2:, --database-2: Имя целевой базы данных Имя из строки подключения в app-db.json
-cs1:, --connection-string-1: Имя строки подключения к исходной базе данных из app-db.json default
-cs2:, --connection-string-2: Имя строки подключения к целевой базе данных из app-db.json migration
-t:, --timeout: Таймаут в секундах для проверок соединения к базе данных и к веб-сервису; 0 - неограниченный таймаут; -1 - таймаут по умолчанию из app.json 20
-nw, --no-web Не проверять подключение к веб-сервису и не обращаться к нему Подключение проверяется
-nic, --no-import-cards Не импортировать специфичные для СУБД карточки, требует подключение к веб-сервису Карточки импортируются
-tp:, --tools-path: Путь к папке tools, содержащий утилиту tadmin (абсолютный или относительный от папки со скриптом) ./tools
-cfg:, --configuration-path: Путь к папке с конфигурацией, используется при импорте карточек (абсолютный или относительный от папки tools) ../../Configuration
--fixes-path: Путь к папке с дополнительными скриптами Fixes, используется при импорте карточек (абсолютный или относительный от папки tools) ../../Fixes

Tip

Импорт специфичных для СУБД карточек (при отсуствии ключей -nw или -nic) имеет смысл только при миграции с одного типа СУБД на другой, т.е. при миграции с MS SQL Server на PostgreSQL или наоборот.

Если такая миграция не выполняется, то рекомендуется указать ключ -nw. Обеспечить доступность веб-сервиса в этом случае не требуется, а аргументы -a, -u, -p, -nic, -cfg и --fixes-path можно не указывать, т.к. их значения не используются.


Пример

./migrate.sh -a:https://tessa-server.com -u:admin -p:adminpswd -db2:tessa2 -cs2:default -cfg:~/tessa/Configuration

Скрипт выполняет миграцию базы данных с аргументами:

  • https://tessa-server.com - адрес веб-сервиса, admin - логин пользователя, adminpswd - его пароль;
  • миграция выполняется в базу данных tessa2, прочие параметры подключения указаны в строке подключения default в файле app-db.json (хотя по умолчанию была бы строка migration);
  • конфигурация для импорта карточек, специфичных для СУБД, доступна в папке ~/tessa/Configuration (где ~ - домашняя папка пользователя);
  • все прочие аргументы получают значения по умолчанию.
Back to top