DIABOLIKSS
RehberlerDell Lifecycle Controller ile Otomatik OS Deployment
DELL ALTYAPISI · ileri seviye · 30 dk okuma

Dell Lifecycle Controller ile Otomatik OS DeploymentPXE, HTTP Boot, iDRAC ve Unattended Kurulum

5 Haziran 2026 30 dk okuma PowerEdge 13G–16G Lifecycle Controller 3.x

Dell Lifecycle Controller'ın OS Deployment özelliğini kullanarak bare-metal PowerEdge sunuculara PXE Boot, HTTP Boot ve iDRAC Virtual Media üzerinden tamamen otomatik işletim sistemi kurulumu yapın. Kickstart/Autounattend, driver enjeksiyonu, post-deployment script'leri ve Redfish API tabanlı otomasyon adımlarını içeren production-ready rehber.

01

Lifecycle Controller Mimarisi ve Yetenekleri

Dell Lifecycle Controller (LC), iDRAC ile entegre çalışan ve sunucunun NAND flash belleğinde yaşayan gömülü bir yönetim aracıdır. İşletim sisteminden bağımsız olarak firmware güncellemesi, RAID yapılandırması, ağ ayarı ve işletim sistemi kurulumu yapabilir. Lifecycle Controller 3.x (14G ve sonrası), Redfish API desteği sayesinde tam programatik otomasyon imkânı sunar.

OS Deployment akışı şu bileşenlerden oluşur: iDRAC (orkestrasyon), Lifecycle Controller (boot image yönetimi), OEMDRV sürücü depolaması ve Virtual Media (ISO mount). Modern ortamlarda HTTP Boot tercih edilir çünkü TFTP'nin 64KB paket boyutu sınırı yoktur ve HTTPS ile şifreli taşıma sağlanır.

🚀
PXE Boot
Klasik ağ kurulumu
DHCP + TFTP + NFS/HTTP
🌐
HTTP Boot
UEFI HTTP(S) boot
14G+ UEFI firmware
💿
Virtual Media
iDRAC ISO mount
NFS / CIFS / HTTP
Redfish API
Tam otomasyon
Zero-touch deployment
// Deployment Akışı
iDRAC9Orkestrasyon
Lifecycle ControllerBoot yönetimi
PXE / HTTPBoot ortamı
Kickstart/AutounattendUnattended config
Driver EnjeksiyonuDUP + OEMDRV
OS Kurulum TamamlandıPost-deploy scripts
02

Ön Gereksinimler ve Altyapı Hazırlığı

OS Deployment pipeline'ı kurulmadan önce ağ altyapısının, DHCP yapılandırmasının ve depolama sunucularının hazır olması gerekir. PXE deployment için DHCP sunucusunda option 66 (TFTP sunucu IP) ve option 67 (boot dosyası adı) tanımlanmalıdır. HTTP Boot için ise DHCP option 60 ile sınıf tanımlaması ve HTTP URL konfigürasyonu yapılır.

Dell, OS deployment için Dell EMC OpenManage Deployment Toolkit (DTK) ve Dell Repository Manager (DRM) araçlarını sunar. DTK, scripted deployment için gerekli araçları içerirken, DRM yerel bir firmware/driver deposu oluşturmanızı sağlar. Bu araçlar production ortamında internet bağlantısı olmayan (air-gapped) kurulumlar için kritik öneme sahiptir.

# iDRAC'ın Lifecycle Controller sürümünü kontrol et racadm -r <idrac-ip> -u root -p <password> getversion -t lc # LC durumunu sorgula (Ready olması gerekir) racadm -r <idrac-ip> -u root -p <password> get LifecycleController.LCAttributes.LifecycleControllerState # Ağ arayüzlerini listele (deployment için kullanılacak NIC) racadm -r <idrac-ip> -u root -p <password> get NIC.NICConfig
# DHCP sunucusunda PXE seçenekleri (ISC DHCP örneği) # /etc/dhcp/dhcpd.conf subnet 10.10.0.0 netmask 255.255.255.0 { range 10.10.0.100 10.10.0.200; option routers 10.10.0.1; option domain-name-servers 10.10.0.1; # PXE Boot için TFTP next-server 10.10.0.50; filename "pxelinux.0"; # UEFI HTTP Boot için if option arch = 00:07 { filename "http://10.10.0.50/efi/boot/grubx64.efi"; } }
03

PXE Boot Ortamı Kurulumu ve Yapılandırma

Geleneksel PXE deployment, TFTP üzerinden küçük bir boot image transfer edip ardından NFS veya HTTP üzerinden kurulum reposunu mount eder. Dell PowerEdge için UEFI PXE desteklenmekte olup eski BIOS-compat (MBR) PXE'den önemli ölçüde daha güvenilirdir. UEFI PXE için grubx64.efi veya shim.efi (Secure Boot ile uyumlu) kullanılır.

TFTP sunucusu olarak dnsmasq veya tftpd-hpa kullanılabilir. Dnsmasq, hem DHCP proxy hem de TFTP sunucusu olarak çalışabildiği için küçük ve orta ölçekli ortamlarda tercih edilir. Büyük ölçekli deployment için Cobbler veya Foreman + The Foreman kurulumu önerilir.

# dnsmasq ile TFTP + PXE ortamı kurulumu (Ubuntu/Debian) apt-get install -y dnsmasq syslinux-common pxelinux # TFTP root dizinini oluştur mkdir -p /srv/tftp/pxelinux.cfg mkdir -p /srv/tftp/efi64 # UEFI boot dosyalarını kopyala cp /usr/lib/shim/shimx64.efi.signed /srv/tftp/efi64/shimx64.efi cp /usr/lib/grub/x86_64-efi/grubx64.efi /srv/tftp/efi64/ # dnsmasq TFTP yapılandırması cat > /etc/dnsmasq.d/pxe.conf <<'EOF' interface=eth0 dhcp-range=10.10.0.100,10.10.0.200,12h dhcp-boot=efi64/shimx64.efi enable-tftp tftp-root=/srv/tftp EOF systemctl restart dnsmasq
# GRUB2 PXE menüsü oluştur (/srv/tftp/efi64/grub.cfg) set default=0 set timeout=10 menuentry "Dell PowerEdge - RHEL 9 Kurulum" { linuxefi /images/rhel9/vmlinuz \ inst.ks=http://10.10.0.50/ks/dell-rhel9.cfg \ inst.repo=http://10.10.0.50/repos/rhel9 \ ip=dhcp quiet initrdefi /images/rhel9/initrd.img } menuentry "Dell PowerEdge - Ubuntu 22.04 Kurulum" { linuxefi /images/ubuntu2204/vmlinuz \ autoinstall \ ds=nocloud-net;s=http://10.10.0.50/cloud-init/dell/ \ ip=dhcp quiet initrdefi /images/ubuntu2204/initrd } # Kurulum dosyalarını TFTP dizinine yerleştir mkdir -p /srv/tftp/images/rhel9 mount -o loop /mnt/iso/rhel-9.x-x86_64-dvd.iso /mnt/rhel9 cp /mnt/rhel9/images/pxeboot/vmlinuz /srv/tftp/images/rhel9/ cp /mnt/rhel9/images/pxeboot/initrd.img /srv/tftp/images/rhel9/
ℹ️
Dell PowerEdge 14G ve üstünde iDRAC, UEFI HTTP Boot'u yerel olarak destekler. Bu nedenle büyük ortamlarda PXE yerine HTTP Boot kullanmak daha güvenilir ve ölçeklenebilir bir seçenek sunar.
04

HTTP Boot ile UEFI Tabanlı Kurulum

UEFI HTTP Boot, DHCP sunucusundan aldığı HTTP(S) URL'si üzerinden doğrudan bir EFI uygulamasını indirir ve çalıştırır. TFTP'ye kıyasla çok daha yüksek bant genişliği sunar ve HTTPS ile şifreli taşıma desteği sağlar. Dell PowerEdge 14G ve üzerinde iDRAC, HTTP Boot URL'yi doğrudan Redfish API üzerinden yapılandırmanıza olanak tanır.

HTTP Boot, virtual media alternatifi olarak da kurgulanabilir: iDRAC'a bir HTTP URL vererek ISO image'ı sanal sürücü olarak bağlamanız mümkündür. Bu yaklaşım, özellikle coğrafi olarak dağıtık veri merkezlerinde ISO dağıtımı için idealdir çünkü sunucuya fiziksel erişim gerektirmez.

# HTTP Boot URL'yi iDRAC üzerinden ayarla racadm -r <idrac-ip> -u root -p <password> \ set iDRAC.VirtualMedia.BootOnce Enabled # HTTP üzerinden ISO'yu sanal medya olarak bağla racadm -r <idrac-ip> -u root -p <password> \ remoteimage -c -u http://10.10.0.50/isos/rhel-9.x-x86_64-dvd.iso # Bir sonraki boot'ta Virtual CD'den başlat racadm -r <idrac-ip> -u root -p <password> \ set iDRAC.ServerBoot.FirstBootDevice VCD-DVD # Sunucuyu yeniden başlat racadm -r <idrac-ip> -u root -p <password> \ serveraction powercycle
# Redfish ile HTTP Virtual Media bağlama curl -s -k -u root:<password> \ -X POST \ -H "Content-Type: application/json" \ -d '{ "Image": "http://10.10.0.50/isos/rhel-9.x-x86_64-dvd.iso", "Oem": { "Dell": { "DellManager": { "BootOnce": "Enabled", "ConnectStatus": "Connected" } } } }' \ "https://<idrac-ip>/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.InsertMedia" # Boot override - bir sonraki boot sanal CD'den curl -s -k -u root:<password> \ -X PATCH \ -H "Content-Type: application/json" \ -d '{"Boot":{"BootSourceOverrideTarget":"Cd","BootSourceOverrideEnabled":"Once"}}' \ "https://<idrac-ip>/redfish/v1/Systems/System.Embedded.1"
05

Unattended Kurulum Dosyaları: Kickstart ve cloud-init

Unattended (gözetimsiz) kurulum, insan müdahalesi olmaksızın tam işletim sistemi kurulumu yapılmasını sağlar. RHEL/CentOS/Rocky Linux için Kickstart, Ubuntu/Debian için cloud-init autoinstall ve Windows Server için Autounattend.xml dosyaları kullanılır. Bu dosyalar disk bölümlendirme, kullanıcı oluşturma, paket seçimi ve post-install script'lerini tanımlar.

Dell ortamları için Kickstart dosyasına özel dikkat edilmesi gereken noktalar: PERC RAID controller algılanması için gerekli kernel parametreleri, iDRAC iSM (iDRAC Service Module) kurulumu ve OpenManage Server Administrator (OMSA) paketlerinin kurulumu.

# Dell PowerEdge için RHEL 9 Kickstart örneği # /var/www/html/ks/dell-rhel9.cfg #version=RHEL9 text lang tr_TR.UTF-8 keyboard tr timezone Europe/Istanbul --utc # Ağ yapılandırması network --bootproto=dhcp --device=link --activate # Disk - PERC RAID controller üzerinde sanal disk ignoredisk --only-use=sda clearpart --none --initlabel zerombr # UEFI boot için GPT + EFI partition part /boot/efi --fstype=efi --size=600 --fsoptions="umask=0077" part /boot --fstype=xfs --size=1024 part pv.01 --fstype=lvmpv --size=1 --grow volgroup vg_root pv.01 logvol / --vgname=vg_root --name=lv_root --fstype=xfs --size=20480 logvol /var --vgname=vg_root --name=lv_var --fstype=xfs --size=10240 logvol swap --vgname=vg_root --name=lv_swap --fstype=swap --size=4096 # Paketler %packages @base @core open-vm-tools %end # Post-install: iDRAC iSM kurulumu %post --log=/root/ks-post.log curl -o /tmp/iSM.rpm http://10.10.0.50/dell-tools/iDRACSvcMod-4.x.rpm rpm -ivh /tmp/iSM.rpm systemctl enable dcismeng.service %end
# Ubuntu 22.04 cloud-init autoinstall örneği # /var/www/html/cloud-init/dell/user-data #cloud-config autoinstall: version: 1 locale: tr_TR.UTF-8 keyboard: layout: tr network: network: version: 2 ethernets: any: match: name: "en*" dhcp4: true storage: layout: name: lvm user-data: hostname: dell-server users: - name: sysadmin groups: sudo sudo: ALL=(ALL) NOPASSWD:ALL ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2E... admin@company.com late-commands: - curl -o /target/tmp/omsa.deb http://10.10.0.50/dell-tools/srvadmin-all.deb - curtin in-target -- dpkg -i /tmp/omsa.deb
06

Driver Enjeksiyonu ve Dell Update Package (DUP)

Dell PowerEdge sunucular, özellikle yeni nesil (15G-16G) modellerde, bazı storage controller ve NIC sürücülerinin kurulum medyasında yer almadığı durumlarla karşılaşılabilir. Bu durumda sürücülerin kurulum ortamına önceden enjekte edilmesi (driver injection) gerekir. RHEL için bu işlem mkksiso veya lorax araçları ile yapılırken Ubuntu için squashfs güncelleme yaklaşımı kullanılır.

Dell Update Package (DUP), firmware ve sürücü güncellemelerini tek bir paket olarak sunar. Lifecycle Controller üzerinden DUP uygulamak, işletim sistemi içinde güncelleme çalıştırmaktan daha güvenlidir çünkü LC, DUP'u ayrı bir önyükleme ortamında çalıştırır ve yarıda kalan güncelleme durumlarını otomatik kurtarır.

# RHEL 9 kurulum ISO'suna PERC sürücüsü enjekte etme # Gerekli araçları kur dnf install -y lorax isomd5sum # ISO'yu aç mkdir -p /mnt/iso /mnt/work mount -o loop rhel-9.x-x86_64-dvd.iso /mnt/iso cp -a /mnt/iso /mnt/work/rhel9-custom/ # Driver RPM'i driver disk dizinine ekle mkdir -p /mnt/work/rhel9-custom/DD cp kmod-megaraid_sas-*.rpm /mnt/work/rhel9-custom/DD/ # Kickstart dosyasına sürücü disk referansı ekle # inst.dd=hd:LABEL=DD:/dd.rpm parametresi boot satırına eklenir # Özel ISO oluştur mkisofs -o rhel9-dell-custom.iso \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -eltorito-alt-boot -e images/efiboot.img -no-emul-boot \ -R -J -T /mnt/work/rhel9-custom/
# Lifecycle Controller üzerinden DUP ile firmware güncelleme # iDRAC HTTPS üzerinden DUP dosyasını sunucuya aktar ve job oluştur racadm -r <idrac-ip> -u root -p <password> \ update -f BIOS_XXXX_WN64_2.x.x.EXE -e LC # Güncelleme job'unu izle racadm -r <idrac-ip> -u root -p <password> jobqueue view # Redfish ile DUP güncelleme paketi yükleme curl -s -k -u root:<password> \ -X POST \ -H "Content-Type: multipart/form-data" \ -F "file=@BIOS_XXXX_LN64_2.x.x.BIN" \ "https://<idrac-ip>/redfish/v1/UpdateService/MultipartUpload"
⚠️
DUP Sırası: Firmware güncellemelerinde sıra önemlidir. Önce iDRAC firmware, ardından BIOS, son olarak storage controller ve NIC güncellemesi yapın. Ters sıra ile güncelleme uyumsuzluk sorunlarına yol açabilir.
07

Redfish API ile Sıfır Dokunuşlu (Zero-Touch) Deployment

Zero-touch deployment, bir sunucunun rack'e takılmasından itibaren hiçbir insan müdahalesi olmaksızın işletim sisteminin kurulmasını hedefler. Dell bu senaryoyu iDRAC Auto Config ve Redfish Boot Override kombinasyonuyla destekler. Sunucu ilk açıldığında iDRAC, DHCP'den bir yapılandırma URL'si alır ve Lifecycle Controller bu URL'den konfigürasyon profilini çekerek otomatik kurulumu başlatır.

Bu yaklaşım, özellikle büyük veri merkezi genişlemeleri veya felaket kurtarma senaryolarında saatlerce süren manuel işlemleri dakikalara indirmektedir. Ansible ile entegre edildiğinde, sunucu kurulumu tamamlandıktan sonra otomatik olarak konfigürasyon yönetimine devredilmesi mümkündür.

#!/usr/bin/env python3 # dell_zero_touch_deploy.py import requests, json, time, urllib3 urllib3.disable_warnings() IDRAC_IP = "10.10.1.10" USER, PASS = "root", "SecureP@ss1" BASE = f"https://{IDRAC_IP}/redfish/v1" AUTH = (USER, PASS) HDR = {"Content-Type": "application/json"} def api(method, path, data=None): url = f"{BASE}{path}" r = getattr(requests, method)(url, auth=AUTH, headers=HDR, json=data, verify=False, timeout=30) return r # Adım 1: Virtual Media bağla print("1. ISO mount ediliyor...") api("post", "/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.InsertMedia", {"Image": "http://10.10.0.50/isos/rhel-9.4-x86_64-dvd.iso", "Inserted": True, "WriteProtected": True}) # Adım 2: Boot override - sanal CD'den boot print("2. Boot override ayarlanıyor...") api("patch", "/Systems/System.Embedded.1", {"Boot": {"BootSourceOverrideTarget": "Cd", "BootSourceOverrideEnabled": "Once"}}) # Adım 3: Sunucuyu yeniden başlat print("3. Sunucu yeniden başlatılıyor...") api("post", "/Systems/System.Embedded.1/Actions/ComputerSystem.Reset", {"ResetType": "ForceRestart"}) print("Deployment başlatıldı. Kurulum ~25-30 dakika sürecek.") print("İzlemek için: racadm -r {} -u {} -p {} lclog view".format(IDRAC_IP, USER, PASS))
# Deployment durumunu Redfish üzerinden izle watch -n 30 'curl -s -k -u root:SecureP@ss1 \ https://<idrac-ip>/redfish/v1/Systems/System.Embedded.1 \ | python3 -c "import sys,json; d=json.load(sys.stdin); \ print(d[\"PowerState\"], d[\"Status\"][\"Health\"])"' # Lifecycle Controller log takibi racadm -r <idrac-ip> -u root -p <password> \ lclog view -s info | grep -E "OS|Deploy|Install" | tail -20
08

Post-Deployment Yapılandırma ve Doğrulama

İşletim sistemi kurulumu tamamlandıktan sonra sunucunun production'a alınmadan önce geçmesi gereken birkaç kritik adım vardır: iDRAC iSM kurulumu, OpenManage Agent kurulumu, network bonding yapılandırması, NTP senkronizasyonu ve güvenlik sertleştirme adımları. Bu adımların Kickstart %post veya Ansible playbook ile otomatik yürütülmesi önerilir.

Dell iDRAC Service Module (iSM), işletim sistemi içinden iDRAC ile iletişim kurarak OS metriklerini (CPU, memory, process listesi) iDRAC konsolunda gösterilmesini sağlar. Ayrıca iSM, OS içinden sanal medya bağlama ve sistem yeniden başlatma gibi iDRAC işlemlerini otomatikleştirmenize de olanak tanır.

# Post-deployment doğrulama script'i (OS içinde çalıştırılır) #!/bin/bash set -e echo "=== Dell PowerEdge Post-Deployment Doğrulama ===" # iDRAC iSM kurulumu ve başlatma rpm -qa | grep -q iDRACSvcMod || { dnf install -y iDRACSvcMod systemctl enable --now dcismeng } # OpenManage Server Administrator kurulumu if ! rpm -qa | grep -q srvadmin; then wget -q -O /tmp/linux_repo.sh \ http://linux.dell.com/repo/community/openmanage/10.3.0.0/bootstrap.cgi bash /tmp/linux_repo.sh dnf install -y srvadmin-all systemctl enable --now dataeng instsvcdrv fi # Donanım sağlık kontrolü omreport system summary omreport chassis status # iDRAC bağlantısı doğrulama (iSM üzerinden) idracadm7 getversion echo "=== Kurulum ve doğrulama tamamlandı ==="
# Ansible playbook - post-deployment tasks # post_deploy.yml --- - name: Dell PowerEdge Post-Deployment hosts: new_servers become: yes tasks: - name: iDRAC iSM kurulumu package: name: iDRACSvcMod state: present - name: iSM servisini başlat systemd: name: dcismeng enabled: yes state: started - name: Network time sync kontrolü command: timedatectl status register: ntp_status changed_when: false - name: Firewall temel kuralları firewalld: service: "{{ item }}" permanent: yes state: enabled loop: - ssh - https - name: Sistem bilgilerini topla ve raporla command: omreport system summary register: omreport_out ignore_errors: yes - debug: msg: "{{ omreport_out.stdout_lines }}"
  • PXE/HTTP Boot ortamı kuruldu ve test edildi
  • Kickstart/cloud-init dosyaları hazırlandı
  • Gerekli sürücüler kurulum medyasına enjekte edildi
  • iDRAC iSM ve OpenManage Agent kuruldu
  • Deployment doğrulama scripti çalıştırıldı
  • Lifecycle Controller loglarında hata yok