← Назад в блог
Как выполнять SSH-команды на сервере с помощью GitHub Actions
- Опубликовано
- • 1 мин чтения•--- просмотров
На хост-машине
ssh-keygen -t rsa -b 4096 -C "<YOUR_EMAIL>"
В workflow.yml
deploy:
needs: publish
name: Deploy to VPS
runs-on: ubuntu-latest
steps:
- name: Install ssh keys
run: |
mkdir -p ~/.ssh
echo "${{secrets.APP_SSH_PRIVATE_KEY}}" > ~/.ssh/id_rsa_${{env.SERVICE_NAME}}
chmod 600 ~/.ssh/id_rsa_${{env.SERVICE_NAME}}
cat >>~/.ssh/config <<EOF
Host ${{env.SERVICE_NAME}}
HostName ${{env.APP_SSH_HOST}}
Port ${{env.APP_SSH_PORT}}
User ${{env.APP_SSH_USER}}
IdentityFile ~/.ssh/id_rsa_${{env.SERVICE_NAME}}
StrictHostKeyChecking no
EOF
- name: Connect and pull
run: |
ssh ${{env.SERVICE_NAME}} -p ${{env.APP_SSH_PORT}}
cd ${{env.APP_SSH_WORKDIR}}
echo ${{secrets.PAT}} | docker login ghcr.io -u ${{github.actor}} --password-stdin
docker compose pull ${{env.SERVICE_NAME}}
docker compose up -d ${{env.SERVICE_NAME}}
exit
- name: Cleanup
run: rm -rf ~/.ssh
Содержание
По теме
Статьи
Быстрый деплой в GAC и рециклинг app pool для разработки под SharePoint
Практическое руководство для разработчиков SharePoint по быстрому деплою DLL в GAC и рециклингу app pool в IIS с помощью Visual Studio, скриптов PowerShell и VsCommandBuddy.
Пусть выдача будет следствием оплаты, а не задачей, которую кто-то выполняет
Ручная выдача цифровых товаров ограничена рабочими часами, а от повторной отправки её защищает только внимательность. Перенос выдачи на события заказа меняет гарантии системы, а API не даёт второму каналу превратиться во вторую реализацию.
Программирование и скриптинг для кибербезопасности: часть 4 - кросс-платформенные воркфлоу мониторинга
Часть 4 даёт кросс-платформенное упражнение по мониторингу на Python и PowerShell с акцентом на анализ логов, отчётность и операционные защитные меры.
Открыт для работы по контракту
Я доступен для работы по контракту. Если у вас есть интересная идея проекта, запишитесь на звонок через Calendly.
Записаться на 30-минутный звонок