Kali Linux layihəsində Virtual Maşın (VM) qutularının hazırlanması prosesində əhəmiyyətli infrastruktur dəyişikliyi baş verib. Uzun müddət istifadə olunan HashiCorp Packer alətinin yerini indi DebOS tutmaqdadır. Bu keçid sadəlik, səmərəlilik və Kali Vagrant qutularının hazırlanmasında tutarlılıq məqsədi daşıyır.
## Vagrant nədir?
Vagrant faylları, yəni `*.box` genişlənməsinə malik fayllar, əvvəlcədən konfiqurasiya edilmiş Virtual Maşın (VM) şəkilləridir. Bu şəkillər HashiCorp-un Vagrant proqramına idxal edildikdə, istifadəçilərə VM-lərlə birbaşa əmr sətri vasitəsilə qarşılıqlı əlaqə qurmağa imkan verir. Siz terminalı tərk etmədən VM-ləri yarada, işə sala, onlarla əlaqə qura, dayandıra və məhv edə bilərsiniz. Bunu konteynerlərə (Docker/Podman) bənzər bir sistem kimi düşünün, lakin Virtual Maşınlar üçün tətbiq olunur.
## Packer-dən Niyə İmtina Edildi?
Əvvəllər Kali Linux, Vagrant şəkillərini yaratmaq üçün HashiCorp Packer-dən istifadə edirdi. Packer, istənilən hipervizor üzərində işləyən və əməliyyat sisteminin quraşdırılmasını (preseeding vasitəsilə nəzarətsiz quraşdırma), skriptlərin işə salınmasını, VM-in ixracını və sıxılmasını avtomatlaşdıran bir örtük (wrapper) idi.
Packer-in əsas çatışmazlığı isə çarpaz quraşdırmaya imkan verməməsi idi. Başqa sözlə, seçdiyiniz hipervizorun host əməliyyat sistemində quraşdırılması tələb olunurdu. Məsələn, Linux istifadə edərkən Windows Hyper-V üçün VM şəkilləri qura bilməzdiniz. Bu məhdudiyyət infrastrukturun idarə edilməsini çətinləşdirirdi.
## DebOS: Sadəliyin Gücü
Kali komandası bir neçə ildir ki, VM-lərin avtomatik qurulması üçün DebOS-dan istifadə edirdi və bu sistem özünü doğrultmuşdu. Lakin son zamanlar komanda “Niyə eyni məqsəd üçün iki fərqli sistemdən istifadə edirik?” sualını verməyə başladı.
Əslində, bir Vagrant baza qutusu VM yaratmaq üçün tələblər olduqca sadədir:
1. **Sabit İstifadəçi Adı:** `vagrant` olmalıdır.
2. **Sabit/Məlum SSH Açarları:** Defolt (təhlükəsiz olmayan) açar cütləri.
3. **Super İstifadəçi Səlahiyyətləri:** `sudo` əməliyyatlarını yerinə yetirə bilməlidir.
Bu minimalist yanaşma Vagrant-ın VM-ə asanlıqla daxil olmasını təmin edir. İstifadəçi faydaları üçün əlavə tövsiyə olunan elementlər (sabit `vagrant` şifrəsi və SSH sazlamaları) isə artıq Kali-VM qurma skriptimizdə post-quraşdırma addımı kimi həyata keçirilir.
Nəticə etibarı ilə, indi bütün VM-lərimiz (Həm Stok, həm də Vagrant) eyni şəkildə, eyni infrastruktur quruluşunda (yalnız Linux istifadə edərək) avtomatik olaraq qurulur. Bu, idarəetməni maksimum dərəcədə sadələşdirir.
## Hyper-V İlə Bağlı Mühüm Yenilik
Windows 10 1607 / Server 2016-dan bəri, VM-ləri ixrac edərkən `*.vmcx` və `*.vmrs` kimi üç əlavə “ikili” fayl, eləcə də bir `*.xml` faylı daxil edilir. Biz artıq VM-i Hyper-V-dən ixrac etmədiyimiz üçün bu fayllar yox idi. Əvvəlcə dummy ikili fayllar yaratmaq nəzərdən keçirilsə də, bu ideyadan imtina edildi.
Başlanğıcda Vagrant bu ikili faylları gözləyirdi və onlar olmadan uğursuz olurdu. Lakin yuxarı axına edilən dəyişiklik tələbi sayəsində (upstream merge request) bu dəstək əlavə edildi. Bunun nəticəsi olaraq, Kali 2025.2 və ya daha yuxarı versiyasını Windows-da Hyper-V istifadə edərək, **Vagrant v2.4.7-dən köhnə versiyada** işə salmaq MÜMKÜN OLMAYACAQ.
İstifadəçilər ya daha köhnə Kali versiyasından, ya fərqli hipervizordan istifadə etməli, ya da Vagrant proqramını v2.4.8 (5 Avqust 2025-ci il tarixində buraxılıb) və ya daha yüksək versiyaya yüksəltməlidirlər.
## Repozitoriya Dəyişikliyi
Packer artıq Vagrant VM-lərini yaratmadığından, köhnə git repozitoriyası yenidən adlandırıldı: `gitlab.com/kalilinux/build-scripts/kali-vagrant` repozitoriyası indi `gitlab.com/kalilinux/build-scripts/kali-packer` olaraq adlandırılıb. Bu addım Packer-ə həsr olunmuş skriptlərin ömrü başa çatmadan əvvəl onların son dəfə yenilənməsinə imkan verdi. Biz artıq Packer-dən istifadə etməsək də, bu, başqalarının istifadə edə bilməyəcəyi anlamına gəlmir.
## Demo: Kali Vagrant Qutusunu İşə Salmaq
Vagrant və VirtualBox quraşdırıldıqdan sonra:
bash
# Qutunu əlavə edin
$ vagrant box add kalilinux/rolling
Enter your choice: 3 # (virtualbox seçilir)
==> box: Successfully added box ‘kalilinux/rolling’ (v2025.2.1) for ‘virtualbox (amd64)’!
# Qutuların siyahısını yoxlayın
$ vagrant box list
kalilinux/rolling (virtualbox, 2025.2.1, (amd64))
# Yeni iş qovluğu yaradın və ora keçin
$ mkdir -pv vagrant-demo/; cd vagrant-demo/
mkdir: created directory ‘vagrant-demo/’
# Minimal Vagrantfile yaradın
$ vagrant init –force –minimal kalilinux/rolling
# VM-i VirtualBox provayderi ilə işə salın
$ vagrant up –provider virtualbox
# … Uzun quraşdırma və açar dəyişdirmə prosesindən sonra …
==> default: Machine booted and ready!
# SSH ilə VM-ə daxil olun
$ vagrant ssh
┌──(vagrant㉿kali)-[~]
└─$
**Qısa Təlimat (Cheat-Sheet):**
bash
vagrant box add kalilinux/rolling –force –clean –provider virtualbox –box-version 2025.2.1
mkdir -pv kali-vagrant/ && cd $_
vagrant init kalilinux/rolling –force –minimal –output – –box-version 2025.2.1 | tee Vagrantfile
vagrant up –provider virtualbox
vagrant ssh