← Volver al blog

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

Artículos

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