
# काली क्लाउड इमेज बनाने के लिए स्क्रिप्ट्स (https://salsa.debian.org/cloud-team/debian-cloud-images का फोर्क)
FAI (Fully Automatic Installation) के माध्यम से Kali Linux क्लाउड इमेज बिल्डर, Debian Cloud Images से फोर्क किया गया।
ये वही बिल्ड-स्क्रिप्ट्स हैं जिनका उपयोग Kali टीम आधिकारिक Kali Linux क्लाउड इमेज बनाने के लिए करती है, जो kali.org/get-kali/ पर उपलब्ध हैं।
अधिक जानकारी के लिए, कृपया देखें: kali.org/docs/cloud/ तथा kali.org/docs/troubleshooting/common-cloud-setup/।
अपना Kali आज ही बनाएं!
हम Linux-आधारित होस्ट पर बिल्ड करने की सलाह देते हैं, जो वांछित आर्किटेक्चर से मेल खाता हो।
kali-cloud बिल्ड-स्क्रिप्ट का उपयोग करने के लिए तैयार होने के कई तरीके हैं। आप या तो:
build.sh - सीधे अपनी मशीन से बिल्ड करेंbuild-in-container.sh - कंटेनर के भीतर से बिल्ड करें (जैसे Docker या Podman) build.sh के काम करने के लिए, इसके लिए सुपर यूज़र एक्सेस आवश्यक होगा (जैसे sudo या एक rootful कंटेनर)। हालाँकि, KVM की आवश्यकता नहीं है।
पहले git इंस्टॉल करें, और सुनिश्चित करें कि रिपॉज़िटरी स्थानीय रूप से क्लोन की गई है:
$ sudo apt-get install --no-install-recommends \
git ca-certificates
$ git clone https://gitlab.com/kalilinux/build-scripts/kali-cloud.git
$ cd ./kali-cloud/
build.sh के साथ सीधे अपने होस्ट पर बिल्ड करने के लिए, बिल्ड निर्भरताएँ इंस्टॉल करें:
$ sudo apt-get install --no-install-recommends \
python3-minimal libpython3-stdlib python3-yaml python3-libcloud python3-marshmallow python3-httpx python3-pytest \
fai-server fai-setup-storage \
sudo \
qemu-utils qemu-user-binfmt \
fdisk \
udev \
dosfstools \
apt-utils \
debsums
नोट: OS संस्करण की आयु के आधार पर, आपको qemu-user-binfmt (आधुनिक/वर्तमान/अद्यतित) के बजाय qemu-user-static (विरासत) का उपयोग करने की आवश्यकता हो सकती है।
नोट: qemu-user-static/qemu-user-binfmt केवल तब आवश्यक है जब आप क्रॉस-आर्किटेक्चर बिल्ड कर रहे हों (जैसे amd64 होस्ट, arm64 इमेज बिल्ड करना)।
अब आप ./build.sh का उपयोग कर सकते हैं, जो सीधे आपकी मशीन पर एक Kali क्लाउड इमेज बिल्ड करेगा।
यदि आप बेस OS के रूप में Kali का उपयोग नहीं कर रहे हैं, तो आपको Kali का kali-archive-keyring इंस्टॉल करना होगा ताकि fai Kali के पैकेज फ़ेच कर सके।
$ sudo apt-get install --no-install-recommends \
wget ca-certificates
$ wget https://http.kali.org/pool/main/k/kali-archive-keyring/kali-archive-keyring_20YY.X_all.deb
$ sudo apt-get install ./kali-archive-keyring_*_all.deb
नोट: 20YY.X को यहाँ, kali-archive-keyring में दिखाए गए मानों से बदलें।
अब आप बिल्ड निर्भरताएँ इंस्टॉल करने के लिए होस्ट से बिल्ड करें (Kali) का पालन कर सकते हैं।
हम किसी भी कंटेनर सॉफ़्टवेयर को सेट अप करने को छोड़ देंगे।
यदि आप कंटेनर के भीतर से बिल्ड करना पसंद करते हैं, तो आपको अपनी मशीन पर docker या podman इंस्टॉल और कॉन्फ़िगर करना होगा।
docker के लिए उपयोगकर्ता को Docker समूह में जोड़ा जाना चाहिए, या root खाते का उपयोग करना चाहिए (जैसे $ sudo ./build-in-container.sh)।podman का परीक्षण rootful के साथ किया गया है (जैसे $ sudo ./build-in-container.sh)। यदि rootless चलाया जाता है, तो build-in-container.sh sudo के माध्यम से स्वयं को एलिवेट करने का प्रयास करेगा, या podman machine को rootful के रूप में पुनः कॉन्फ़िगर करने पर वापस आ जाएगा, देखें ज्ञात सीमाएँ।build-in-container.sh build.sh के ऊपर एक रैपर है। यह पता लगाता है कि किस OCI-अनुरूप कंटेनर इंजन का उपयोग करना है, यदि अनुपस्थित हो तो कंटेनर इमेज बनाने का ध्यान रखता है, और फिर बिल्ड को भीतर से करने के लिए कंटेनर शुरू करता है।
कंटेनर इमेज प्रदान करने के आपके पास तीन तरीके हैं:
$ # Option #1 - Automated build (recommended)
$ ./build-in-container.sh
$ ./build-in-container.sh --force # If you need to rebuild the image from scratch
$
$
$
$ # Option #2 - Manual build
$ docker build -t kali-build/kali-cloud .
$ # ...OR...
$ podman build -t kali-build/kali-cloud .
$
$
$
$ # Option #3 - Use the pre-generated
$ docker pull registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest
$ docker tag registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest kali-build/kali-cloud
$ # ...OR...
$ podman pull registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest
$ podman tag registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest kali-build/kali-cloud
$
$ # ...then point the build at it:
$ ./build-in-container.sh # Locally built (automated or manual)
$ IMAGE=registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest ./build-in-container.sh # Pre-generated
यदि आपके पास docker और podman दोनों इंस्टॉल हैं, तो build-in-container.sh डिफ़ॉल्ट रूप से podman का उपयोग करेगा। इसे बदलने के लिए, ./build-in-container.sh से पहले CONTAINER=docker लगाएं:
$ CONTAINER=docker ./build-in-container.sh [...]
अब आप इमेज बिल्ड करने के लिए ./build-in-container.sh (न कि ./build.sh) का उपयोग कर सकते हैं।
$ ./build.sh --help
Usage: build.sh [OPTIONS]
Build a Kali Linux Cloud image.
Build options:
-a, --arch ARCH Build an image for this architecture (default: amd64)
Supported: amd64 arm64
-b, --branch BRANCH Kali branch used to build the image (default: kali-rolling)
Supported: kali-rolling kali-dev kali-last-snapshot
-k, --keep Keep intermediary build artifacts
-m, --mirror URL Mirror used to build the image (default: http://http.kali.org/kali)
-o, --output DIR Output directory (default: /home/kali/kali-cloud/output)
-v, --variant VARIANT Cloud platform/target image to build (default: genericcloud)
Supported: genericcloud azure ec2 gce generic nocloud
-x, --version VERSION What to name the image release as (default: rolling)
-z, --zip Compress image after the build
-h, --help Show this help and exit
Cloud options:
-H, --hostname HOSTNAME Set system host name (default: kali)
-P, --packages PKGS Install extra packages (comma/space separated list)
-s, --size SIZE Size of the disk image in GB (default: ...depends on --variant)
-T, --toolset TOOLSET The selection of tools to include in the image (default: default)
Supported: default minimal