Azure Virtual Machine Extensions
Bu makalemizde değineceğimiz Konulardan birisi Azure ortamınızdaki Sanal Makineleriniz için Extension yani Uzantı kavramını açıklayarak , Bu Sanal Makine özelliği ile Sanal Makine üzerinde hangi işlemleri gerçekleştirebilirsiniz. Bunları detaylandırarak , Kısa bir uygulama gerçekleştiriyor olacağız.
Organizasyon yapınızdaki Azure ortamında Sanal Makineleri oluşturmak , Kaldırmak veya Bakımlarını yapmak bazı zamanlarda bize iş yükü oluşturabilmekte . Bu işlemler bir müddet sonra Organizasyonun Sistem Yöneticisi için Hem Rutin bir iş hemde bazı durumlarda gereksiz zaman kaybı olabilmektedir. Microsoft Azure bu rutin işlemlerle alakalı bize kolaylık sağlayabilmek için : Oluşturma, Kaldırma ve benzeri tüm işlemleri otomatize etmemize imkan tanımaktadır.
Azure Virtual Machine Extensions yani Azure Sanal Makine Uzantıları , Sanal Makine konfigüre işlemlerini tamamladıktan sonra Sanal Makine Deployment yani Dağıtım işlemi sonrası gerçekleşen küçük uygulamalar olarak tanımlayabiliriz. Bu küçük Uygulama Azure Sanal Makinenizde belirlediğiniz , Oluşturduğunuz Scriptlere göre otomasyon işlemlerinizi gerçekleştirmektedir.
Konuyu daha da detaylandıracak olursak ;
Örnek olarak Azure ortamınızdaki Sanal Makinenize Yazılım kurulumu gerekiyorsa , Antivirüs Yazılımları , Servislerin çalışmasını sağlayan çeşitli ajanlar , Sürücüler , Yedekleme uygulamaları ve daha fazlası Virtual Machine Extension olarak kullanılabilmektedir.
Azure Sanal Makine Uzantıları , ARM yani Azure Resource Manager , Azure CLI , Azure Powershell ve Portal üzerinden yönetilebilmektedir.
Azure Sanal Makine Uzantıları , Azure ortamınızda Yeni bir Sanal Makine oluşturduğunuzda konfigüre edildiği takdirde içerisinde yer alacak şekilde oluşmaktadır.
Azure Ortamınızda bulunan Windows ve Linux işletim sistemli makineler için birbirinden farklı Third Party ürünler bulunmaktadır. Bunlar gün geçtikçe daha da çok artmaktadır. Şuan Microsoft Azure Cloud ortamının sağlamış olduğu Sanal Makine Uzantılarını sıralayarak kısaca işlevlerinin neler olduğunu açıklamak istiyorum :
- Acronis Backup ; Microsoft Azure Sanal Makineniz için Acronis Yedekleme ürünü
- Agent for Cloud Workload Protection (Windows) ; Microsoft Azure ortamınız için Symantec ürünüdür. Data Loss Prevention , Gerçek Zamanlı Anti-Malware özelliklerini bu ürünle kullanabilirsiniz.
- Agent for Windows Server Monitoring ; Microsoft Azure ortamındaki Sanal Makinelerinizi 7/24 şeklinde Monitoring işlemleri sağlanmaktadır.
- AMD GPU Driver Extension ; Microsoft Azure ortamında kullandığınız Sunucularınız için Sürücü yükleme Uzantısıdır.
- APM Insight .NET Agent ; Microsoft Azure ortamında bulunan Web uygulamalarınız için izleme sağlayan uzantıdır.
- Application Insight Agent ( .NET Preview ); Microsoft Azure ortamınızda bulunan Internet Information Services rolünde barındılan ASP.NET uygulamalarınızı izlemenizi sağlayan uzantıdır.
- Azure Active Directory based Windows Login ; Microsoft Azure ortamınızda bulunan Sanal Makinelerinizi Azure Active Directory ortamında oluşturmuş olduğunuz Kullanıcı Hesapları ile Login olmanızı sağlayan uzantıdır.
- Azure Performance Diagnostics ; Microsoft Azure ortamınızdaki Sanal Makinelerinizdeki Infrastructure as a Service Performans Sorunlarının giderilmesine yardımcı olan Uzantıdır.
- Azure Pipelines Agent ; Microsoft Azure ortamınızda kullandığınız Devops Servislerini kullanarak Microsoft Azure ortamında bulunan Sanal Makinelerinize Yazılım Dağıtılmasını sağlayan Uzantıdır.
- Chef VM Extensions for Windows ; Hem Fiziksel hemde Sanal Sunucu konfigürasyonlarının yönetimini sağlayan Windows ve Linux için bir Devops otomasyon aracıdır. Chef ürününün Sanal Makinelerde kullanılmasını sağlayan uzantıdır.
- CloudLink SecureVM Agent ; Dell EMC ürünüdür. Microsoft Azure ortamında bulunan Sanal Makinelerinizi kolaylıkla ve Güvenli bir şekilde bağlantı sağlayın , Monitoring ve Encryotion işlemlerinizi sağlayan uzantıdır.
- Control-M Agent ; Microsoft Azure ortamınızda bulunan işyüklerinizi Script’ler ile otomatize etmenizi sağlayan uzantıdır. Uygulama Dağıtımınıza büyük ölçüde ivme kazandırmaktadır.
- Custom Script Extension ; İşte Azure ortamında sıklıkla kullandığımız Uzantı Budur. Sıklıkla kullanmamızın sebebi ; Azure ortamındaki Sanal Makineleriniz için belirlemiş olduğunuz bazı görevleri otomatize edebilmeniz ve gerçekleştirebilmeniz için kullanmanız gereken uzantıdır. Bu uzantıyı Sanal Makinenizde konfigüre ettiğinizde ; Azure Storage alanında depolamış olduğunuz Powershell Betikleriniz veya dosyalarını download yani indirebilir, Sanal Makine Poweron sonrası bu işlemlerin Schedule edilmesini ve çalışmasını sağlayabilirsiniz.
- Datadog Agent ; Microsoft Azure ortamında bulunan sunucular , veritabanı , uygulamalardan gelen verilerin birbirleriyle iletişim kurmasını sağlayarak , izlememizi sağlayan uzantıdır.
- DxEnterprise for Windows ; Microsoft Azure Cloud ortamınızdaki DxEnterprise ‘nin gelişmiş cluster desteği , Windows’ta yüksek düzeyde kullanılabilir SQL Server’ı konfigüre ve management karmaşıklığını hissedilir seviyeye kadar azaltmaktadır.
- Dynatrace OneAgent ; Gelişmiş yapay zeka teknolojisi kullanarak Microsoft Azure ortamınızdaki uygulamalarınızın performansını izlenmesini sağlayan uzantıdır.
- Eset File Security ; Microsoft Azure ortamınızdaki Sanal Makinelerinizi virüsler , Rookitler , Casus yazılımlar , Şirket verilerinizi her türlü tehditten korunmasını sağlayan uzantıdır.
- HPE Security Fortify Application Defender ; Microsoft Azure ortamında deployment işlemi gerçekleşen uygulamalaroı monitoring ve koruma için Uygulama Koruma ajanının Sanal Makinede yüklü halde bulunan Internet Information System rolünün instance’ına entegre olmasını sağlayan uzantıdır.
- Kaspersky Hybrid Cloud Security Agent ; Microsoft Azure ortamınız için Saldırıları azaltmak , Kritik iş yüklerinizi korumak ve onların uyumluğunu sürdürebilir hale getirilmesini sağlayan uzantıdır.Bu uzantı sayesinde Cloud iş yüklerinizi Siber Güvenlik kabiliyetlerinin otomatize edilmesi mümkün olabilmektedir.
- Microsoft Antimalware ; Microsoft Azure ortamınızdaki Sanal Makineler için Microsoft Antimalware , Virüsleri , Casus Yazılımları ve diğer türden kötü amaçlı yazımları bularak ardından kaldırma işlemi sağlayarak ortamınızın güvenliğini en üst düzeye getiren uzantıdır.
- Network Watcher Agent for Windows ; Microsoft Azure ortamınızdaki Ağ performansınızı izlemenize ve bir problem mevcutsa tanı koymanıza destek sağlayan uzantıdır.
- NVDIA GPU Driver Extension ; Microsoft Azure ortamınızdaki Windows işletim sistemli N Serisinde hizmet veren Sanal Makinelerinize NVDIA GPU sürücüsü yüklenmesini sağlayan uzantıdır.
- Octopus Deploy Tentacle Agent ; Dünyanın en önemli .Net dağıtım otomasyon uygulaması olan Octopus Deploy’u kullanım sağlayarak , .Net uygulamalarını yüklemiş olduğunuz Sanal Makineye kurulumunu sağlayan uzantıdır.
- Powershell Desired State Configuration ; Yazılımlarınız için konfigürasyon datalarının deploy edilmesine veya yönetilmesini , hizmet vermesini sağlayan Windows Powershell yapılı bir yönetim platformu olarak anılmaktadır.
- Rapid7 Insight Agent ; Microsoft Azure ortamınızdaki Sanal Makineleriniz için SIEM görevi gören bir uzantıdır.
- SentinelOne Windows Extension ; Microsoft Azure ortamınızda Meydana gelen veya Gelebilecek tehditlerin önüne geçmek , bu tehditlerin ortama sızmadan tespit edilebilmesi ve bunlardan savunulabilmesi için Sanal Makinelerinizi bu ajan ile koruyabilmenizi sağlayan uzantıdır.
O halde Azure VM Extension ile alakalı uygulama gerçekleştirelim :
İlk olarak Sanal Makine kurulumlarını önceki makalemde anlatıldığı gibi gerçekleştirerek yapınızdaki Sanal Makineyi Power on duruma getiririz.
İlgili Sanal makinede amacımız Azure VM Extension ile Web Server yani ilgili sunucuya Powershell Script ile Web Server IIS Kurulumu sağlamak. Sanal Makine açıldığında “ Server Manager “ pencerisinde Script çalıştırıyor olacağımız Sunucuda kontrollerimi sağlamak için “ Add roles and features “ seçeneğini seçeriz.
Role kurulumlarını kontrol edebilmemiz için “ Next “ seçeneği ile devam ederiz.
Microsoft IIS Role kurulumunu kontrol edeceğimiz için “ Role-based or feature-based installation “ seçeneğini işaretleyerek “ Next “ seçeneğini seçeriz.
Role kontrollerinin sağlanacağı sunucumuzu seçerek “ Next “ seçeneğini seçeriz.
ve aşağıdaki sunucu rolleri alanında görüldüğü üzere “ Web Server ( IIS ) “ rolünün yüklü olmadığını görürüz.
“ Get-windowsfeature -name web-server “ Powershell komutu ile Web Server rolünün sunucuda kurulabilmesi mümkün mü ? mümkün değil mi ? Bunun kontrolünü sağladığımızda “ Available “ durumda olduğunu görürüz. Yani kurulabilir anlamında olduğunu incelemiş olduk.
Sanal Makine üzerinde kontrollerimizi gerçekleştirdiğimize göre işlemlere başlayabiliriz. İlk Azure portalımızdan yapacağımız extension konfigürasyonlarında kullanabileceğimiz bir kısa Script düzenleyerek , .ps1 uzantılı dosya oluştururuz. Oluşturmuş olduğumuz Scripti kendi kişisel bilgisayarımıza kaydedebiliriz.
Oluşturmuş olduğumuz .ps1 uzantılı dosyamızı masaüstümüzde oluştuğunu görmüş oluruz.
Azure Portalına geri dönerek yazmış olduğumuz Script dosyasının Sanal Makinemizde uygulanması için Portal ekranına gideriz. Azure Portalından “ Settings “ bölümü altında bulunan “ Extensions + applications “ konfigürasyon seçeneğini seçeriz. “ MSIIS “ adındaki Sanal Makinemize “ Extensions “ eklemek için “ Add “ seçeneğini seçeriz.
Makalemin başında sıraladığım Agent’lar ve Extension’ları görürüz. Bunların arasında bu uygulamamızda kullanacağımız extension “ Custom Script Extension “ seçeneğini seçerek ilerleriz.
“ Custom Script Extension “ bölümünü seçtikten sonra “ Next “ seçeneğini seçeriz.
“ Script File “ yükleyebilmemiz için yapımızda Storage Account olması gerekmektedir. Hazırlamış olduğumuz Script dosyasını Storage Account’umuza yüklüyor olacağız.
Microsoft Azure Portal sayfasına tekrardan geri dönerek , Azure Portal Arama Çubuğumuza “ Storage Accounts “ yazarak servislerden “ Storage accounts “ seçeneğini seçeriz.
“ ozdemir “ adlı storage account’umuzun üzerine tıklayarak devam ederiz.
“ Storage Account “ içeriğine girdikten sonra dosya yükleyeceğimiz Container içeriğine girmek için “ Data storage bölümünden “ Containers “ seçeneğini seçerek “ İmages “ adındaki container objesine tıklayarak içeriğine gireriz.
“ images “ adındaki container içeriğine script ekleme işlemimiz için “ upload “ seçeneğini seçeriz. ardından sağ tarafta açılan ekranda Klasör simgesine tıklarız.
Hazırlamış olduğumuz Web Server rol script dosyamızı seçerek blob halde Container’ımıza ekleriz.
“ Files “ alanına yüklemiş olduğumuz .ps1 uzantılı dosyamız yüklenmiştir. “ Upload “ seçeneğini seçerek ilgili script dosyamızı container’a yükleme işlemini başlatırız.
Script dosyamızın yüklenme işlemi başarıyla tamamlanmıştır.
Aynı Extension ekleme ekranımıza geri dönerek “ Browse “ seçeneğini seçeriz .
“ ozdemir “ storage account seçeneğine tıklayarak içeriğine gireriz.
Powershell Script dosyasını “ images “ adındaki container ekleme sağlamıştık. İçeriğine girerek devam ederiz.
“ Web-Server_Extenisions.ps1 “ adındaki dosyamızı seçerek “ Select “ seçeneğine tıklarız.
Extension yükleme için gerekli olan “ Script File “ kutucuğuna dosyamızı ekledik. “ Arguments “ kutucuğuna dilediğimiz isimlendirmeyi sağlayarak “ Review + create “ seçeneğini seçeriz.
Ardından Extension konfigürasyonlarımızda herhangi bir problem bulunmadığının bilgisini alırız. “ Create “ seçeneğini seçeriz.
Oluşturma işlemlerinin başladığını görmüş oluruz.
Deployment işlemleri sürmektedir.
Extension deployment işlemleri tamamlanmıştır. Extension bölümümüze gitmek için “ Go to Resource “ seçeneğini seçerek devam ederiz.
Custom Script Extension yükleme işleminin başarıyla gerçekleştiğini görmüş oluruz.
Oluşturmuş olduğumuz Extension öğesinin yani Powershell script’inin “ Provisioning succeeded “ durumu ile başarıyla gerçekleştiğini görmüş oluruz.
Sanal Makinemizi kontrol ettiğimizde “ Web Server ( IIS ) “ rolümüzün yazmış olduğumuz Script sayesinde kurulum sağlandığını görürüz.
Web Server IIS Rolünü yükleme işlemi sağladık. Makinemizdeki bu rolü dışarıya açmak için “ 80 – HTTP “ portunu Sanal Makine konfigürasyon bölümünde “ Networking “ ayarlarımda port kuralı eklemek gerekmektedir. Bunun için “ Settings “ bölümü altında “ Networking “ seçeneğini seçeriz. “ Add inbound port rule “ seçeneğini seçeriz.
“ Service “ bölümünden “ HTTP “ seçeneğini seçerek “ Add “ seçeneğini seçeriz.
“ Port_80 “ Güvenlik Kuralı oluşma işlemleri tamamlanmıştır.
Sanal Makine “ Overview “ seçeneğini seçerek “ Public IP Address “ karşılığındaki IP adresimizi kopyalarız.
Extension ile Sanal Makinemize script ile kurulum sağlamış olduğumuz IIS Rolümüzün karşılama ekranı gelecek mi ? Kontrol edelim. Sanal Makine HTTP://SanalMakinePublicAddresbilgisi Google Chrome Browser arama çubuğuna yapıştırarak arama sağlarız.
Ve kurulum sağlamış olduğumuz Web Server sunucumuzun IIS ekranına erişim sağlandığını görmüş oluruz.
Makalemi zaman ayırıp okuduğunuz için çok teşekkür ederim. Diğer makalelerimde görüşmek üzere.
Faydalı olması Dileğiyle.
Eline sağlık.
Teşekkür ederim Hakan Hocam.