Basic TravisCI Information

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Access

TravisCI सीधे विभिन्न git प्लेटफार्मों जैसे Github, Bitbucket, Assembla, और Gitlab के साथ एकीकृत होता है। यह उपयोगकर्ता से TravisCI को उन रिपोजिटरीज़ तक पहुँचने की अनुमति देने के लिए कहेगा जिन्हें वह TravisCI के साथ एकीकृत करना चाहता है।

उदाहरण के लिए, Github में यह निम्नलिखित अनुमतियों के लिए पूछेगा:

  • user:email (पढ़ने के लिए केवल)
  • read:org (पढ़ने के लिए केवल)
  • repo: सार्वजनिक और निजी रिपोजिटरीज़ और संगठनों के लिए कोड, कमिट स्थिति, सहयोगियों, और तैनाती की स्थिति तक पढ़ने और लिखने की पहुँच प्रदान करता है।

Encrypted Secrets

Environment Variables

TravisCI में, अन्य CI प्लेटफार्मों की तरह, यह संभव है कि रिपो स्तर पर रहस्यों को सुरक्षित करें जो एन्क्रिप्टेड रूप में सुरक्षित किए जाएंगे और निर्माण को निष्पादित करने वाली मशीन के वातावरण चर में डिक्रिप्ट और पुश किए जाएंगे

यह संभव है कि उन शाखाओं को इंगित करें जिनमें रहस्य उपलब्ध होंगे (डिफ़ॉल्ट रूप से सभी) और यह भी कि क्या TravisCI इसके मान को छिपाना चाहिए यदि यह लॉग में दिखाई देता है (डिफ़ॉल्ट रूप से यह करेगा)।

Custom Encrypted Secrets

प्रत्येक रिपो के लिए TravisCI एक RSA की जोड़ी उत्पन्न करता है, निजी को रखता है, और रिपोजिटरी की सार्वजनिक कुंजी उन लोगों के लिए उपलब्ध कराता है जिनके पास रिपोजिटरी तक पहुँच है।

आप एक रिपो की सार्वजनिक कुंजी तक पहुँच सकते हैं:

travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test

फिर, आप इस सेटअप का उपयोग करके गुप्त को एन्क्रिप्ट कर सकते हैं और उन्हें अपने .travis.yaml में जोड़ सकते हैं। गुप्त को बिल्ड चलने पर डिक्रिप्ट किया जाएगा और पर्यावरण चर में उपलब्ध होगा।

ध्यान दें कि इस तरीके से एन्क्रिप्ट किए गए गुप्त सेटिंग्स के पर्यावरण चर में सूचीबद्ध नहीं होंगे।

कस्टम एन्क्रिप्टेड फ़ाइलें

पहले की तरह, TravisCI भी फ़ाइलों को एन्क्रिप्ट करने और फिर बिल्ड के दौरान उन्हें डिक्रिप्ट करने की अनुमति देता है:

travis encrypt-file super_secret.txt -r carlospolop/t-ci-test

encrypting super_secret.txt for carlospolop/t-ci-test
storing result as super_secret.txt.enc
storing secure env variables for decryption

Please add the following to your build script (before_install stage in your .travis.yml, for instance):

openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d

Pro Tip: You can add it automatically by running with --add.

Make sure to add super_secret.txt.enc to the git repository.
Make sure not to add super_secret.txt to the git repository.
Commit all changes to your .travis.yml.

ध्यान दें कि जब एक फ़ाइल को एन्क्रिप्ट किया जाता है, तो 2 Env Variables को रिपॉजिटरी के अंदर कॉन्फ़िगर किया जाएगा जैसे:

TravisCI Enterprise

Travis CI Enterprise एक on-prem संस्करण है Travis CI का, जिसे आप अपने बुनियादी ढांचे में तैनात कर सकते हैं। इसे Travis CI के 'सर्वर' संस्करण के रूप में सोचें। Travis CI का उपयोग करने से आपको एक आसान-से-उपयोग करने योग्य Continuous Integration/Continuous Deployment (CI/CD) प्रणाली को एक वातावरण में सक्षम करने की अनुमति मिलती है, जिसे आप अपनी इच्छानुसार कॉन्फ़िगर और सुरक्षित कर सकते हैं।

Travis CI Enterprise दो प्रमुख भागों में बाँटा गया है:

  1. TCI सेवाएँ (या TCI कोर सेवाएँ), जो संस्करण नियंत्रण प्रणालियों के साथ एकीकरण, निर्माणों को अधिकृत करना, निर्माण कार्यों को शेड्यूल करना आदि के लिए जिम्मेदार हैं।
  2. TCI कार्यकर्ता और निर्माण वातावरण छवियाँ (जिन्हें OS छवियाँ भी कहा जाता है)।

TCI कोर सेवाओं के लिए निम्नलिखित की आवश्यकता होती है:

  1. एक PostgreSQL11 (या बाद का) डेटाबेस।
  2. एक बुनियादी ढांचा जिसमें एक Kubernetes क्लस्टर तैनात किया जा सके; इसे एक सर्वर क्लस्टर में या यदि आवश्यक हो तो एकल मशीन में तैनात किया जा सकता है।
  3. आपकी सेटअप के आधार पर, आप कुछ घटकों को अपने आप तैनात और कॉन्फ़िगर करना चाह सकते हैं, जैसे कि RabbitMQ - अधिक विवरण के लिए Travis CI Enterprise सेटअप करना देखें।

TCI कार्यकर्ता के लिए निम्नलिखित की आवश्यकता होती है:

  1. एक बुनियादी ढांचा जहाँ एक डॉकर छवि जिसमें कार्यकर्ता और एक लिंक की गई निर्माण छवि तैनात की जा सके
  2. कुछ Travis CI कोर सेवाओं के घटकों से कनेक्टिविटी - अधिक विवरण के लिए कार्यकर्ता सेटअप करना देखें।

तैनात किए गए TCI कार्यकर्ता और निर्माण वातावरण OS छवियों की मात्रा आपके बुनियादी ढांचे में Travis CI Enterprise तैनाती की कुल समवर्ती क्षमता को निर्धारित करेगी।

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें