जीथब एक्शन का उपयोग करके हमारे प्रोजेक्ट में सीआई/सीडी लागू करने का प्रयास करते समय मुझे एक समस्या का सामना करना पड़ा। सर्वर के पास केवल सूचीबद्ध आईपी के लिए एक्सेस सक्षम करने के लिए फ़ायरवॉल है।

मुझे Github मेटा एपीआई https://api.github.com/meta का उपयोग करके एक विधि मिली है, लेकिन उन्होंने आवेदन करने से इनकार कर दिया।

क्या इसे लागू करने का कोई और तरीका है?

हमारा वर्तमान ci.yml

name: remote ssh
on:
  push:
    branches: [ master ]

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: execute ssh command via using private key
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.REMOTE_HOST }}
          username: ${{ secrets.REMOTE_USER }}
          key: ${{ secrets.CICD_SSH_KEY }}
          port: ${{ secrets.PORT }}
          script:
            pwd
2
Nguyen Tien Hung 11 अगस्त 2020, 11:57

1 उत्तर

सबसे बढ़िया उत्तर

मेरे मामले में, मैं सर्वर तक पहुँचने के लिए एक OpenVPN का उपयोग करता हूँ।

सुरक्षा के बारे में। मुझे लगता है कि आपको फ़ाइल वीपीएन कॉन्फ़िगरेशन को गिट में लोड नहीं करना चाहिए।

यह मेरी कॉन्फ़िग फ़ाइल है।

name: remote ssh command to deploy
on:
  push:
    branches: [ master ]

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1

      - name: Install Open VPN
        run: |
          sudo apt-get install openvpn
          echo "${{ secrets.VPN_FILE }}" > .github/vpn/config.ovpn

      - name: Connect VPN
        uses: golfzaptw/action-connect-ovpn@master
        id: connect_vpn
        with:
          PING_URL: ${{ secrets.REMOTE_HOST }}
          FILE_OVPN: '.github/vpn/config.ovpn'
        env:
          CA_CRT: ${{ secrets.CA_CRT}}
          USER_CRT: ${{ secrets.USER_CRT }}
          USER_KEY: ${{ secrets.USER_KEY }}

      - name: Check Connect VPN
        run: echo ${{ steps.connect_vpn.outputs.STATUS }}

      - name: Execute ssh command via using private key
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.REMOTE_HOST }}
          username: ${{ secrets.REMOTE_USER }}
          key: ${{ secrets.CICD_SSH_KEY }}
          port: ${{ secrets.PORT }}
          script: |
            pwd
            cd ${{ secrets.REMOTE_TARGET }}
            git pull

      - name: kill vpn
        if: always()
        run: sudo killall openvpn

https://github.com/marketplace/actions/ को फ़ॉलो करें कनेक्ट-वीपीएन#उदाहरण-तैयार-फ़ाइल-.ओवीपीएन:

  1. बेस 64 को एन्कोड करने के लिए टैग के अंदर डेटा कॉपी करें उसके बाद गुप्त एनवी जीथब क्रियाओं में सहेजें

  2. टैग निकालें और ca ca.crt cert user.crt key user.key . में बदलें

2
Minh Quan Đức Lương 11 अगस्त 2020, 12:14