
stackrox v4.11.3-rc.4
StackRox Kubernetes Security Platform कंटेनर वातावरण का जोखिम विश्लेषण करता है, दृश्यता और रनटाइम अलर्ट प्रदान करता है, और वातावरण को सख्त करके सक्रिय रूप से सुरक्षा में सुधार करने के लिए अनुशंसाएँ देता है।
विषय सूची
- स्टैकरॉक्स कुबेरनेट्स सुरक्षा प्लेटफॉर्म
स्टैकरॉक्स कुबेरनेट्स सुरक्षा प्लेटफॉर्म
स्टैकरॉक्स कुबेरनेट्स सुरक्षा प्लेटफॉर्म कंटेनर वातावरण का जोखिम विश्लेषण करता है, दृश्यता और रनटाइम अलर्ट प्रदान करता है, और वातावरण को कठोर करके सुरक्षा में सक्रिय रूप से सुधार करने के लिए अनुशंसाएं प्रदान करता है। स्टैकरॉक्स कंटेनर जीवनचक्र के हर चरण: बिल्ड, डिप्लॉय और रनटाइम के साथ एकीकृत होता है।
स्टैकरॉक्स कुबेरनेट्स सुरक्षा प्लेटफॉर्म पहले Prevent के नाम से जाने जाने वाले उत्पाद की नींव पर बनाया गया है, जिसे स्वयं Mitigate और Apollo कहा जाता था। आपको कोड या दस्तावेज़ में इन पिछले नामों के संदर्भ मिल सकते हैं।
समुदाय
आप Slack (#stackrox) के माध्यम से हमसे संपर्क कर सकते हैं। वैकल्पिक तरीकों के लिए, हमारे सामुदायिक हब stackrox.io पर जाएँ।
ईवेंट अपडेट, ब्लॉग और अन्य संसाधनों के लिए stackrox.io पर स्टैकरॉक्स समुदाय साइट का अनुसरण करें।
स्टैकरॉक्स आचार संहिता के लिए।
किसी भेद्यता या बग की रिपोर्ट करने के लिए।
स्टैकरॉक्स तैनात करना
ऑपरेटर का उपयोग करके स्थापना
रिलीज़ 4.10 से ऑपरेटर का उपयोग करके स्टैकरॉक्स स्थापित करना संभव है।
[!WARNING] निम्नलिखित स्थापना विधियाँ अप्रचलित हैं।
Helm का उपयोग करके त्वरित स्थापना
स्टैकरॉक्स Helm चार्ट के माध्यम से त्वरित स्थापना प्रदान करता है। अपने सिस्टम पर helm CLI प्राप्त करने के लिए Helm स्थापना गाइड का पालन करें। फिर helm त्वरित स्थापना स्क्रिप्ट चलाएँ या कॉन्फ़िगरेशन विकल्पों के लिए Manual Installation using Helm अनुभाग पर जाएँ।
Helm स्थापना स्क्रिप्ट के माध्यम से स्टैकरॉक्स स्थापित करें
```sh /bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh) ``` StackRox की डिफ़ॉल्ट तैनाती में कुछ CPU और मेमोरी अनुरोध होते हैं और यदि पर्याप्त संसाधन उपलब्ध नहीं हैं तो छोटे (जैसे विकास) क्लस्टर पर विफल हो सकती है। आप छोटे क्लस्टर पर सीमित संसाधनों के साथ StackRox स्थापित करने के लिए `--small` कमांड-लाइन विकल्प का उपयोग कर सकते हैं। उत्पादन तैनाती के लिए इस विकल्प का उपयोग अनुशंसित नहीं है।```sh /bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh) --small ``` स्क्रिप्ट StackRox हेल्म रिपॉजिटरी जोड़ती है, एक एडमिन पासवर्ड उत्पन्न करती है, stackrox-central-services स्थापित करती है, stackrox-secured-cluster-services प्रावधान के लिए एक init bundle बनाती है, और अंत में उसी क्लस्टर पर stackrox-secured-cluster-services स्थापित करती है।अंत में, स्क्रिप्ट स्वचालित रूप से ब्राउज़र खोलेगी और आपको StackRox में लॉग इन करेगी। चूंकि प्रमाणपत्र स्व-हस्ताक्षरित है, एक प्रमाणपत्र चेतावनी प्रदर्शित हो सकती है। चेतावनियों के बारे में अधिक जानने के लिए StackRox उपयोगकर्ता इंटरफ़ेस (UI) तक पहुँचना अनुभाग देखें। प्रमाणीकरण के बाद आप https://localhost:8000/main/dashboard का उपयोग करके डैशबोर्ड तक पहुँच सकते हैं।
हेल्म का उपयोग करके मैन्युअल स्थापना
अपने सिस्टम पर helm CLI प्राप्त करने के लिए हेल्म स्थापना गाइड का पालन करें।
हेल्म का उपयोग करके तैनाती में 4 चरण शामिल हैं
- हेल्म में StackRox रिपॉजिटरी जोड़ें
- हेल्म का उपयोग करके StackRox Central Services लॉन्च करें
- एक क्लस्टर कॉन्फ़िगरेशन और एक सेवा पहचान (init bundle) बनाएँ
- उस कॉन्फ़िगरेशन और उन क्रेडेंशियल्स का उपयोग करके StackRox Secured Cluster Services तैनात करें (यह चरण अधिक क्लस्टरों को StackRox Central Service में जोड़ने के लिए कई बार किया जा सकता है)
StackRox Central Services स्थापित करें
पहले, StackRox Central Services आपके Kubernetes क्लस्टर में जोड़ी जाएंगी। इसमें UI और Scanner शामिल हैं। शुरू करने के लिए, stackrox/helm-charts/opensource रिपॉजिटरी को हेल्म में जोड़ें।```sh helm repo add stackrox https://raw.githubusercontent.com/stackrox/helm-charts/main/opensource/
रिपॉजिटरी में सभी उपलब्ध हेल्म चार्ट देखने के लिए चलाएँ (आप गैर-रिलीज़ बिल्ड भी दिखाने के लिए `--devel` विकल्प जोड़ सकते हैं)```sh
helm search repo stackrox
stackrox-central-services को स्थापित करने के लिए, आपको एक सुरक्षित पासवर्ड की आवश्यकता होगी। यह पासवर्ड बाद में UI लॉगिन और init बंडल बनाते समय आवश्यक होगा।```sh ROX_ADMIN_PASSWORD="$(openssl rand -base64 20 | tr -d '/=+')"
यहाँ से, आप अपने क्लस्टर पर Central और Scanner घटकों को तैनात करने के लिए stackrox-central-services इंस्टॉल कर सकते हैं।
> **Note:**
> आपको केवल एक तैनात उदाहरण stackrox-central-services की आवश्यकता है, भले ही आप कई क्लस्टरों को सुरक्षित करने की योजना बनाते हों।
इंस्टॉलेशन करने के लिए, अपने क्लस्टर आकार के अनुसार निम्नलिखित कमांड में से एक चुनें।
#### Default Central Installation
यदि आप एक उचित आकार के क्लस्टर में इंस्टॉल कर रहे हैं, तो डिफ़ॉल्ट इंस्टॉलेशन कमांड का उपयोग करें:```sh
helm upgrade --install -n stackrox --create-namespace stackrox-central-services \
stackrox/stackrox-central-services \
--set central.adminPassword.value="${ROX_ADMIN_PASSWORD}" \
--set central.persistence.none="true"
सीमित संसाधनों वाले क्लस्टरों में केंद्रीय स्थापना
यदि आप एकल नोड क्लस्टर में स्थापित कर रहे हैं, या डिफ़ॉल्ट स्थापना के परिणामस्वरूप संसाधनों की कमी के कारण पॉड्स लंबित अवस्था में अटक जाते हैं, तो stackrox-central-services संसाधन आवश्यकताओं को कम करने के लिए निम्नलिखित कमांड का उपयोग करें। ध्यान रखें कि ये कम किए गए संसाधन सेटिंग्स उत्पादन सेटअप के लिए उपयुक्त नहीं हैं।```sh
helm upgrade --install -n stackrox --create-namespace stackrox-central-services
stackrox/stackrox-central-services
--set central.adminPassword.value="${ROX_ADMIN_PASSWORD}"
--set central.persistence.none="true"
--set central.resources.requests.memory=1Gi
--set central.resources.requests.cpu=1
--set central.resources.limits.memory=4Gi
--set central.resources.limits.cpu=1
--set central.db.resources.requests.memory=1Gi
--set central.db.resources.requests.cpu=500m
--set central.db.resources.limits.memory=4Gi
--set central.db.resources.limits.cpu=1
--set scanner.autoscaling.disable=true
--set scanner.replicas=1
--set scanner.resources.requests.memory=500Mi
--set scanner.resources.requests.cpu=500m
--set scanner.resources.limits.memory=2500Mi
--set scanner.resources.limits.cpu=2000m
</details>
<details><summary>StackRox सुरक्षित क्लस्टर सेवाएँ स्थापित करें</summary>
इसके बाद, Kubernetes नोड्स से जानकारी एकत्र करने के लिए सुरक्षित क्लस्टर घटक को तैनात करने की आवश्यकता होगी।
अपने सुरक्षित क्लस्टर के लिए `CLUSTER_NAME` शेल वेरिएबल में एक सार्थक क्लस्टर नाम सेट करें। इस नाम से क्लस्टर की पहचान StackRox UI के क्लस्टर सूची में होगी।```sh
CLUSTER_NAME="my-secured-cluster"
सेंट्रल सिक्योर्ड क्लस्टर सर्विसेज़ का एंडपॉइंट सेट करें जिस पर संचार करना चाहिए। यदि आप stackrox-secured-cluster-services को उसी क्लस्टर पर तैनात कर रहे हैं जिस पर stackrox-central-services है, तो इसे दिखाए अनुसार छोड़ दें, अन्यथा मान को उस एंडपॉइंट में बदलें जिसके माध्यम से सेंट्रल सुलभ है।```sh CENTRAL_ENDPOINT="central.stackrox.svc:443"
एक आरंभिक बंडल उत्पन्न करें जिसमें आरंभीकरण रहस्य होंगे। आरंभिक बंडल `stackrox-init-bundle.yaml` में सहेजा जाएगा, और आप इसका उपयोग नीचे दिखाए अनुसार सुरक्षित क्लस्टर प्रदान करने के लिए करेंगे।```sh
echo "$ROX_ADMIN_PASSWORD" | \
kubectl -n stackrox exec -i deploy/central -- bash -c 'ROX_ADMIN_PASSWORD=$(cat) roxctl --insecure-skip-tls-verify \
central init-bundles generate stackrox-init-bundle --output -' > stackrox-init-bundle.yaml
फिर stackrox-secured-cluster-services इंस्टॉल करें (उस इनिशियल बंडल के साथ जो आपने अभी जनरेट किया है)।
इंस्टॉलेशन करने के लिए, अपने क्लस्टर के आकार के अनुसार नीचे दिए गए कमांड्स में से एक चुनें।
डिफ़ॉल्ट सिक्योर्ड क्लस्टर सर्विसेज़ इंस्टॉलेशन
यदि आप उचित आकार के क्लस्टर में इंस्टॉल कर रहे हैं, तो डिफ़ॉल्ट इंस्टॉलेशन कमांड का उपयोग करें:```sh
helm upgrade --install -n stackrox --create-namespace stackrox-secured-cluster-services
stackrox/stackrox-secured-cluster-services
-f stackrox-init-bundle.yaml
--set clusterName="$CLUSTER_NAME"
--set centralEndpoint="$CENTRAL_ENDPOINT"
#### सीमित संसाधनों वाले क्लस्टर में सुरक्षित क्लस्टर सेवाओं की स्थापना
यदि आप एकल नोड क्लस्टर में स्थापित कर रहे हैं, या डिफ़ॉल्ट स्थापना के परिणामस्वरूप संसाधनों की कमी के कारण pods stuck pending हो जाते हैं, तो stackrox-secured-cluster-services की संसाधन आवश्यकताओं को कम करने के लिए निम्नलिखित कमांड का उपयोग करें। ध्यान रखें कि ये कम किए गए संसाधन सेटिंग्स उत्पादन सेटअप के लिए उपयुक्त नहीं हैं।```sh
helm upgrade --install -n stackrox --create-namespace stackrox-secured-cluster-services \
stackrox/stackrox-secured-cluster-services \
-f stackrox-init-bundle.yaml \
--set clusterName="$CLUSTER_NAME" \
--set centralEndpoint="$CENTRAL_ENDPOINT" \
--set sensor.resources.requests.memory=500Mi \
--set sensor.resources.requests.cpu=500m \
--set sensor.resources.limits.memory=500Mi \
--set sensor.resources.limits.cpu=500m
हेल्म चार्ट्स के बारे में अतिरिक्त जानकारी
अपने हेल्म इंस्टॉलेशन को और अधिक अनुकूलित करने के लिए इन दस्तावेज़ों को देखें:
स्क्रिप्ट्स के माध्यम से इंस्टॉलेशन
deploy स्क्रिप्ट निम्नलिखित कार्य करेगी:
- StackRox केंद्रीय सेवाओं को लॉन्च करें
- एक क्लस्टर कॉन्फ़िगरेशन और एक सेवा पहचान बनाएँ
- उस कॉन्फ़िगरेशन और उन क्रेडेंशियल्स का उपयोग करके StackRox सुरक्षित क्लस्टर सेवाओं को तैनात करें
आप अपने शेल में पर्यावरण चर MAIN_IMAGE_TAG सेट कर सकते हैं ताकि आपको वांछित संस्करण मिल सके।
यदि आप कोई कमिट चेकआउट करते हैं, तो स्क्रिप्ट्स डिफ़ॉल्ट रूप से उस कमिट के अनुरूप इमेज लॉन्च करेंगी। आवश्यकता होने पर इमेज को खींचा जाएगा।
आगे के कदम ऑर्केस्ट्रेटर विशिष्ट हैं।
कुबरनेटीज़ वितरण (EKS, AKS, GKE)
विस्तार करने के लिए क्लिक करें
अपने कुबरनेटीज़ क्लस्टर में stackrox नेमस्पेस में StackRox के एक विशिष्ट संस्करण को शीघ्रता से तैनात करने के लिए नीचे दिए गए गाइड का पालन करें। यदि आप कोई विशिष्ट संस्करण स्थापित करना चाहते हैं, तो MAIN_IMAGE_TAG में उसे परिभाषित/सेट करना सुनिश्चित करें, अन्यथा यह नवीनतम नाइटली बिल्ड स्थापित करेगा।
अपनी पसंद की कार्यशील निर्देशिका में निम्नलिखित चलाएँ:``` git clone [email protected]:stackrox/stackrox.git cd stackrox MAIN_IMAGE_TAG=VERSION_TO_USE ./deploy/deploy.sh
कुछ मिनटों के बाद, सभी संसाधन तैनात हो जाने चाहिए।
**'admin' उपयोगकर्ता के लिए क्रेडेंशियल `./deploy/k8s/central-deploy/password` फ़ाइल में पाए जा सकते हैं।**
> **नोट:**
> पासवर्ड फ़ाइल आपके स्थानीय फ़ाइल सिस्टम पर सादे टेक्स्ट में संग्रहीत है, लेकिन StackRox जो Kubernetes Secret बनाता है वह एन्क्रिप्टेड है। आप रनटाइम पर पासवर्ड बदलने में सक्षम नहीं होंगे। यदि आप पासवर्ड खो देते हैं, तो आपको Central को फिर से तैनात करना होगा।
</details>
#### OpenShift
<details><summary>विस्तार करने के लिए क्लिक करें</summary>
OpenShift पर तैनात करने से पहले, सुनिश्चित करें कि आपके पास [oc - OpenShift Command Line](https://github.com/openshift/oc) स्थापित है।
StackRox के किसी विशिष्ट संस्करण को अपने OpenShift क्लस्टर पर `stackrox` नेमस्पेस में जल्दी से तैनात करने के लिए नीचे दिए गए गाइड का पालन करें। `MAIN_IMAGE_TAG` वेरिएबल में सबसे हाल ही का टैग जोड़ना सुनिश्चित करें।
अपनी पसंद की कार्यशील निर्देशिका में निम्नलिखित चलाएँ:```
git clone [email protected]:stackrox/stackrox.git
cd stackrox
MAIN_IMAGE_TAG=VERSION_TO_USE ./deploy/deploy.sh
कुछ मिनटों के बाद, सभी संसाधन तैनात हो जाने चाहिए। यह प्रक्रिया इस संदेश के साथ पूरी होगी।
'admin' उपयोगकर्ता के लिए क्रेडेंशियल्स ./deploy/openshift/central-deploy/password फ़ाइल में पाए जा सकते हैं।
नोट: जबकि पासवर्ड फ़ाइल आपके स्थानीय फ़ाइल सिस्टम पर सादे पाठ में संग्रहीत है, StackRox द्वारा उपयोग किया जाने वाला Kubernetes Secret एन्क्रिप्टेड है, और आप रनटाइम पर सीक्रेट को बदलने में सक्षम नहीं होंगे। यदि आप पासवर्ड खो देते हैं, तो आपको केंद्रीय को फिर से तैनात करना होगा।
डॉकर डेस्कटॉप, Colima, या minikube
विस्तार करने के लिए क्लिक करें
अपनी पसंद के कार्यशील निर्देशिका में निम्नलिखित चलाएँ:``` git clone [email protected]:stackrox/stackrox.git cd stackrox MAIN_IMAGE_TAG=latest ./deploy/deploy-local.sh
कुछ मिनटों के बाद, सभी संसाधन तैनात हो जाने चाहिए।
**'admin' उपयोगकर्ता के क्रेडेंशियल `./deploy/k8s/deploy-local/password` फ़ाइल में पाए जा सकते हैं।**
---
## StackRox उपयोगकर्ता इंटरफ़ेस (UI) तक पहुँचना
<details><summary>विस्तार करने के लिए क्लिक करें</summary>
तैनाती पूरी होने के बाद (ऑपरेटर, Helm या स्क्रिप्ट इंस्टॉल) एक पोर्ट-फॉरवर्ड मौजूद होना चाहिए, ताकि आप https://localhost:8000/ से कनेक्ट कर सकें। निम्नलिखित चलाएँ:```sh
kubectl port-forward -n 'stackrox' svc/central "8000:443"
फिर अपने वेब ब्राउज़र में https://localhost:8000/ पर जाएँ।
उपयोगकर्ता नाम = डिफ़ॉल्ट उपयोगकर्ता admin है
पासवर्ड (Helm) = मैन्युअल इंस्टॉलेशन के बाद पासवर्ड $ROX_ADMIN_PASSWORD में होता है, या त्वरित इंस्टॉलेशन स्क्रिप्ट के अंत में मुद्रित होता है।
पासवर्ड (स्क्रिप्ट) = स्क्रिप्ट इंस्टॉल के लिए पासवर्ड /deploy/<orchestrator>/central-deploy/password.txt फ़ोल्डर में स्थित होगा।
विकास
- यदि आप योगदान देने की योजना बनाते हैं तो पुल अनुरोध दिशानिर्देशों से शुरू करें
- गैर-सामान्य कोड सबमिशन के लिए shepherding देखें
- हमारी AI नीति देखें
- Go कोडिंग शैली गाइड: go-coding-style.md
- UI डेव दस्तावेज़: ui/README.md देखें
- E2E डेव दस्तावेज़: qa-tests-backend/README.md देखें
त्वरित आरंभ
बिल्ड टूलींग
कोड का परीक्षण और इमेज बनाने के लिए निम्नलिखित उपकरण आवश्यक हैं:
विस्तार करने के लिए क्लिक करें
- Make
- Go
- विभिन्न Go लिंटर्स जिन्हें
make reinstall-dev-toolsका उपयोग करके स्थापित किया जा सकता है। - ui/README.md में निर्दिष्ट UI बिल्ड टूलींग।
- Docker
- नोट: Docker Desktop अब बड़ी, उद्यम कंपनियों के लिए भुगतान सदस्यता की आवश्यकता रखता है।
- कुछ StackRox डेवलपर्स Colima की सलाह देते हैं
- Xcode कमांड लाइन उपकरण (केवल macOS)
- Bats का उपयोग कुछ शेल परीक्षण चलाने के लिए किया जाता है।
आप इसे
brew install batsयाnpm install -g batsसे प्राप्त कर सकते हैं। - oc OpenShift CLI उपकरण
- शेल स्क्रिप्ट लिंटिंग के लिए shellcheck।
Xcode - केवल macOS
आमतौर पर आपके पास ये brew द्वारा पहले से स्थापित होंगे। हालांकि, यदि golang x/tools बनाते समय कोई त्रुटि आती है, पहले सुनिश्चित करने का प्रयास करें कि EULA से सहमति हो गई है:
- Xcode प्रारंभ करें
- एक नया खाली ऐप प्रोजेक्ट बनाएं
- एमुलेटर में खाली प्रोजेक्ट ऐप प्रारंभ करें
- एमुलेटर और Xcode दोनों बंद करें, फिर
- निम्नलिखित कमांड चलाएँ: ```bash xcode-select --install sudo xcode-select --switch /Library/Developer/CommandLineTools # Enable command line tools sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
अधिक जानकारी के लिए, देखें <https://github.com/nodejs/node-gyp/issues/569>
</details>
#### स्टैकरॉक्स क्लोन करें
<details><summary>विस्तार करने के लिए क्लिक करें</summary>```bash
# Create a GOPATH: this is the location of your Go "workspace".
# (Note that it is not – and must not – be the same as the path Go is installed to.)
# The default is to have it in ~/go/, or ~/development, but anything you prefer goes.
# Whatever you decide, create the directory, set GOPATH, and update PATH:
export GOPATH=$HOME/go # Change this if you choose to use a different workspace.
export PATH=$PATH:$GOPATH/bin
# You probably want to permanently set these by adding the following commands to your shell
# configuration (e.g. ~/.bash_profile)
cd $GOPATH
mkdir -p bin pkg
mkdir -p src/github.com/stackrox
cd src/github.com/stackrox
git clone [email protected]:stackrox/stackrox.git
स्थानीय विकास
विस्तार करने के लिए क्लिक करें
अपने अनुभव को बेहतर बनाने के लिए, पहले वर्कफ़्लो स्क्रिप्ट्स इंस्टॉल करें।```bash $ cd $GOPATH/src/github.com/stackrox/stackrox $ make install-dev-tools $ make image
अब, आगे बढ़ने से पहले आपको स्वयं एक Kubernetes क्लस्टर *तैयार करना* होगा।
विकास या तो GCP में या स्थानीय रूप से
[Docker Desktop](https://docs.docker.com/desktop/kubernetes/), [Colima](https://github.com/abiosoft/colima#kubernetes), [minikube](https://minikube.sigs.k8s.io/docs/start/) के साथ किया जा सकता है।
> **नोट:**
> Docker Desktop और Colima macOS विकास के लिए अधिक उपयुक्त हैं, क्योंकि क्लस्टर के पास अतिरिक्त कॉन्फ़िगरेशन के बिना स्थानीय रूप से `make image` के साथ निर्मित इमेज तक पहुंच होगी। इसके अलावा, Collector का इनके लिए minikube की तुलना में बेहतर समर्थन है, जहां ड्राइवर उपलब्ध नहीं हो सकते हैं।```bash
# To keep the StackRox Central's Postgres DB state between database upgrades and restarts, set:
$ export STORAGE=pvc
# To save time on rebuilds by skipping UI builds, set:
$ export SKIP_UI_BUILD=1
# To save time on rebuilds by skipping CLI builds, set:
$ export SKIP_CLI_BUILD=1
# When you deploy locally make sure your kube context points to the desired kubernetes cluster,
# for example Docker Desktop.
# To check the current context you can call a workflow script:
$ roxkubectx
# To deploy locally, call:
$ ./deploy/deploy-local.sh
# Now you can access StackRox dashboard at https://localhost:8000
# or simply call another workflow script:
$ logmein
और अधिक पढ़ने के लिए स्क्रिप्ट के माध्यम से स्थापना देखें। पर्यावरण चर के बारे में अधिक जानकारी के लिए, deploy/README.md देखें।
सामान्य Makefile Targets
विस्तार करने के लिए क्लिक करें
```bash # Build image, this will create `stackrox/main` with a tag defined by `make tag`. $ make imageCompile all binaries
$ make main-build-dockerized
Displays the docker image tag which would be generated
$ make tag
Note: there are integration tests in some components, and we currently
run those manually. They will be re-enabled at some point.
$ make test
Apply and check style standards in Go and JavaScript
$ make style
enable pre-commit hooks for style checks
$ make init-githooks
Compile and restart only central
$ make fast-central
Compile only sensor
$ make fast-sensor
Only compile protobuf
$ make proto-generated-srcs
</details>
#### उत्पादकता
<details><summary>विस्तार करने के लिए क्लिक करें</summary>
[वर्कफ्लो रिपॉजिटरी](https://github.com/stackrox/workflow) में कुछ सहायक स्क्रिप्ट्स हैं
जो हमारे विकास कार्यप्रवाह का समर्थन करती हैं। `roxhelp --list-all` के साथ और कमांड्स जानें।```bash
# Change directory to rox root
$ cdrox
# Handy curl shortcut for your StackRox central instance
# Uses https://localhost:8000 by default or ROX_BASE_URL env variable
# Also uses the admin credentials from your last deployment via deploy.sh
$ roxcurl /v1/metadata
# Run quickstyle checks, faster than stackrox's "make style"
$ quickstyle
# The workflow repository includes some tools for supporting
# working with multiple inter-dependent branches.
# Examples:
$ smart-branch <branch-name> # create new branch
... work on branch...
$ smart-rebase # rebase from parent branch
... continue working on branch...
$ smart-diff # check diff relative to parent branch
... git push, etc.
GoLand कॉन्फ़िगरेशन
विस्तार करने के लिए क्लिक करें
यदि आप विकास के लिए GoLand का उपयोग कर रहे हैं, तो निम्नलिखित अनुभव को बेहतर बनाने में मदद कर सकता है।
सुनिश्चित करें कि Protocol Buffers प्लगइन स्थापित है। प्लगइन GoLand में डिफ़ॉल्ट रूप से स्थापित आता है। यदि नहीं, तो Help | Find Action... का उपयोग करें, Plugins टाइप करें और एंटर दबाएं, फिर Marketplace पर स्विच करें, इसका नाम टाइप करें और प्लगइन स्थापित करें।
यह प्लगइन GoLand में डिफ़ॉल्ट रूप से .proto आयातों के लिए कहां देखना है, यह नहीं जानता है, इसलिए आपको इस प्लगइन के लिए पथों को स्पष्ट रूप से कॉन्फ़िगर करने की आवश्यकता है। https://github.com/jvolkman/intellij-protobuf-editor#path-settings देखें।
GoLand | Preferences | Languages & Frameworks | Protocol Buffersपर जाएं।Configure automaticallyको अनचेक करें।+बटन पर क्लिक करें, नेविगेट करें और रेपो के रूट में./protoनिर्देशिका चुनें।- वैकल्पिक रूप से,
$HOME/go/pkg/mod/github.com/gogo/[email protected]और$HOME/go/pkg/mod/github.com/gogo/[email protected]/भी जोड़ें। - सत्यापित करने के लिए: मेनू
Navigate | File...का उपयोग करें, कोई भी.protoफ़ाइल नाम टाइप करें, जैसेalert_service.proto, और जांचें कि सभी आयात स्ट्रिंग हरे रंग में दिखाई दे रहे हैं, लाल नहीं।
sql_integration परीक्षण चलाना
विस्तार करने के लिए क्लिक करें
//go:build sql_integration से एनोटेट किए गए Go परीक्षणों के लिए पोर्ट 5432 पर सुनने वाले PostgreSQL सर्वर की आवश्यकता होती है। कोड में प्रमाणीकरण कैसे सेट किया गया है, इसके कारण, इस तरह एक कंटेनर में Postgres शुरू करना सबसे आसान है:```bash
$ docker run --rm --env POSTGRES_USER="$USER" --env POSTGRES_HOST_AUTH_METHOD=trust --publish 5432:5432 docker.io/library/postgres:15
पृष्ठभूमि में वह चलने के साथ, `sql_integration` परीक्षणों को IDE या कमांड-लाइन से ट्रिगर किया जा सकता है।
</details>
#### डिबगिंग
<details><summary>विस्तार करने के लिए क्लिक करें</summary>
**Kubernetes डिबगर सेटअप**
GoLand के साथ, आप IDE में यूनिट टेस्ट चलाते समय स्वाभाविक रूप से ब्रेकपॉइंट और डिबगर का उपयोग कर सकते हैं।
यदि आप स्थानीय या रिमोट डिप्लॉयमेंट को डिबग करना चाहते हैं, तो नीचे दी गई प्रक्रिया का पालन करें।
1. `DEBUG_BUILD=yes` निर्यात करके स्थानीय रूप से डिबग बिल्ड बनाएं: ```bash
$ DEBUG_BUILD=yes make image
वैकल्पिक रूप से, डीबग बिल्ड तब भी बनाया जाएगा जब शाखा के नाम में -debug सबस्ट्रिंग हो। यह make image के साथ स्थानीय रूप से और CI में काम करता है।
2. इस README फ़ाइल के निर्देशों का उपयोग करके इमेज को डिप्लॉय करें। यह deploy-local.sh और deploy.sh दोनों के साथ काम करता है।
3. workflow रिपॉजिटरी से roxdebug कमांड का उपयोग करके लक्ष्य पॉड में डीबगर (और पोर्ट फ़ॉरवर्डिंग) शुरू करें। ```bash
For Central
$ roxdebug
For Sensor
$ roxdebug deploy/sensor
See usage help
$ roxdebug --help
4. रिमोट डिबगिंग के लिए GoLand कॉन्फ़िगर करें (केवल एक बार किया जाना चाहिए):
1. `Run | Edit Configurations …` खोलें, नया कॉन्फ़िगरेशन जोड़ने के लिए `+` आइकन पर क्लिक करें, `Go Remote` टेम्पलेट चुनें।
2. `Host:` `localhost` और `Port:` `40000` चुनें। इस कॉन्फ़िगरेशन को कुछ नाम दें।
3. `On disconnect:` `Leave it running` चुनें (यह GoLand को पुनः कनेक्ट होने पर ब्रेकपॉइंट भूलने से रोकता है)।
5. GoLand को डिबगिंग पोर्ट से अटैच करें: `Run | Debug…` चुनें और आपके द्वारा बनाए गए कॉन्फ़िगरेशन को चुनें।
यदि सब कुछ सही है, तो आपको स्क्रीन के निचले भाग में `Debug | Debugger | Variables` विंडो में `Connected` संदेश दिखना चाहिए।
6. कुछ कोड ब्रेकपॉइंट सेट करें, संबंधित क्रियाएं ट्रिगर करें और हैप्पी डिबगिंग!
अधिक जानकारी के लिए [Kubernetes में चल रहे go कोड को डिबग करना](https://github.com/stackrox/dev-docs/blob/main/docs/knowledge-base/%5BBE%5D%20Debugging-go-code-running-in-Kubernetes.md) देखें।
</details>
## पोर्टेबल इंस्टॉलर बनाना
<details><summary>Kubernetes</summary>```bash
docker run -i --rm quay.io/stackrox-io/main:<tag> central generate interactive > k8s.zip
यह आपको एक इंस्टॉलर के माध्यम से चलाएगा और एक k8s.zip फ़ाइल उत्पन्न करेगा।```bash
unzip k8s.zip -d k8s
## ████ ██ ████
**████████ ████████ ████████** ████.```bash
bash k8s/central.sh
अब Central तैनात हो चुका है। Sensor को तैनात करने के लिए UI का उपयोग करें।
OpenShift
नोट: यदि होस्ट माउंट का उपयोग कर रहे हैं, तो आपको
sudo chcon -Rt svirt_sandbox_file_t <पूर्ण वॉल्यूम पथ>का उपयोग करके कंटेनर को इसे एक्सेस करने की अनुमति देनी होगी।
इस रिपॉजिटरी से image-setup.sh स्क्रिप्ट लें और इसे स्थानीय OpenShift रजिस्ट्री में पुल/पुश करने के लिए चलाएँ। यह प्रत्येक नए क्लस्टर के लिए एक आवश्यक शर्त है।```bash bash image-setup.sh
मेमोरी छेड़छाड़ तकनीक किसी ब्लूप्रिंट को ऐसी अवस्था में 'फ्रीज' कर देती है जिसमें वह अद्वितीय नहीं रहता, जिससे उसके द्वारा वर्णित वस्तु 'क्राफ्ट-अयोग्य' हो जाती है। यह तकनीक मेमोरी निरूपण को स्थायी रूप से बदल देती है, ताकि किसी वस्तु को भाग से बनाने के बजाय, टेम्पलेट द्वारा वर्णित भाग को बनाया जाए।
## अन्य
इस रिपॉजिटरी में शामिल न होने वाली अन्य उपयोगी स्क्रिप्ट के लिए [स्क्रिप्ट्स](https://github.com/nicedouble/Toast/tree/master/misc) डायरेक्टरी देखें।
## लाइसेंस
कॉपीराइट [2021] [जीटी, इंक.]
अपाचे लाइसेंस, संस्करण 2.0 ("लाइसेंस") के तहत लाइसेंस प्राप्त; आप इस फ़ाइल का उपयोग केवल लाइसेंस के अनुपालन में ही कर सकते हैं। आप लाइसेंस की एक प्रति यहाँ प्राप्त कर सकते हैं:
http://www.apache.org/licenses/LICENSE-2.0
जब तक लागू कानून द्वारा आवश्यक न हो या लिखित रूप में सहमति न हो, लाइसेंस के तहत वितरित सॉफ़्टवेयर "जैसा है" के आधार पर वितरित किया जाता है, बिना किसी प्रकार की, या तो अभिव्यक्त या निहित, वारंटियों या शर्तों के। लाइसेंस के तहत अनुमतियाँ और सीमाएँ जानने के लिए विशिष्ट भाषा देखें।
docker run -i --rm quay.io/stackrox-io/main:<tag> central generate interactive > openshift.zip
```
यह आपको एक इंस्टॉलर के माध्यम से ले जाएगा और एक `openshift.zip` फ़ाइल उत्पन्न करेगा।```bash
unzip openshift.zip -d openshift
```
- यह जटिल, बहु-चरणीय अंतःक्रियाओं का मॉडलिंग करता है और सूक्ष्म प्रोटोकॉल भिन्नताओं और अनुरोध/प्रतिक्रिया सहसंबंधों को ट्रैक करता है।
- खोजे गए प्रवाहों को एक इंटरैक्टिव GUI में प्रदर्शित किया जाता है जो प्रवाह संरचना को विज़ुअलाइज़ करता है।
## 📖 विषय-सूची
- [🛠️ इंस्टॉलेशन](#%EF%B8%8F-installation)
- [🐳 डॉकर](#-docker)
- [💻 मैनुअल](#-manual)
- [🚀 उपयोग उदाहरण](#-usage-examples)
- [स्थानीय बिल्ड](#local-builds)
- [डॉकर](#docker)
- [📘 शब्दावली](#-glossary)
- [🗺️ फीचर रोडमैप](#%EF%B8%8F-feature-roadmap)
- [👥 योगदान](#-contributing)
- [📧 संपर्क](#-contact)
- [⚖️ लाइसेंस](#%EF%B8%8F-license)```bash
bash openshift/central.sh
```
</details>
## StackRox चलाने के लिए निर्भरताएँ और सिफारिशें
<details><summary>विस्तार करने के लिए क्लिक करें</summary>
निम्नलिखित जानकारी ओपन सोर्स StackRox प्रोजेक्ट की स्थापना और संचालन में सहायता के लिए एकत्र की गई है। ये सिफारिशें [Red Hat Advanced Cluster Security for Kubernetes](https://www.redhat.com/en/resources/advanced-cluster-security-for-kubernetes-datasheet) उत्पाद के लिए विकसित की गई थीं और अपस्ट्रीम StackRox प्रोजेक्ट के साथ परीक्षण नहीं किया गया है।
**अनुशंसित Kubernetes वितरण**
वे Kubernetes प्लेटफ़ॉर्म जिन पर StackRox को न्यूनतम समस्याओं के साथ तैनात किया गया है, नीचे सूचीबद्ध हैं।
- Red Hat OpenShift Dedicated (OSD)
- Azure Red Hat OpenShift (ARO)
- Red Hat OpenShift Service on AWS (ROSA)
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Microsoft Azure Kubernetes Service (AKS)
यदि आप ऊपर सूचीबद्ध Kubernetes वितरणों के अलावा किसी अन्य में तैनाती करते हैं, तो आपको समस्याओं का सामना करना पड़ सकता है।
**अनुशंसित ऑपरेटिंग सिस्टम**
StackRox निम्नलिखित ऑपरेटिंग सिस्टमों के हाल के संस्करणों पर काम करने के लिए जाना जाता है।
- Ubuntu
- Debian
- Red Hat Enterprise Linux (RHEL)
- CentOS
- Fedora CoreOS
- Flatcar Container Linux
- Google COS
- Amazon Linux
- Garden Linux
**अनुशंसित वेब ब्राउज़र**
निम्नलिखित तालिका उन ब्राउज़रों को सूचीबद्ध करती है जो StackRox वेब उपयोगकर्ता इंटरफ़ेस देख सकते हैं।
- Google Chrome 88.0 (64-bit)
- Microsoft Internet Explorer Edge
- संस्करण 44 और बाद के (Windows)
- संस्करण 81 (आधिकारिक बिल्ड) (64-बिट)
- MacOS (Mojave) पर Safari - Version 14.0
- Mozilla Firefox Version 82.0.2 (64-bit)
</details>
---