Vmware VMware

Ansible Kullanarak VMware üzerinde Snapshot Otomasyonu Nasıl Yapılır ?

Kritik çalışmalar öncesinde snapshot’ın ne kadar hayat kurtarıcı olduğu konusunda hepimiz hemfikiriz diye düşünüyorum. Bu manuel operasyonu Ansible kullanarak otomatize hale getirebiliriz ve VMware ortamlarınız üzerinden kolay bir şekilde snapshot alabiliriz bunun üzerine bir yazı olacak. Daha önce benzer bir konuyu incelemiş fakat önemli bazı detaylara değinmemiştik bugün özellikle değişkenler tarafındaki fark üzerine de konuşacağız. Buraya tıklayarak daha önceki yazıyı okuyabilirsiniz.

Bu operayonu otomasyon ile desteklerseniz Level 1 deki arkadaşlara herhangi bir user\pass bile vermeye gerek duymadan kullanmalarını sağlayabilirsiniz. Hatta ITSM uygulaması ile bağlarsanız son kullanıcı kendisi bile sanal sunucu üzerinden snaphot alabilir.

İlk önce VM template’lerimizi oluşturuyoruz. Daha önce bir çok kez yazdığım için AWX üzerinden vm Template oluşturma kısmına tekrar tekrar girmiyorum. Problem yaşarsanız önceki yazılardan nasıl yapılacağını öğrenebilirsiniz.

İlgili playbook’umuzu hazırlıyoruz. 2 farklı örnek ile ilerleyeceğiz demiştik;

  1. Statik değişkenli playbook
  2. Dinamik değişkenli playbook

Statik ile başlıyoruz.

Bu örnekte bütün değişkenler statik olarak playbook içeriside “vars” altına set edilmiş durumda. Yani RUN ettiğinizde direk tanımlı Vcenter’da çalışan tek bir VM üzerinde çalışacak ve onun snapshot’ını alacak. Gerçek dünyaya çok uygun değil çünkü bir çok farklı VM için ayrı ayrı playbook hazırlamak oldukça gereksiz bir operasyon fakat görmeniz açısından paylaşıyorum. Bu konunun detaylarına yazının devamında değineceğim.

Vars altında gerekli bütün değişkenleri tanımladık.

---
      - name: Snapshot
        hosts: localhost
        connection: local
        vars:
          vcenter_hostname: demoansible.faruk.local
          vcenter_user: administrator@vsphere.local
          vcenter_pass: Password_buraya
          datacenter_name: Ansible-Demo
          esxihost: demohost01.faruk.local
          datastore: datastore01
          guest_name: newvm
        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

Template üzerinden oluşturduğumuz playbook’u içerisine tanımladıktan sonra. RUN ediyoruz.

Herhangi bir hata alıp almadığımızı kontrol ettikten sonra

Vmware üzerinden başarılı bir şekilde snapshot alındığını teyit ediyoruz.

 

Artık dinamik değişkenlerden bahsedebiliriz.

Aşağıdaki 2 farklı playbook örneği mevcut. Sol taraftaki bütün değişkenler statik olarak playbook içerisine tanımlanmışken sağ taraftakinde ise sadece değişken isimleri mevcut. Her bir VM için ayrı ayrı playbook oluşturmak istemiyorsanız sağ taraftaki gibi değişkenleri playbook içerisine tanımladıktan sonra AWX üzerinde oluşturduğunuz template içerisine “survey” ekleyerek bu değişkenleri templat’i RUN ettiğiniz anda manuel olarak girmeniz gerekiyor. Bu sayede her seferinde farklı bir VM için aynı operasyonu gerçekleştirebilirsiniz.

 

Dinamik değişkenli playbook’umuz aşağıdaki gibi.

---
      - name: Snapshot
        hosts: localhost
        connection: local
        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

 

Tanımlı değişkenleri ise Template üzerinden aşağıdaki gibi tek tek giriyoruz.

Template’i RUN edince bizden gerekli bilgileri istiyor. Bunları elle girdikten sonra NEXT dememiz yeterli.

Kontrol ettiğimizde başarılı bir şekilde snapshot’ımızın alındığı görüyoruz.

About the author

Faruk TERZIOGLU

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, 2019 Yılında VMware tarafından vExpert ilan edilmiştir.

Leave a Comment