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
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.
racadm -r <idrac-ip> -u root -p <password> getversion -t lc
racadm -r <idrac-ip> -u root -p <password> get LifecycleController.LCAttributes.LifecycleControllerState
racadm -r <idrac-ip> -u root -p <password> get NIC.NICConfig
# /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";
}
}
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.
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
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
}
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.
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.
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.VirtualMedia.BootOnce Enabled
racadm -r <idrac-ip> -u root -p <password> \
remoteimage -c -u http://10.10.0.50/isos/rhel-9.x-x86_64-dvd.iso
racadm -r <idrac-ip> -u root -p <password> \
set iDRAC.ServerBoot.FirstBootDevice VCD-DVD
racadm -r <idrac-ip> -u root -p <password> \
serveraction powercycle
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"
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"
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.
#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
#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
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.
# 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/
# 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
racadm -r <idrac-ip> -u root -p <password> jobqueue view
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.
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.
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))
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\"])"'
racadm -r <idrac-ip> -u root -p <password> \
lclog view -s info | grep -E "OS|Deploy|Install" | tail -20
İş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.
#!/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ı ==="
---
- 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