Ansible ile Windows Server 2019 ve Windows 10 Yönetimini Otomatikleştirin
Ansible, binlerce şirketin ortamlarındaki karmaşıklığı ortadan kaldırmak ve DevOps girişimlerini hızlandırmak için kullandığı basit ama güçlü bir BT otomasyon motorudur.
Uygulamaların dağıtımı, sunucularınızın rutin bakımı, Konfigürasyon Yönetimi, Sürekli Teslimat, Orkestrasyon veya tanımlayabileceğiniz herhangi bir tekrarlanan iş olsun, Ansible bunu sizin için halledebilir.
En üst düzey özelliklerine tanık olmak için, Windows sunucu yönetimini otomatikleştirmek amacıyla bundan yararlanacağız. Bu macera dolu bir yolculuk olacak o yüzden yolculuğa başlarken kemerlerinizi bağlayın.
“Beklemeyin. Zaman hiçbir zaman tam olarak doğru olmayacak. ”
-Napoleon Tepesi
Önkoşullar
İşin detayına girmeden önce, bir Windows sunucusunun Ansible tarafından yönetilmeyi "kabul etmesi" için birkaç şeye ihtiyacı var. Aşağıdaki liste yeterlidir:
- Powershell sürüm 3.0 veya üzeri
- .NET Framework 4.0 veya üzeri
- Windows Uzaktan Yönetim Dinleyicisi veya SSH (cygwin)
- Windows 7+ ve Windows Server 2008+ dahil sunucu işletim sistemleri
- Çikolatalı
- İşletim sistemi paketlerini güncellemek ve yama uygulamak için WSUS
- Ansible veya AWX
1. Adım: Chocalatey ve WSUS'yi yükleyin
Kişisel bilgisayarlarda en yaygın kullanılan İşletim Sistemi olan Windows kullanıcıları, yazılımlarını kurmak ve genel olarak yönetmek için Chocolatey gibi bir araçtan birçok fayda sağlayabilir. Komut Satırınız veya PowerShell'iniz aracılığıyla uygulamaları yüklemeyi çok kolaylaştırır. Öte yandan WSUS, kullanıcıların İşletim Sistemi güncellemelerini/yamalarını sunmasını kolaylaştırır.
Chocolatey'i kurmak için, Chocolatey ayrıntılı kılavuzuyla kurulumu izleyin ve Komut İstemi'nden Windows Uygulamalarını yönetin. İşlemi tamamladıktan sonra Windows Server 2019'da Windows Service Update Services nasıl yüklenir kılavuzunu kullanarak WSUS kurulumuna devam edebilirsiniz.
Adım 2: Ansible AWX'i yükleyin
Kullanım kolaylığı ve çoğu insanın seveceği kullanıcı dostu web yönetim alanı nedeniyle Windows ana bilgisayarlarını yönetmek için bu kılavuzda Ansible AWX'i kullanacağız. Ansible AWX'i CentOS 8'de Ansible AWX Kurulumu ve Yapılandırılması kılavuzunu kullanarak kurabilirsiniz.
AWX Sunucunuza eklenecek bir şey pywinrm'dir. Ansible, Windows sunucularıyla WinRM üzerinden iletişim kurmak için pywinrm paketini kullanır. Varsayılan olarak Ansible paketiyle yüklenmez ancak aşağıdaki çalıştırılarak kurulabilir:
sudo pip3 install "pywinrm>=0.2.2"Kurulumu ve pywinrm kurulumunu tamamladıktan sonra, kılavuzda açıklandığı gibi AWX'te aşağıdakileri ayarlayın:
- Gerekli izinlere sahip bir kullanıcı ve isteğe bağlı bir ekip
- Bir kuruluş veya siz varsayılan olanı kullanabilirsiniz
- Windows ana bilgisayarına bağlanmak için kimlik bilgileri
- Ana makinelerinizin listesini içeren envanter (Değişkenleri aşağıda paylaşıldığı gibi ekleyin)
- Bir Proje Oluşturun - Başucu kitaplarına sahip bir GitHub deposu kullanabilirsiniz
- Her şeyin lansmana hazır olduğu bir şablon oluşturun
WinRM özelliklerine uyacak özel değişkenler eklemek için envantere birkaç değişiklik ekleyeceksiniz. Aşağıda “envanterler” altına eklemeniz gereken değişkenler ve bunun için paylaşılan ekran görüntüsü yer almaktadır.
ansible_connection: winrm
ansible_winrm_transport: basic
ansible_winrm_server_cert_validation: ignore3. Adım: Ansible için Windows Uzaktan Yönetimini Yapılandırma
Ansible, yönetilen sunucularda kurulu hiçbir aracı kullanmadığından, İşletim Sisteminin iletişim için sağladığı avantajlardan yararlanır. Windows 2019'da Secure Shell (ssh) tanıtıldı ancak 2019'un altında başka Sunucu sürümleriniz varsa, diğer sürümlerde de mevcut olduğundan Windows Uzaktan Yönetim (WinRM) ile yetinmek zorunda kalacaksınız.
Ansible'ın Windows ana bilgisayarıyla nasıl arayüz kurabileceğini yöneten WinRM hizmetinin iki ana bileşeni vardır: dinleyici ve hizmet yapılandırma ayarları. WinRM hizmetleri bir veya daha fazla bağlantı noktasındaki istekleri dinler. Bu bağlantı noktalarının her birinde oluşturulmuş ve yapılandırılmış bir dinleyici bulunmalıdır.
Temelleri ayarlamak için kullanılabilecek ConfigurationRemotingForAnsible.ps1 komut dosyasını kullanacağız. Bu komut dosyası, hem HTTP hem de HTTPS dinleyicilerini kendinden imzalı bir sertifikayla ayarlar ve hizmette Temel kimlik doğrulama seçeneğini etkinleştirir. Bu konuda daha fazla bilgiyi Ansible Docs'ta bulabilirsiniz.
Bu betiği kullanmak için PowerShell'de (Yönetici olarak) aşağıdakini çalıştırın:
$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
$file = "$env:temp\ConfigureRemotingForAnsible.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $fileAşağıda bununla ilgili bir ekran görüntüsü paylaşılmıştır.
WinRM Dinleyici
WinRM hizmetleri bir veya daha fazla bağlantı noktasındaki istekleri dinler. Bu bağlantı noktalarının her birinde oluşturulmuş ve yapılandırılmış bir dinleyici bulunmalıdır. WinRM hizmetinde çalışan mevcut dinleyicileri görüntülemek için aşağıdaki komutu çalıştırın:
winrm enumerate winrm/config/ListenerAynı amaçla aşağıda başka bir ekran görüntüsü paylaşılmıştır.
Adım 4: Windows'ta Ansible Playbook'u çalıştırın
WinRM kurulduktan sonra, artık onu seçtiğiniz Linux sunucunuzda yüklü olan Ansible'ı kullanarak yönetmenin zamanı geldi. Terminali kullanmayı tercih ediyorsanız, “/etc/ansible/hosts” dosyanıza windows adında bir host ekleyebilir ve her şeyin düzgün çalışıp çalışmadığını test etmek için aşağıdaki komutu çalıştırabilirsiniz.
ansible -i windows -m win_ping -e ansible_connection=winrm \
-e ansible_user=<Your-Windows-User> -e ansible_password=<Your-Windows-Password> \
-e ansible_winrm_transport=basic \
-e ansible_winrm_server_cert_validation=ignoreHer şey yolundaysa aşağıdaki gibi bir mesaj görmelisiniz
172.19.253.55 | SUCCESS => {
"changed": false,
"ping": "pong"
}Test tamamlandıktan ve başarılı olduktan sonra AWX web arayüzümüze geri dönebilir ve oyun kitaplarını çalıştırabiliriz. Başucu Kitabınızı nereye yerleştirmeye karar verdiğinize bağlı olarak (Git veya sunucuda), bir şablon oluşturup başlatmanın zamanı gelmiştir. Zaten kimlik bilgilerini, kullanıcıyı, kuruluşu, projeyi, envanteri ve şimdi de bir şablon oluşturduğunuzu varsayıyoruz.
Aşağıdaki ekran görüntüsünde de görülebileceği gibi, sunucu içinde (Manuel SCM) bir playbook içeren bir proje kullandım.
“/var/lib/awx/projects” içerisinde “test” adında bir dizin oluşturdum ve ardından “main.yaml adında örnek bir çalışma kitabı oluşturdum. ” aşağıdaki içeriklerle:
- hosts: all
gather_facts: true
tasks:
- name: Install Git
win_chocolatey:
name: git
state: presentYukarıda hazırladığımız Windows Server 2019'da “Git” kurulumu basit bir iştir.
Bu tamamlandıktan sonra, her şeyi birbirine yapıştıran ve başucu kitabını çalıştıran bir "Şablon " oluşturabiliriz. Ayarların doldurulduğu bir ekran görüntüsü aşağıda paylaşılmaktadır.
Kaydet ve ardından Başlat.
Her şeyin yolunda gitmesi durumunda, taktik kitabı çalışmaya başlayacak ve bir başarı mesajı sunulacaktır. Aşağıda bir örnek gösterilmiştir
Adım 5: Git'in kurulu olduğunu doğrulayın
Oynatma tamamlandıktan sonra Git'in gerçekten Ansible tarafından Chocolatey kullanılarak yüklendiğini doğrulamak için Windows Sunucumuzda oturum açabiliriz. “Başlat” simgesine basın veya aşağıda gösterildiği gibi “Git”i yeni bir uygulama olarak görmelisiniz.
Ve gitmeye hazırız!!
Son düşünceler
AWX ve Ansible genel olarak, özellikle yönettiğiniz çok sayıda sunucunuz varsa gidilecek yoldur. Her şeyi bir kez ayarlayın ve altyapınızı yapılandırmak için Başucu Kitaplarınızı eklerken rahatlayın. Ansible ve otomasyonun renkli dünyasına girmediyseniz o muhteşem ülkeye giden bir sonraki gemiye binin. Son olarak, muhteşem desteğinize teşekkür etmeye devam ediyoruz ve kılavuzun faydalı olduğunu ve güvende kalmaya devam etmenizi umuyoruz. Dikkatinizi çekebilecek diğer kılavuzlar arasında aşağıdakiler yer almaktadır.
Ansible ile OpenSSL Kendinden İmzalı Sertifikalar Oluşturun
Ansible'ı kullanarak Linux'ta Kullanıcıları ve Grupları Yönetin
Ansible için Linux Kullanıcı Şifreli Parolası Nasıl Oluşturulur
CentOS'ta Elasticsearch Kümesini Kurma | Ansible ile Ubuntu
Apache Tomcat'i Ansible ile Debian 10'a yükleyin







