# -*- mode: ruby -*- # vi: set ft=ruby : # ============================================================================= # Vagrantfile — VM de test ja4ebpf sur Rocky Linux 9 # # Fournit un environnement kernel complet pour les tests eBPF : # - tracefs / debugfs montés # - perf_kprobe PMU disponible # - uprobes fonctionnels avec accept4 tracepoints # # Prérequis (host Ubuntu) : # sudo apt-get install -y libvirt-daemon-system libvirt-clients qemu-kvm libvirt-dev ruby-dev # vagrant plugin install vagrant-libvirt # sudo usermod -aG libvirt,kvm $USER # puis se reconnecter # # Utilisation : # vagrant up # créer + provisionner (~5 min) # vagrant ssh # connexion SSH # make test-vm-nginx # lancer les tests depuis le host # vagrant destroy -f # détruire la VM # ============================================================================= Vagrant.configure("2") do |config| # ── Box Rocky Linux 9 avec provider libvirt (image qcow2) ───────────────── config.vm.box = "generic/rocky9" # ── Désactiver synced_folder par défaut (utiliser rsync explicitement) ───── config.vm.synced_folder ".", "/vagrant", disabled: true # ── Provider libvirt ─────────────────────────────────────────────────────── config.vm.provider :libvirt do |v| v.cpus = 4 v.memory = 4096 v.nested = false v.cpu_mode = "host-passthrough" # expose les capacités CPU hôte → KVM perf v.driver = "kvm" v.disk_bus = "virtio" v.nic_model_type = "virtio" end # ── Synchronisation du projet via rsync ──────────────────────────────────── config.vm.synced_folder "../..", "/ja4-platform", type: "rsync", rsync__exclude: [".git/", "old/", "*.rpm", "dist/"] # ── Provisioning ─────────────────────────────────────────────────────────── config.vm.provision "shell", path: "provision.sh" # ── Message post-démarrage ───────────────────────────────────────────────── config.vm.post_up_message = <<~MSG VM ja4ebpf prête ! Depuis la racine du projet : make vm-ssh # connexion interactive make test-vm-nginx # test nginx complet (L3/L4 + TLS + L7) make test-vm-all # tous les tests make vm-rebuild-ja4ebpf # resynchroniser + recompiler après modif MSG end