VMware Standard Switch kullandığınız ortamlarda port grup oluşturmalarını ansible üzerinden nasıl yapabiliriz bunun üzerine bir yazı olacak.
Genelde trunk çalışan portlara bağlı vswitch’ler üzerinde ilk kurulum sırasında yapılan port grup tanımlar harici çok fazla yeni talep gelmez . Fakat bazı durumlar da yeni başlayan projeler için özel subnet lerde ve yeni VLAN’arda çalışma talepleri gelebiliyor. Bu gibi durumlarda ilgili VLAN’ı vswitch üzerinde port grup olarak eklemeniz gerekecektir. Bu işi nasıl otomatize edebiliriz diye düşünüldüğünde ilk akla gelen şey PowerCLI fakat ben burada ansible kullanak istedim. Temel motivasyon ise GUI üzerinden RBAC özelliği sayesinde bu operasyonu kendim değil L1 deki arkadaşlar üzerinden yönetmek ve iş yükünü azaltmak. Bu sayede L1 seviyesindeki arkadaşlar hiçbir kullanıcı adı yada şifre bilmeden hatta platformun arayüzünü bile görmeden hızlıca istenilen port grubu oluşturabilecekler.
Bu açıdan faydalı bulacağınıza inanıyorum.
Ön Gereksinimler:
- Ansible uygulamasının kurulu olduğu sunucuya vmware tarafından geliltirilen bir framework olan PyVmomi nin kurulu olması lazım.
- Pyhton 2.6 üstü bir versiyonda çalışmanız gerekiyor
PvVmomi detayları için BURAYA tıklayabilirsiniz.
Host, username ve Password değişkenlerini playbook içerisinde default olarak tanımlıyorum fakat aynı host üzerinde birden fazla virtual switch var ise bunları dinamik olarak yönetmek için switch name, port grup name ve Vlan ID değişklenlerini template run edilince manuel olarak girilmesini talep edeceğiz.
Hemen işe playbook hazırlayarak başlıyoruz.
- name: Pyvmomi Uzerinden baglan hosts: localhost gather_facts: false connection: local vars: hosts: farukdemoesx username: root password: buraya_sifre_girin dumpfacts: False tasks: - name: Add Management Network VM Portgroup vmware_portgroup: hosts: "{{ hosts }}" hostname: "{{ hosts }}" username: "{{ username }}" password: "{{ password }}" switch_name: "{{ vswitch_name }}" portgroup_name: "{{ portgroup_name }}" vlan_id: "{{ vlan_id }}" validate_certs: false
Playbook’umuz hazır olduktan sonra. AWX üzerinde ESXI Add Port Grup adında bir template oluşturuyoruz ve Playbook olarak hazırladığımız YAML dosyasını gösteriyoruz.
Edit Survey diyerek playbook içerisinde tanımladığımız değişkenleri template çalıştırılınca bize sorması için survey olarak ekliyoruz. Variable name kısmında playbook içerisinde tanımladığınız bire bir aynı variable tanımlarını girmek burada çok önemli.
Artık Template’imiz hazır.
Tempalet’imizi RUN ediyoruz ve daha önceden tanımladığımız survery sorularına cevap veriyoruz.
Playbook’umuz çalışıyor, jobs altından kontrol ediyoruz ve erhangi bir hata almadığımıza emin oluyoruz.
ESXI Host’umuza bağlanıp kontrol edebilirz. Gördüğünüz gibi Port grup başarılı bir şekilde eklenmiş.