База знаний

Развертывание с Zinnector®: связать, проверить, запустить

От локального проекта до живого сайта: войдите с помощью API-ключа, свяжите проект с хостинг-слотом, ознакомьтесь с предполётной проверкой, которая сравнивает ваш PHP, диск и WordPress со слотом, и выполните публикацию — а также повторные развёртывания, историю развёртываний и журналы сборки, если что-то пойдёт не так.

Как только проект начинает работать локально, четыре команды переносят его на рабочий сайт на хостинге Zinn Digital®: вход в систему, привязка проекта к слоту хостинга, проверка перед развертыванием и отправка. В этой статье рассматривается каждая из них, выводимые ими данные, а также команды, которые вам понадобятся в дальнейшем: повторные развертывания, история развертываний и журналы сборки.

Вход с помощью ключа API

Создайте ключ в панели управления в разделе Настройки → Ключи API, затем выполните:

zinnector login

Ключ вводится в ответ на запрос — он никогда не принимается в командной строке, поэтому он не может попасть в историю вашей оболочки или список процессов. В CI передайте его через конвейер: echo "$ZINN_API_KEY" | zinnector login --profile ci или установите ZINNECTOR_TOKEN и полностью пропустите шаг login. Ключ проверяется перед сохранением и сохраняется с правами доступа 600. Команда zinnector whoami --scopes показывает, в какую организацию выполнен вход и какими разрешениями обладает ключ; ключ песочницы помечен соответствующим образом.

Привязка проекта к слоту

zinnector link                                   # выбрать сайт из списка
zinnector link example.com --repo acme/site --branch main

Команда link записывает идентификатор сайта в файл zinnector.json и, если вы не передали аргумент --no-repo, связывает удаленный репозиторий git проекта с сайтом на платформе, чтобы отправка выполняла его развертывание. Закоммитьте файл zinnector.json: тогда коллега, клонирующий репозиторий, сможет выполнить развертывание в то же место без дополнительных инструкций. Он не содержит конфиденциальных данных.

Чтение данных перед развертыванием

zinnector check

Это именно та команда, ради которой существует интерфейс командной строки (CLI). Она сравнивает ваш проект со слотом, на который он должен быть развернут, и выводит каждое несоответствие, а также каждую проверку, которую не удалось выполнить:

  • Версия PHP, причем разница в мажорной версии оценивается как высокая (high), поскольку она надежно ломает сайт, а разница в минорной версии оценивается ниже, так как оценка всего как критического приучает людей игнорировать предупреждения.
  • Может ли слот переключиться на версию, на которой вы выполнили сборку, является ли версия PHP в слоте устаревшей (end of life) и применила ли машина эту версию или ей было только дано указание.
  • Размер проекта и количество файлов по сравнению с дисковым пространством и лимитом инодов, фактически оставшимися на слоте — дерево WordPress может исчерпать файлы, находясь при этом далеко от ограничения по диску.
  • Версии WordPress с каждой стороны, завершено ли развертывание слота и подключен ли репозиторий для отправки.

Она предупреждает, но никогда не блокирует. Любое обнаруженное несоответствие можно переопределить с помощью zinnector push --force, поскольку вы знаете о своем собственном сайте то, чего проверка не знает. Невыполненное сравнение отображается как неизвестное (unknown), но никогда как успешное, и в сводке всегда указывается их количество. По умолчанию локальной версией PHP является версия, указанная в zinnector.json; параметр --probe запускает локальную среду выполнения и измеряет ее вместо этого. Флаг --strict завершает работу с ненулевым кодом при наличии неизвестных параметров, что требуется для проверок в CI.

Отправка

zinnector push

Команда push выполняет проверку перед развертыванием, отправляет ваши коммиты, инициирует развертывание и отслеживает его до завершения, выводя окончательный статус и развернутый коммит. --dry-run выполняет все действия, кроме самого развертывания; --no-wait инициирует его и завершает работу; --no-git развертывает то, что уже есть на платформе, без отправки. Если развернутый коммит отличается от только что отправленного, об этом будет сообщено.

Если что-то пошло не так

zinnector deploys example.com        # история развертываний: статус, коммит, триггер, сообщение
zinnector logs example.com --build   # журнал сборки самого последнего развертывания
zinnector logs example.com --error   # журнал ошибок сайта
zinnector deploy example.com         # повторное развертывание того, что уже есть на платформе
zinnector ai "why is my deploy failing?"

Команда zinnector ai запускается на платформе для вашей учетной записи, поэтому она имеет доступ к той же истории развертываний и журналам. Изнутри проекта она отправляет структуру проекта — имена каталогов, версии и идентификатор сайта — и никогда не передает содержимое файлов.

См. также

Всё ещё нужна помощь?

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

Обратиться в поддержку Все статьи
Развертывание с Zinnector®: связать, проверить, запустить