DIABOLIKSS
RehberlerDell OpenManage Ansible Modülleri ile Infrastructure as Code
DELL ALTYAPISI · ileri seviye · 32 dk okuma

Dell OpenManage Ansible Modülleri ile Infrastructure as Codedellemc.openmanage Koleksiyonu: iDRAC, BIOS, RAID ve Firmware

5 Haziran 2026 32 dk okuma dellemc.openmanage 9.x Ansible 2.15+

Dell OpenManage Ansible Collection (dellemc.openmanage) ile PowerEdge sunucuların tüm altyapı yapılandırmasını idempotent, sürüm kontrollü playbook'larla yönetin. BIOS ayarları, RAID yapılandırması, firmware güncelleme, iDRAC kullanıcı yönetimi ve CI/CD pipeline entegrasyonu örnekleri içeren kapsamlı IaC rehberi.

01

Koleksiyon Kurulumu, Envanter Yapısı ve Bağlantı Modeli

Dell OpenManage Ansible Collection (dellemc.openmanage), Ansible Galaxy üzerinden dağıtılan resmi Dell koleksiyonudur. 200'ü aşkın modül içerir: iDRAC yönetimi, BIOS yapılandırması, RAID/storage, ağ, kullanıcı yönetimi, firmware güncelleme ve OpenManage Enterprise (OME) entegrasyonu bu modüller arasında yer alır. Koleksiyon hem Redfish hem de WSMAN protokollerini destekler; 14G ve üzeri için Redfish kullanımı önerilir.

Bağlantı modeli açısından Dell modülleri delegated execution (hedef Ansible host değil, iDRAC IP'si üzerinden) çalışır. Bu nedenle inventory'de iDRAC IP adresleri kullanılır ve modüller doğrudan iDRAC API'sine bağlanır. İşletim sistemi içinde Ansible agent çalıştırılmasına gerek yoktur; bu, bare-metal deployment ve OS-independent yapılandırma için büyük avantaj sağlar.

# Koleksiyonu kur (en güncel sürüm) ansible-galaxy collection install dellemc.openmanage # Belirli bir sürüm kur ansible-galaxy collection install dellemc.openmanage:==9.3.0 # Requirements.yml ile bağımlılık yönetimi cat > requirements.yml <<'EOF' collections: - name: dellemc.openmanage version: ">=9.0.0" - name: community.general version: ">=8.0.0" EOF ansible-galaxy collection install -r requirements.yml # Python bağımlılıkları pip3 install omsdk requests urllib3
# Ansible inventory - Dell iDRAC hostları # inventory/hosts.yml all: children: dell_poweredge: children: prod_cluster: hosts: pe-r750-01: ansible_host: 10.10.1.10 idrac_ip: 10.10.1.10 idrac_user: root idrac_password: "{{ vault_idrac_password }}" pe-r750-02: ansible_host: 10.10.1.11 idrac_ip: 10.10.1.11 idrac_user: root idrac_password: "{{ vault_idrac_password }}" vars: ansible_connection: local validate_certs: false # Ansible Vault ile parola şifreleme ansible-vault encrypt_string 'SecureP@ss2026' --name 'vault_idrac_password' # Çıktıyı group_vars/all/vault.yml dosyasına ekle
⚙️
idrac_system_info
Sistem bilgisi ve envanter
model, seri no, versiyon
🔧
idrac_bios
BIOS attribute yönetimi
staged / immediate mod
💾
idrac_storage_*
RAID yapılandırması
volume, controller, disk
🔄
idrac_firmware
Firmware güncelleme
DUP, catalog, baseline
02

iDRAC Temel Modüller ve Bağlantı Testi

dellemc.openmanage koleksiyonunun temel taşları idrac_system_info, idrac_redfish_info ve idrac_lifecycle_controller_status_info modülleridir. Bu modüller, herhangi bir yapılandırma değişikliği yapmadan sistem durumunu, donanım envanterini ve LC durumunu sorgular. Yeni bir sunucu eklendiğinde bu modüllerle envanter playbook'u çalıştırmak iyi bir başlangıç noktasıdır.

Tüm dellemc.openmanage modülleri idrac_ip, idrac_user ve idrac_password parametrelerini alır. TLS doğrulaması için validate_certs: true ve kurumsal CA sertifikası belirtmek production ortamı için önerilir. Test ortamlarında validate_certs: false kabul edilebilir.

# playbooks/01_inventory.yml - Sistem envanteri toplama --- - name: Dell PowerEdge Envanter Toplama hosts: dell_poweredge gather_facts: false connection: local tasks: - name: Sistem bilgisini al dellemc.openmanage.idrac_system_info: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false register: system_info - name: Lifecycle Controller durumunu kontrol et dellemc.openmanage.idrac_lifecycle_controller_status_info: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false register: lc_status - name: Envanter özeti göster debug: msg: - "Host: {{ inventory_hostname }}" - "Model: {{ system_info.system_info.System[0].Model }}" - "Seri No: {{ system_info.system_info.System[0].ServiceTag }}" - "BIOS: {{ system_info.system_info.System[0].BIOSReleaseDate }}" - "LC Durum: {{ lc_status.lc_status_info.LCReady }}" - name: Envanter sonuçlarını dosyaya yaz copy: content: "{{ system_info | to_nice_json }}" dest: "/tmp/inventory_{{ inventory_hostname }}.json" delegate_to: localhost
# Playbook'u çalıştır ansible-playbook -i inventory/hosts.yml playbooks/01_inventory.yml \ --ask-vault-pass # Tek host için test ansible-playbook -i inventory/hosts.yml playbooks/01_inventory.yml \ --limit pe-r750-01 --ask-vault-pass -v # Dry-run (check mode) ansible-playbook -i inventory/hosts.yml playbooks/01_inventory.yml \ --check --diff --ask-vault-pass
03

BIOS Yapılandırma Otomasyonu

idrac_bios modülü, PowerEdge sunucularda BIOS attribute'larını Ansible ile idempotent biçimde yönetir. Modül, mevcut değeri hedef değerle karşılaştırır ve yalnızca fark varsa değişiklik uygular. Bu idempotency özelliği, aynı playbook'un defalarca çalıştırılmasını güvenli kılar.

BIOS değişikliklerinin büyük çoğunluğu staged modda çalışır, yani ayar bir sonraki yeniden başlatmada devreye girer. apply_time: OnNextBoot ile değişiklik kaydedilir; ardından ayrı bir task ile sunucu yeniden başlatılabilir. Bazı değişiklikler (örn. BIOS parola) ise apply_time: Immediate gerektirir.

# playbooks/02_bios_harden.yml - BIOS güvenlik sertleştirme --- - name: Dell PowerEdge BIOS Güvenlik Sertleştirme hosts: dell_poweredge gather_facts: false connection: local vars: bios_hardening_attributes: SecureBoot: "Enabled" TpmSecurity: "On" BootMode: "Uefi" AcPwrRcvry: "Last" # Güç kesintisinden sonra önceki durum PxeDev1EnDis: "Disabled" # PXE boot kapat InternalSdCard: "Off" # SD kart boot kapat SetupPassword: "{{ vault_bios_setup_password }}" tasks: - name: Mevcut BIOS değerlerini kontrol et dellemc.openmanage.idrac_bios: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false attributes: "{{ bios_hardening_attributes }}" apply_time: OnNextBoot register: bios_result notify: reboot_if_changed - name: BIOS değişiklik özeti debug: msg: "{{ inventory_hostname }}: {{ bios_result.msg }}" handlers: - name: reboot_if_changed dellemc.openmanage.idrac_os_deployment_info: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false register: deploy_info when: bios_result.changed
# playbooks/bios_profile_apply.yml - Profil bazlı BIOS yapılandırma --- - name: BIOS Profil Uygulama (Rol bazlı) hosts: dell_poweredge gather_facts: false connection: local vars_files: - "vars/bios_profiles/{{ server_role | default('generic') }}.yml" tasks: - name: Rol profiline göre BIOS ayarlarını uygula dellemc.openmanage.idrac_bios: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false attributes: "{{ bios_attributes }}" apply_time: OnNextBoot # vars/bios_profiles/database.yml - DB sunucu BIOS profili bios_attributes: SysProfile: "PerfOptimized" # Performans profili ProcVirtualization: "Enabled" # Sanallaştırma açık ProcHyperThread: "Enabled" # HyperThreading MemOpMode: "OptimizerMode" # Bellek optimizer NumaNodesPerSocket: "1" # NUMA topolojisi SubNumaClustering: "Disabled" # SNC kapat (DB için) EnergyPerformanceBias: "MaxPerf"
ℹ️
BIOS attribute adları sunucu kuşağına göre farklılık gösterebilir. Bir sunucudaki geçerli attribute listesini idrac_bios_info modülü ile alın ve playbook'larınızı bu listeye göre yazın. Örneğin 13G sunucular ile 16G sunucular arasında bazı attribute isimleri değişmiştir.
04

RAID ve Storage Otomasyonu

Dell OpenManage Ansible koleksiyonu, idrac_storage_volume, idrac_redfish_storage_controller ve idrac_storage_virtual_disk modülleri ile kapsamlı storage yapılandırması sunar. RAID-1 (mirror) işletim sistemi diski, RAID-5 veya RAID-6 veri diskleri ve hot spare ataması bu modüllerle tamamen programatik olarak yönetilebilir.

Storage otomasyonunda en dikkat edilmesi gereken nokta idempotency: mevcut bir RAID volume silinmeden yeni bir volume oluşturulamaz. Bu nedenle playbook'larda önce mevcut yapılandırmayı kontrol eden bir task, ardından koşullu oluşturma mantığı kullanılmalıdır. check_mode: true ile yapılandırma önce simüle edilmeli, onaydan sonra gerçek değişiklik uygulanmalıdır.

# playbooks/03_raid_configure.yml - RAID yapılandırması --- - name: Dell PowerEdge RAID Yapılandırma hosts: dell_poweredge gather_facts: false connection: local tasks: - name: Mevcut storage envanterini al dellemc.openmanage.idrac_storage_volume: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false state: view register: storage_view - name: OS diski için RAID-1 oluştur (2x SSD) dellemc.openmanage.idrac_storage_volume: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false state: create span_depth: 1 span_length: 2 raid_reset_config: false volume_type: RAID 1 volumes: - drives: location: - controller: "RAID.Integrated.1-1" slot: 0 - controller: "RAID.Integrated.1-1" slot: 1 volume_name: "OS-Mirror" media_type: SSD protocol: SATA requested_name: "VirtualDisk:OS-Mirror" when: storage_view.storage_status is defined register: raid1_result - name: Veri için RAID-5 oluştur (4x HDD) dellemc.openmanage.idrac_storage_volume: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false state: create span_depth: 1 span_length: 4 volume_type: RAID 5 volumes: - drives: location: - controller: "RAID.Integrated.1-1" slot: 2 - controller: "RAID.Integrated.1-1" slot: 3 - controller: "RAID.Integrated.1-1" slot: 4 - controller: "RAID.Integrated.1-1" slot: 5 volume_name: "Data-RAID5" media_type: HDD protocol: SAS
# Storage controller sıfırlama (dikkatli kullanın - veri kaybı riski) --- - name: PERC Controller Sıfırlama hosts: "{{ target_host }}" gather_facts: false connection: local tasks: - name: Onay kontrolü assert: that: - confirm_reset is defined - confirm_reset | bool fail_msg: "Bu task veri kaybına yol açar! confirm_reset=true ile çalıştırın." - name: Controller'ı sıfırla dellemc.openmanage.idrac_redfish_storage_controller: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false controller_id: "RAID.Integrated.1-1" apply_time: Immediate attributes: ControllerMode: "RAID" when: confirm_reset | bool
🚨
VERİ KAYBI RİSKİ: RAID yapılandırma playbook'larını önce --check modu ile test edin. Storage reset veya volume delete işlemleri geri alınamaz. Production'da çalıştırmadan önce ekstra onay mekanizması (assert task veya approval gate) ekleyin.
05

Firmware Güncelleme Playbook'ları

idrac_firmware modülü, Dell Update Package (DUP) veya catalog tabanlı firmware güncelleme işlemlerini Ansible ile yönetir. Güncelleme kaynağı olarak HTTP/HTTPS sunucu, NFS paylaşımı veya CIFS paylaşımı kullanılabilir. Modül, Lifecycle Controller job'u oluşturur ve job tamamlanana kadar bekler (job_wait: true).

Büyük filo güncellemelerinde seri güncelleme (serial) veya paralel güncelleme (parallel) stratejisi seçilebilir. VMware ESXi host'larında güncelleme öncesi bakım moduna alınması gerektiğinden, firmware playbook'ları OMIVV veya doğrudan vCenter API çağrıları ile koordine edilmelidir. Ansible serial: 1 yönergesi ile aynı anda tek host güncelleme yapılarak risk minimize edilebilir.

# playbooks/04_firmware_update.yml - Catalog tabanlı firmware güncelleme --- - name: Dell PowerEdge Firmware Güncelleme hosts: dell_poweredge gather_facts: false connection: local serial: 1 # Bir seferde tek host pre_tasks: - name: Mevcut firmware versiyonlarını kaydet dellemc.openmanage.idrac_firmware_info: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false register: fw_before - name: LC hazır mı? dellemc.openmanage.idrac_lifecycle_controller_status_info: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false register: lc_check - name: LC hazır değilse dur fail: msg: "Lifecycle Controller hazır değil: {{ lc_check.lc_status_info }}" when: not lc_check.lc_status_info.LCReady tasks: - name: Catalog'dan firmware güncelle dellemc.openmanage.idrac_firmware: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false share_name: "http://10.10.0.50/dell-catalog" catalog_file_name: "Catalog.xml" apply_update: true reboot: true job_wait: true ignore_cert_warning: true register: fw_update_result post_tasks: - name: Güncelleme sonrası firmware versiyonlarını al dellemc.openmanage.idrac_firmware_info: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false register: fw_after - name: Güncelleme özeti debug: msg: "{{ inventory_hostname }}: Güncelleme tamamlandı - {{ fw_update_result.update_status }}"
# Tek DUP dosyası ile hedefli güncelleme (örn. sadece BIOS) --- - name: BIOS DUP Güncelleme hosts: "{{ target_hosts | default('dell_poweredge') }}" gather_facts: false connection: local vars: dup_file: "BIOS_XXXXX_LN64_2.18.2.BIN" dup_source: "http://10.10.0.50/dup/{{ dup_file }}" tasks: - name: DUP dosyasını indir ve uygula dellemc.openmanage.idrac_firmware: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false share_name: "http://10.10.0.50/dup" reboot: true job_wait: true apply_update: true register: dup_result tags: [firmware, bios]
06

iDRAC Kullanıcı ve Ağ Yönetimi

iDRAC kullanıcı yönetimi, idrac_user modülü ile yapılır. Bu modül kullanıcı oluşturma, parola güncelleme, rol atama ve kullanıcı silme işlemlerini destekler. Özellikle yeni sunucu provisioning sürecinde varsayılan root parolasının değiştirilmesi ve servis hesaplarının oluşturulması kritik öneme sahiptir.

iDRAC ağ ayarları için idrac_network modülü kullanılır. DNS, NTP, SNMP ve IPMI ayarları bu modülle yönetilebilir. Tüm yeni sunuculara aynı iDRAC ağ politikasını uygulamak için bu modül, provisioning playbook'unun ilk adımı olmalıdır.

# playbooks/05_idrac_hardening.yml - iDRAC güvenlik yapılandırması --- - name: iDRAC Güvenlik Sertleştirme hosts: dell_poweredge gather_facts: false connection: local tasks: - name: Varsayılan root parolasını değiştir dellemc.openmanage.idrac_user: idrac_ip: "{{ idrac_ip }}" idrac_user: "root" idrac_password: "calvin" # Varsayılan parola validate_certs: false state: present user_name: root user_password: "{{ vault_idrac_password }}" role_name: Administrator authentication_protocol: SHA privacy_protocol: AES256 ignore_errors: true # Zaten değiştirilmişse hata verme - name: OMIVV servis hesabı oluştur dellemc.openmanage.idrac_user: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false state: present user_name: omivv-svc user_password: "{{ vault_omivv_password }}" role_name: Administrator enable: true - name: İzleme hesabı oluştur (salt okunur) dellemc.openmanage.idrac_user: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false state: present user_name: monitor-svc user_password: "{{ vault_monitor_password }}" role_name: ReadOnly enable: true
# playbooks/idrac_network.yml - iDRAC ağ ve NTP yapılandırması --- - name: iDRAC Ağ ve NTP Yapılandırması hosts: dell_poweredge gather_facts: false connection: local vars: ntp_servers: - 10.10.0.1 - pool.ntp.org dns_servers: - 10.10.0.1 - 10.10.0.2 tasks: - name: iDRAC NTP ayarlarını yapılandır dellemc.openmanage.idrac_network: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false setup_idrac_nic_vlan: Disabled register_idrac_on_dns: Enabled dns_idrac_name: "idrac-{{ inventory_hostname }}" auto_config: Disabled static_dns_1: "{{ dns_servers[0] }}" static_dns_2: "{{ dns_servers[1] }}" setup_idrac_nic: Dedicated - name: TLS minimum versiyonunu ayarla dellemc.openmanage.idrac_attributes: idrac_ip: "{{ idrac_ip }}" idrac_user: "{{ idrac_user }}" idrac_password: "{{ idrac_password }}" validate_certs: false attributes: WebServer.TLSProtocol: TLS1.2_and_higher WebServer.HttpsPort: "443" IPMILan.Enable: "Disabled" Telnet.Enable: "Disabled" SSH.Enable: "Enabled"
07

Production-Ready Ansible Role Yapısı

Kurumsal ortamlarda playbook'ları doğrudan kullanmak yerine Ansible Role yapısı tercih edilmelidir. Role'lar, değişkenlerin default değerlerini, görev listelerini, handler'ları ve şablonları ayrı dizinlerde organize eder. Bu yapı, aynı role'ün farklı ortamlarda (dev/staging/prod) farklı parametrelerle kullanılmasını kolaylaştırır.

Aşağıdaki dizin yapısı, Dell PowerEdge sunucu provisioning için önerilen role mimarisini göstermektedir. Bu yapı, yeni bir sunucu eklendiğinde tek bir playbook çağrısı ile BIOS sertleştirme, RAID yapılandırması, firmware güncelleme ve iDRAC güvenlik ayarlarının sırayla uygulanmasını sağlar.

# Önerilen dizin yapısı roles/ dell_poweredge_provision/ defaults/ main.yml # Değişken varsayılanları tasks/ main.yml # Ana görev listesi bios.yml # BIOS görevi storage.yml # RAID görevi firmware.yml # Firmware güncelleme idrac_security.yml # iDRAC güvenliği handlers/ main.yml # Reboot handler vars/ main.yml # Role değişkenleri templates/ bios_profile.json.j2 # Jinja2 şablon meta/ main.yml # Bağımlılıklar # roles/dell_poweredge_provision/defaults/main.yml --- idrac_validate_certs: false idrac_port: 443 bios_profile: generic bios_settings: SecureBoot: "Enabled" TpmSecurity: "On" BootMode: "Uefi" raid_config: os_disk: type: "RAID 1" slot_start: 0 slot_count: 2 volume_name: "OS-Mirror" data_disk: type: "RAID 5" slot_start: 2 slot_count: 4 volume_name: "Data-RAID5" firmware_catalog_url: "http://10.10.0.50/dell-catalog" firmware_apply_update: false # Güvenli default: güncelleme kapalı
# roles/dell_poweredge_provision/tasks/main.yml --- - name: iDRAC güvenlik yapılandırması import_tasks: idrac_security.yml tags: [always, idrac, security] - name: BIOS güvenlik sertleştirme import_tasks: bios.yml tags: [bios, security] - name: Storage/RAID yapılandırması import_tasks: storage.yml tags: [storage, raid] when: configure_storage | default(false) | bool - name: Firmware güncelleme import_tasks: firmware.yml tags: [firmware] when: firmware_apply_update | bool # Provisioning playbook - tüm role'ü çağır # playbooks/provision_new_server.yml --- - name: Yeni Dell PowerEdge Sunucu Provisioning hosts: "{{ target_hosts }}" gather_facts: false connection: local vars_files: - "vars/env/{{ env | default('prod') }}.yml" - "vars/vault.yml" roles: - role: dell_poweredge_provision vars: configure_storage: true firmware_apply_update: true bios_profile: "{{ server_role | default('generic') }}"
08

CI/CD Pipeline Entegrasyonu

Infrastructure as Code yaklaşımının tam anlamıyla hayata geçirilmesi için Ansible playbook'larının Git ile sürüm kontrolüne alınması ve CI/CD pipeline'ı ile otomatik doğrulama sürecine dahil edilmesi gerekir. GitLab CI/CD veya GitHub Actions üzerinde lint → test → staging deploy → prod approval → prod deploy akışı kurulabilir.

ansible-lint ile kod kalitesi kontrolü, molecule ile role testleri ve mock iDRAC ortamı üzerinde entegrasyon testleri CI pipeline'ına eklenmelidir. Prod ortamına geçiş için manuel onay kapısı (approval gate) zorunludur. Bu sayede altyapı değişiklikleri kod review sürecinden geçerek uygulanır ve değişiklik kaydı Git history'de tutulur.

# .gitlab-ci.yml - Dell IaC CI/CD Pipeline stages: - validate - test - staging - production variables: ANSIBLE_FORCE_COLOR: "1" ANSIBLE_STDOUT_CALLBACK: "yaml" lint: stage: validate image: cytopia/ansible:2.15 script: - pip install ansible-lint - ansible-lint playbooks/ roles/ - ansible-playbook --syntax-check -i inventory/staging/hosts.yml playbooks/provision_new_server.yml only: [merge_requests, main] molecule-test: stage: test image: cytopia/ansible:2.15 script: - pip install molecule molecule-plugins[docker] - cd roles/dell_poweredge_provision - molecule test only: [merge_requests] staging-deploy: stage: staging image: cytopia/ansible:2.15 script: - ansible-playbook -i inventory/staging/hosts.yml --vault-password-file .vault_pass --check --diff playbooks/provision_new_server.yml environment: staging only: [main] production-deploy: stage: production image: cytopia/ansible:2.15 script: - ansible-playbook -i inventory/prod/hosts.yml --vault-password-file .vault_pass playbooks/provision_new_server.yml environment: production when: manual # Manuel onay gerekli only: [main]
# Ansible Tower / AWX ile job template oluştur (REST API) curl -s -u admin:TowerPass123 \ -X POST \ -H "Content-Type: application/json" \ -d '{ "name": "Dell PowerEdge - BIOS Hardening", "description": "Tüm PowerEdge sunucularda BIOS güvenlik sertleştirme", "job_type": "run", "inventory": 3, "project": 5, "playbook": "playbooks/02_bios_harden.yml", "ask_limit_on_launch": true, "ask_variables_on_launch": false, "extra_vars": "{\"env\": \"prod\"}", "survey_enabled": false }' \ "https://tower.example.com/api/v2/job_templates/" | python3 -m json.tool
  • dellemc.openmanage koleksiyonu kuruldu, bağlantı testi başarılı
  • Ansible Vault ile iDRAC parolaları şifrelendi
  • BIOS sertleştirme playbook'u check modda test edildi
  • RAID yapılandırma playbook'u staging'de doğrulandı
  • Firmware güncelleme kataloğu erişilebilir
  • Role yapısı oluşturuldu ve varsayılanlar tanımlandı
  • CI/CD pipeline'ı lint ve test adımları içeriyor
  • Prod deploy için manuel onay kapısı etkin
IaC Olgunluk Hedefi: Bir PowerEdge sunucunun rack'ten çıkıp production'a alınması süreci, tek bir Ansible playbook çağrısı ile 30-45 dakikada tamamlanabilir hale getirilmelidir. Bu hedefe ulaşmak için BIOS, RAID, firmware ve iDRAC güvenlik adımlarının tek bir koordineli role altında toplanması gerekir.