Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Создание приложения из шаблона

$ tt create TEMPLATE_NAME [OPTION ...]

Команда tt create создает новое приложение Tarantool из шаблона.

Шаблоны приложений ускоряют разработку приложений Tarantool, определяя их начальную структуру и содержимое. Шаблон может включать код приложения, конфигурацию, скрипты сборки и другие ресурсы.

Утилита tt поставляется со встроенными шаблонами для популярных сценариев использования. Также можно создавать пользовательские шаблоны для специфических задач.

Встроенные шаблоны

Доступны следующие встроенные шаблоны:

  • vshard_cluster: приложение шардированного кластера для Tarantool 3.0 или новее.
  • single_instance: приложение с одним экземпляром для Tarantool 3.0 или новее.
  • cartridge: приложение кластера Cartridge для Tarantool 2.x.

Чтобы создать приложение app1 в текущем окружении tt из встроенного шаблона vshard_cluster:

$ tt create vshard_cluster --name app1 -dst /opt/tt/apps/

Команда запрашивает параметры топологии кластера, такие как количество шардов или роутеров, в интерактивном режиме во время выполнения.

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

$ tt create vshard_cluster --name app1 -f --non-interactive -dst /opt/tt/apps/

Создание пользовательских шаблонов приложений

Утилита tt ищет пользовательские шаблоны в каталогах, указанных в разделе templates в файле конфигурации.

Чтобы создать приложение app1 из пользовательского шаблона simple_app в текущем каталоге:

$ tt create simple_app --name app1

Структура шаблона

Шаблоны приложений - это каталоги с файлами.

Главный файл шаблона - его манифест. Он определяет, как приложения создаются из этого шаблона.

Манифест шаблона - это YAML-файл с именем MANIFEST.yaml. Он может содержать следующие разделы:

  • description – описание шаблона.
  • varsпеременные шаблона.
  • pre-hook и post-hook – пути к исполняемым файлам, запускаемым до и после создания приложения из шаблона.
  • include – список файлов, которые остаются в каталоге приложения после создания. Если этот раздел опущен, приложение будет содержать все файлы и каталоги шаблона.

Все разделы необязательны.

Пример:

description: Template descriptionvars:  - prompt: User name    name: user_name    default: admin    re: ^\w+$  - prompt: Retry count    default: "3"    name: retry_count    re: ^\d+$pre-hook: ./hooks/pre-gen.shpost-hook: ./hooks/post-gen.shinclude:  - init.lua  - instances.yaml

Файлы и каталоги шаблона копируются в каталог приложения в соответствии с разделом include манифеста (или при его отсутствии).

Существует специальный тип файлов *.tt.template. Содержимое таких файлов корректируется для каждого приложения с помощью переменных шаблона. При создании приложения переменные в этих файлах заменяются заданными значениями, а расширение *.tt.template удаляется.

Переменные

Переменные шаблона заменяются значениями, заданными при создании приложения.

Все шаблоны имеют переменную name. Ее значение берется из параметра --name.

Чтобы добавить другие переменные, определите их в разделе vars манифеста шаблона. Переменная может иметь следующие атрибуты:

  • prompt: текст, предлагающий ввести значение переменной в интерактивном режиме. Обязательный.
  • name: имя переменной. Обязательный.
  • default: значение по умолчанию. Необязательный.
  • re: регулярное выражение, которому должно соответствовать значение. Необязательный.

Пример:

vars:  - prompt: Cluster cookie    name: cluster_cookie    default: cookie    re: ^\w+$

Переменные можно использовать во всех именах файлов и в содержимом файлов *.tt.template.

Чтобы использовать переменную, заключите ее имя с точкой в начале в двойные фигурные скобки: {{.var_name}} (как в синтаксисе текстовых шаблонов Golang).

Примеры:

  • Файл init.lua.tt.template:

    local app_name = {{.name}}local login = {{.user_name}}
  • Имя файла {{.user_name}}.txt.

Переменные получают значения во время создания приложения из шаблона. По умолчанию tt create запрашивает значения в интерактивном режиме. Для отключения интерактивного ввода можно использовать параметр -s (или --non-interactive). В этом случае значения ищутся в следующем порядке:

  • В параметре --var. Передайте строку в формате var=value после параметра --var. Можно передать несколько переменных, каждая после отдельного параметра --var:

    $ tt create template app --var user_name=admin
  • В файле. Укажите пары var=value в обычном текстовом файле, по одной в строке, и передайте его как значение параметра --vars-file:

    $ tt create template app --vars-file variables.txt

variables.txt может выглядеть так:

user_name=adminpassword=p4$$w0rdversion=2

Если переменная не инициализирована ни одним из этих способов, используется значение по умолчанию из манифеста.

Можно комбинировать разные способы передачи переменных в одном вызове команды tt create.

Каталог приложения

По умолчанию приложение создается в каталоге, названном в соответствии с указанным именем приложения (значением --name).

Чтобы изменить расположение приложения, используйте параметр -dst.

Параметры

-d PATH, --dst PATH

Путь к каталогу, в котором будет создано приложение.

-f, --force

Принудительно перезаписать каталог приложения, если он уже существует.

--name NAME

Имя приложения.

-s, --non-interactive

Неинтерактивный режим.

--var [VAR=VALUE ...]

Определение переменной. Использование: --var var_name=value.

--vars-file FILEPATH

Путь к файлу с определениями переменных.