जीथब एक्शन का उपयोग करके हमारे प्रोजेक्ट में सीआई/सीडी लागू करने का प्रयास करते समय मुझे एक समस्या का सामना करना पड़ा। सर्वर के पास केवल सूचीबद्ध आईपी के लिए एक्सेस सक्षम करने के लिए फ़ायरवॉल है।
मुझे 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
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/ को फ़ॉलो करें कनेक्ट-वीपीएन#उदाहरण-तैयार-फ़ाइल-.ओवीपीएन:
बेस 64 को एन्कोड करने के लिए टैग के अंदर डेटा कॉपी करें उसके बाद गुप्त एनवी जीथब क्रियाओं में सहेजें
टैग निकालें और ca ca.crt cert user.crt key user.key . में बदलें
संबंधित सवाल
नए सवाल
continuous-deployment
एक सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण जिसमें टीमें लघु चक्रों में सॉफ्टवेयर का उत्पादन करती रहती हैं और यह सुनिश्चित करती हैं कि सॉफ्टवेयर को किसी भी समय उत्पादन के लिए जारी किया जा सकता है।