Развёртывание проекта на VPS при помощи Gihub Actions через rsync

Click here to view original web page at www.kobzarev.com
Обложка к записи Развёртывание проекта на VPS при помощи Gihub Actions через rsync

В одной из своих предыдущих статей я показал, как развернуть проект на VPS-сервере с помощью CircleCI. В этой статье я покажу, как проделать аналогичный процесс, но только используя Github Actions.

Вот также хорошая статья, которая может вам понравиться, для WordPress разработчика, показывающая, как публиковать плагины в репозитории wp.org с помощью Github Actions.

Давайте двигаться дальше.

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

Шаг 1: Сгенерируйте ключи SSH.

Вы можете перейти к шагу 2, если у вас уже есть ключи.

Входим на VPS с помощью SSH

Замените <SERVER_ADDRESS> на правильный URL или IP вашего VPS.

1ssh root@<SERVER_ADRRESS>

Генерируем SSH ключи

Оставьте passphrase пустым.

Шаг 2: Скопируйте публичный ключ в authorized_keys

На VPS необходимо скопировать открытый SSH-ключ в ~/.ssh/authorized_keys .

Если вы только что создали его, выполнив шаг 1 и сделайте это, выполнив следующую команду.

Шаг 3: Скопируйте приватный ключ в буфер обмена

Если вы сгенерировали его на VPS, скопируйте этот ключ любым удобным для вас способом. Например, вы можете использовать xclip, но я просто открою файл с помощью nano и скопирую содержимое вручную. �.

Если у вас возникли проблемы с тем, что ключ находится в неправильном формате и вы видите ошибку Load key “/home/mihdan/.ssh/deploy_key”: invalid format, которая обычно возникает из-за того, что в конце строки стоит «CR LF«, а не только «LF«, то вы можете легко преобразовать эту последовательность символов в любом текстовом редакторе.

А проще всего использовать следующую команду с локального терминала для копирования ключа:

Шаг 4: Прикрепите приватный ключ к репозиторию на Github

Перейдите в Настройки -> Секреты и создайте две секретные переменные.

  1. DEPLOY_KEY: Это приватный ключ, который вы скопировали на предыдущем шаге.
  2. SEVER_IP: IP сервера или его адрес.
Шаг 5: Настройте рабочий процесс Github Actions

В корне вашего репозитория создайте следующий файл .github/workflows/deploy.yml с таким содержимым:

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

Здесь есть несколько нюансов. Вы должны заменить эти строки:

  1. src: 'dist/' — Содержимое этой папки будет загружено на сервер. Вы можете изменить его в соответствии со своими потребностями.
  2. dest: 'root@"${{secrets.SERVER_IP}}":/path/on/remote' — При необходимости поправьте путь загрузки на удалённом сервере.

Вот и все.

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