Ansible – VMware Otomasyonu Nasıl Yapılır ?
  1. Anasayfa
  2. VMware

Ansible – VMware Otomasyonu Nasıl Yapılır ?

0

Bir önceki yazıda Ansible Nedir? ile alakalı ” Modules, Inventory, Playbook” gibi bazı temel komponentler den bahsetmiş ve Playbook lar üzerinden çalışma prensibi üzerine konuşmuştuk. Artık daha karmaşık uygulamalar üzerinde aksiyon alma zamanı geldi diye düşünüyorum. Eğer daha önce okumadıysanız ilgili yazıya burayı tıklayarak erişebilirsiniz.

Bugün üzerine duracağımız konular;

  • Ansible kullanarak VMware platformu üzerindeki operasyonlarımızı nasıl otomatize edebiliriz?
  • VMware tarafında Ansible kullanabilmek için gereksinimler nedir ?
  • Playbook  Nedir ? dizaynı ve örnek Playbooklar üzerinden incelemeler

VMware bildiğiniz gibi Türkiye ve Dünya genelinde Utilizasyonu, yani kullanımı en çok olan Hypervisor çözümlerinden biri. vSphere ailesini genel olarak ele alırsak uçtan uca sunduğu çözümler sayesinde sektöre de yön veren bir noktada. Ansible kullanarak VMware ortamlarınız üzerinde; Guest Provisioning, Host ve Datastore Management, vSwitch configuration gibi birçok operasyonu otomatize edebilirsiniz. Bunu yaparken kullanacağımız şey ise modüller. Daha önce modüller hakkında konuşmutuk. Bizim için başkaları ya da direk Vendorlar tarafından hazırlanmış arka tarafta daha karmaşık operasyonları tetikleyen kullanıma hazır Scriptler ve Komut Setleriydi. VMware tarafıda boş durmuyor tabii ki. 2019 yılı itibariyle Ansible tarafında VMware için kullanabileceğiniz 50’den fazla hazır Module bulunuyor. Bizler de operasyonlarımızı yönetirken bu modülleri kullanacağız.

Resim-1

Peki gereksinimler neler ?

Ansible uygulanacak olan tasklar için ilk önce farklı ilgili protokoller üzerinden (Windows için Winrm, Linu için SSH vs.) host üzerine bağlanarak sırası ile Taskları uyguluyordu bildiğiniz gibi. VMware tarafındaki operasyonları modüller üzerinden direk yönetemiyoruz. Yönetmek için VMware tarafından geliştirilmiş bir Python SDK’sı olan “pyVmomi” kullanmalıyız. pyVmomi Ansible ve vSphere arasında bir tercüman olarak göre alacak diyebiliriz. Yani Ansible ile VMware tarafındaki operasyonlarınızı otomatize etmek için tek gereksinim Ansible’ın kurulu olduğu sunucu üzerinde pyVmomi’in ve Python 2.7 yada daha üstü bir versiyonun yüklü olması. pyVmomi ile ilgili detaylı bilgiye buraya tıklayarak erişebilirsiniz. PIP ile kolay bir şekilde kurabilirsiniz bu yüzden detayına fazla girerek yazıyı gereksiz yere uzatmak istemiyorum.

Gerekli ön koşulları yerine getirdiğimize göre artık örnek Playbooklar üzerinden devam edebiliriz. Aşağıda listelediğim operasyonlarımızı otomatize etmek için hazırladığımız Playbookları çalıştırmak için 4 adet farklı Job Template hazırladım. Hepsinin detayına giremeyeceğim bugün sadece Snapshot operasyon üzerinde duracağız fakat konunun temelini anlama noktasında faydalı olacağına eminim.

  • Snapshot Aldırma
  • Snapshot Silme
  • Sanal sunucu oluşturma
  • vSwitch Port Grup oluşturma

Resim-2

Snapshot operasyonu için ilk önce operasyona bir isim vererek ilgili modülleri uygulayacak host bilgisini giriyoruz. Burada hosts kımında pyVmomi nin kurulduğu olduğu sunucuyu belirtiyoruz. Ben Ansible ve pyVmomi yi aynı sunucu üzerinde çalıştırdığım için “localhost” diye girdim fakat siz farklı bir sunucuya girdiyseniz o sunucuyu adını yazabilirsiniz. Tabi kullanmadan önce ilgiliyi sunucuyu ilgili envater altında Host olarak tanımlamayı unutmayın.

---

- name: Snapshot
hosts: localhost
connection: local

ikinci ve önemli aşama ise uygulanacak olan operasyonların Task başlığı altında listelenmesi. “vmware_guest_snapshot” diyerek ilgili modülü çağırıyoruz ve modülün çalışabilmesi için gerekli değişkenleri yani;

  • Vcenter Adresi
  • Vcenter Kullanıcı adı ve adresi
  • Snapshot alınacak sunucu adı
  • Snapshot içerisine girilecek açıklamaları
  • En önemlisi ise snapshot operasyonunun tanımını (Silmek mi istiyoruz yoksa almak mı istiyoruz)

Belirterek Playbook umuzu hazır hale getiriyoruz. Playbook içerisindeki değişkenleri direk yazarak ta bu değişikliği uygulayabilirdik fakat eğer dinamik değişken tanımı yapmaz isek her bir operasyon için ayrı ayrı yüzlerce Playbook yazmak zorunda kalırız.

“{{değişken_adı}}” şeklinde tanımlarımızı yapıyoruz.

tasks:

- name: Create Snapshot
vmware_guest_snapshot:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
esxi_hostname: "{{ esxihost }}"
datacenter: {{ datacenter_name }}"
folder: "/{{ datacenter_name }}/AnsibleVM/"
name: "{{ guest_name}}"
state: present
snapshot_name: demosnapshot
description: snap1_description

Sırada oluşturduğumuz Job Template içerisinde “ADD SURVEY” diyerek Playbook içerisinde tanımladığımız değişkenlerimizi girme kısmı var. Değişkenleri girdikten sonra herhangi biri bu Job Template’i çalıştırmak isterse karşısına sırası ile talep edilen değişkenlerin girilmesi isteyen sorular çıkacak. Bu sayede tek bir Job Template üzerinden farklı farklı sunucular için dinamik değişken kullanarak operasyonumuzu bütün sunucularımız için otomatize edebileceğiz.


Resim-3

Job Template üzerinden ilgili değişken tanımlarımızı yaptıktan sonra kaydedip çıkıyoruz ve Job Template i çalıştırıyoruz. Gördüğünüz gibi olması gerektiği gibi Playbook üzerinde girdiğimiz ve Survey altında tanımladığımız değişkenleri girmemizi istiyor. İlgili değişkenler için bilgileri giriyoruz ve devam ediyoruz.

Resim-4

Job başarılı bir şekilde çalışıyor ve tamamlanıyor.

Resim-5

Vmware üzerinden kontrol ettiğimiz de ise başarılı bir şekilde snapshot’ın alındığını görüyoruz.

Resim-6

Bu giriş için oldukça basit bir örnekti. Aynı methodu kullarak mevcut modüller ile sağlanan bütün operasyonlar için sistemlerinizi otomatize edebilirsiniz. Bir sonraki yazımda Ansible kullanarak VMware üzerinde nasıl sunucu oluşturabilir ve değişkenleri Job Template üzerinden el ile girmek yerine API üzerinden nasıl tetikleyebilirsiniz onu anlatıyor olacağım.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

http://www.mshowto.org

https://www.vmware.com

https://www.ansible.com

TAGs: Ansible, VMware, Vsphere, Ansible Tower, AWX, Playbook, Ansible Modules, VMware Ansible Automation

 

Bu İçeriğe Tepkin Ne Oldu?
  • 2
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Faruk TERZIOGLU - 2003 senesinden beri aktif olarak bilgi teknolojileri sektöründe çalışıyor. Uzmanlık alanları BT altyapı çözümleri ve yazılım tanımlı veri merkezi teknolojileri, Microsoft ailesi ürünleri, Açık kaynak kodlu sanallaştırma platformları ve uygulamaları olup bulut teknolojileri öncelikli ilgilendiği alanlar arasındadır. 2018 yılında Alibaba Cloud tarafından Bulut Teknolojileri Çözümleri alanında MVP olarak ilan edilmiştir.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir