Cómo ejecutar comandos SSH en tu servidor con GitHub Actions
- Publicado el
- • 1 min de lectura•--- vistas
En la máquina host
ssh-keygen -t rsa -b 4096 -C "<YOUR_EMAIL>"
En 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
Relacionado
Artículos
Despliegue rápido a la GAC y reciclaje de app pools para el desarrollo en SharePoint
Una guía práctica para que los desarrolladores de SharePoint desplieguen DLLs a la GAC y reciclen los app pools de IIS rápidamente usando Visual Studio, scripts de PowerShell y VsCommandBuddy.
Que la entrega sea consecuencia del pago, no una tarea que alguien ejecuta
La entrega manual de productos digitales está limitada por el horario laboral y protegida solo por la atención de alguien. Mover la entrega a los eventos del pedido cambia lo que el sistema garantiza, y la API es lo que impide que un segundo canal se convierta en una segunda implementación.
Programación y scripting para ciberseguridad: parte 4, flujos de trabajo de monitoreo multiplataforma
La parte 4 presenta un ejercicio de monitoreo multiplataforma con Python y PowerShell, centrado en el análisis de logs, el reporte y las salvaguardas operativas.
Disponible para colaboración por contrato
Estoy disponible para colaborar por contrato. Si tiene una idea de proyecto interesante, reserve una llamada por Calendly.
Agenda una llamada de 30 min