06/12/2024

Packer -1

packer ihtiyacimiz olan VM (ve belki de Docker) kurulumlarini otomatiklestiren bir sistem. Böylece hardened bir OS Templati olusturup sonrada o templatin deploymentlarini otomatiklestirebiliriz.

Ben daha cok proxmox ile calistigim icin proxmox üzerinden örneklendirecegim ama VMWare den cloud a destegi cok.

Packer sistemininizde yada CICD de bir yerlerde (docker veya worker hostta) kurulmus olmali.

Dokümantasyon önemli cünkü bilgiler burada.

https://developer.hashicorp.com/packer/integrations/hashicorp/proxmox

Proxmox ta iki ihtimal var ya yeni template olusturacagiz yada template i clonlayip calistiracagiz.

Packer da dosya uzantilari convensiyon olark “pkr.hcl

Gerekli degerleri proxmox serverinin kendisinden toplamak gerekiyor.

Api token : Datacenter –> Permissions –> API Tokens

Bu checki kaldir.

Iso location icinde hostun altinda (genelde local) icinde olur.

Pek cok degeri bulacaginiz yer doküman ancak boot command kismi biraz problemli.

# PACKER Boot Commands
    boot_command = [
        "<esc><wait><esc><wait>",
        "<f6><wait><esc><wait>",
        "<bs><bs><bs><bs><bs>",
        "autoinstall ds=nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ ",
        "--- <enter>"
    ]

Simdi burada iki sey önemli. Birincisi bir OS kurulurken bazi komutlari girmek gerekli sirasiyla burada onlar giriliyor aslinda esc wait ..vs.
Sonra Ubuntu nun auto install komutu calistiriliyor.
Burada iste auto install normalde bir adresten web üzerinden bir konfigürasyon cekiyor kendine ve ona göre kuruluyor ancak Packer burada devreye giriyor ve kendisi kücük bir web serveri olusturuyor ve HTTP klasörü icinde koyacagimiz konfigürasyonu sunuyor. Ayrica su( http://{{ .HTTPIP }}:{{ .HTTPPort } ) bilgileri de giriyor ki kurulumda olan sistem konfigürasyonu görsün.

http klasöründe iki tane dosya olmali meta-data (bos olabilir) ve user-data ki bu istedigimiz konfigürasyonu icerecek.