← Назад в блог
Как выполнять 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
Содержание
Открыт для работы по контракту
Я доступен для работы по контракту. Если у вас есть интересная идея проекта — запишитесь на звонок через Calendly.
Записаться на 30-минутный звонок