Ansible ile Windows Sunucu Yönetimi
  1. Anasayfa
  2. DevOps

Ansible ile Windows Sunucu Yönetimi

2

Bu yazım da size Windows sunucuya login bile olmadan bir Linux Ansible kontrol makinası üzerinden nasıl Windows sunucuları konfigüre edip yönetebileceğimizi göstereceğim. Ansible ile ilgili olarak Ansible’a giriş niteliğinde olan şu ve şu yazıları da inceleyebilirsiniz.

Ansible Linux sunucuları ssh ile Windows sunucuları da WinRM kullanarak yönetir. İlk olarak size WinRM’den bahsetmek istiyorum. WinRM Vista/Server 2008 ve sonrası için adminlere uzaktan script çalıştırmamızı sağlayan özelliktir. WinRM, SOAP temelli WS-Management implemantasyonu olduğu için non-Windows ortamlar ile kullanılabilir. WinRM suncularda defaultta yüklü olarak gelir ancak Ansible kontrol makinasının connection kurması için enable edilip listener ve service konfigürasyon ayarları yapılmalıdır. Bunun için Ansible tarafından hazırlanan script’ı github’dan indirip kullanabilirsiniz. Bu script ile default portlar için http(5985) ve https(5986) listenerlar oluşturup basic authentication için service create edilir.

Resim -1

Listenerları ve servisi aşağıdaki komutlar ile kontrol edebilirsiniz.

winrm enumerate winrm/config/Listener

Resim -2

winrm get winrm/config/Service

winrm get winrm/config/Winrs

Resim -3

WinRM bağlantısını kontol etmek için remote sunucularda aşağıdaki komutlar çalıştırılabilir.

Linux => nc -z -w1 <IP or host name> 5985;echo $?

windows => Test-WSMan -ComputerName <IP or host name>

Resim – 4

/etc/ansible/hosts dosyamızı aşağıdaki gibi güncelliyorum. Variableları envanter dosyasında verilebileceğimiz gibi playbook içinde de tanımlayabiliriz.

[windows]

192.168.50.53

[windows:vars]

ansible_user=mshowto
ansible_password=Password1
ansible_connection=winrm
ansible_winrm_cert_validation=ignore

Ansible engine ile Python için winrm modülü yüklü halde gelmiyor bunun için pip ile yüklememiz gereklidir. Benim sunucumda pip daha önceden yüklü olmadığı için önce pip’i yükleyip ardından pip yardımıyla pywinrm modülünü yükleyeceğim.

yum -y install python-pip

yum install python-devel

yum groupinstall ‘development tools’

pip install pywinrm

Şimdi ihtiyacımız olan gereksinimleri tamamladık. Ad-Hoc komut ile Ansible kontrol makinamızdan windows sunucuya komut gönderim testini yapalım.

Resim -5

Ben basit bir örnek olması için win_chocolatey modülünü kullanarak Windows sunucu üzerine notepad++ ve putty yükledim. Chocolatey Windows için paket yöneticisidir. Buradan paketleri inceleyebilirsiniz.

[root@ansible-master ansible]

# cat package.yml

– hosts: windows

  tasks:

  –  name: gerekli paketleri yükleme

  win_chocolatey:

    name: ‘{{ item }}’

    state: present

  with_items:

   – putty

   – notepadplusplus

Resim – 6

Çalıştırdığımız playbook Windows serverımız üzerinde iki tane değişiklik yaptı ve playbooktaki paketleri indirip sunucumuza kurdu. İhtiyaçlarınıza uygun Windows modüllerine bu linkten erişebilirsiniz. Göreceğiniz gibi birçok işlemi Windows sunucuya login bile olmadan Ansible kontrol makinası üzerinden yapabiliriz.

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

Referanslar

https://www.mshowto.org

TAGs: Ansible, Windows Server, Linux, OpenSource, ansible-playbook, WinRM, Chocolatey, pywinrm,ansible ile windows server yönetimi

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!

2016 yılında Yıldız Teknik Üniversitesi Elektronik ve Haberleşme Mühendisliğinden mezun oldum. Sonrasında Bilge Adamda 6 aylık sistem ve ağ uzmanlığı eğitimi alıdım. Bu eğitimde Microsoft On-Prem ürünlerini tecrübe ettim. Sonrasında da Vakifbank'ta Cloud & Linux Administrator olarak işe başladım. Storage ve sanallaştırma ekibindeyim. Storage tarafında EMC ve Hitachi ürünlerini SAN tarafında ise Brocade switchlerin yönetimini yapmaktayım. Bunlara ek olarak VMware ürünleri,ağırlıklı olarak Cisco UCS fiziksel sunucular ve Linux işletim sistemleri ile ilgilenmekteyim. VMware ürünlerinden de özellikle vRealize Orchestrator üzerine çalışmaktayım. Linuxlara işletim sistemi seviyesinde destek olmanın yanında Ansible üzerine yoğunlaşmış durumdayım.

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

Yorumlar (2)

  1. 24/12/2018

    Günün birinde Ansible Tower kullanmak isterseniz Windows sunucualarda erişimde sıkıntı kimlik doğrulamada sıkıntı yaşayabilirsiniz. Çözümü için aşağıdaki komut işinize yarayacaktır.

    winrm set winrm/config/service ‘@{AllowUnencrypted=“true”}’

  2. 21/05/2021

    Merhaba,
    Buradaki adımlara ek olarak aşağıdaki variable’ı da ekleyince windowsta job çalıştırabildim.
    Teşekkürler.

    ansible_winrm_transport: ntlm

Bir yanıt yazın

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