Ansible nedir?
Ansible, işletmeye yapılandırma yönetimi, dağıtım, tedarik vb. konularda yardımcı olabilecek açık kaynaklı bir DevOps aracıdır. Dağıtımı kolaydır; sunucular arasında iletişim kurmak için SSH’den yararlanır. Otomasyon işlerini tanımlamak için çalışma kitabını kullanır ve çalışma kitabı çok basit bir YAML dili kullanır.
Ansible, BT altyapınıza güvenilirlik, tutarlılık ve ölçeklenebilirlik sağlar. Ansible kullanarak veritabanlarının, depolamanın, ağların, güvenlik duvarlarının yapılandırmalarını otomatikleştirebilirsiniz. Uygulamayı çalıştırmak için gerekli tüm paketlerin ve diğer tüm yazılımların sunucuda tutarlı olmasını sağlar.
Bir örnek verelim; Visual C++ üzerine kurulu bir uygulamanın hata ayıklama sürümüne sahipsiniz. Şimdi, bu uygulamayı bir bilgisayarda çalıştırmak istiyorsanız, Microsoft Visual C++ kitaplığı DLL’leri gibi bazı ön koşulları karşılamanız ve bilgisayarınızda Visual C++ yüklü olması gerekir. Ansible’ın tüm bu temel paketlerin ve tüm yazılımların bilgisayarınızda kurulu olduğundan emin olacağı ve uygulamanızın test veya üretim ortamı olsun tüm ortamlarda sorunsuz çalışabilmesi için bu bölümdür.
Ayrıca, uygulamanızın tüm geçmiş verilerini de tutar, böylece herhangi bir zamanda önceki sürüme geri dönmek isterseniz veya onu yükseltmek isterseniz, bunu kolayca yapabilirsiniz.
Aşağıdaki özelliklerden bazılarına bir göz atalım.
Agentless – Bu, puppet ve chef gibi diğer çözümler gibi düğümü yöneten hiçbir tür yazılım veya aracı olmadığı anlamına gelir.
Python – Günümüz dünyasının hızlı ve sağlam programlama dillerinden biri olan python üzerine kurulmuştur.
SSH – Güvenli olan çok basit şifresiz ağ kimlik doğrulama protokolü. Bu nedenle, bu anahtarı müşteriye kopyalamak sizin sorumluluğunuzdur.
Push architecture – Gerekli konfigürasyonları onlara, müşterilere aktarın. Yapmanız gereken tek şey, bu konfigürasyonları (çalışma kitabı) yazmak ve hepsini bir kerede düğümlere itmektir. Değişiklikleri dakikalar içinde binlerce sunucuya aktarmanın ne kadar güçlü olabileceğini görüyorsunuz.
Setup – çalışması için minimum gereksinim ve yapılandırma gerekir.
Ansible Mimarisi
Linux sunucusu olan Public/Private Cloud ile başlayalım. Ayrıca tüm BT kurulumları ve yapılandırmaları için bir havuz görevi görebilir.
Yukarıdaki mimaride, ansible sunucunun bağlandığı ve playbook’ları SSH aracılığıyla ittiği bir grup ana makine vardır.
Kullanıcıların, ana bilgisayarlara dağıtılan bir oyun kitabını doğrudan çalıştırabilecekleri, ansible otomasyon motoruna sahiptir. Ansible otomasyon motorunda birden fazla bileşen vardır. Birincisi bir ana bilgisayar envanteridir. Tüm ana bilgisayarların tüm IP adreslerinin bir listesidir.
Daha sonra modüller var. Ansible yüzlerce dahili modülle birlikte gelir ve modüller, bir çalışma kitabı çalıştırdığınızda yürütülen kod parçalarıdır. Bir oyun kitabı, oynatmaları içerir, bir oynatma, farklı görevleri içerir ve bir görev, modülleri içerir.
Bir çalışma kitabı çalıştırdığınızda, ana bilgisayarlarınızda çalıştırılan modüllerdir ve bu modüller içlerinde eylem içerir. Bu nedenle, bir çalışma kitabı çalıştırdığınızda, bu eylem ana makinelerinizde gerçekleşir. Özel modüllerinizi de yapabilirsiniz. Tek yapmanız gereken birkaç satır kod yazıp onu modülünüz yapmak ve istediğiniz zaman çalıştırabilirsiniz.
Sonra mimarinin oyun kitapları var. Buradaki Playbook’lar aslında iş akışınızı tanımlar çünkü bir playbook’a yazdığınız görevler ne olursa olsun, onları yazdığınız sırayla yürütülür. Örneğin, önce bir paket kurun ve sonra başlayın yazdıysanız, aynısını yapacaktır. Playbook’lar YAML kodu yazmak için çok basittir. YAML kodu çok basit bir veri serileştirme dilidir; İngilizceye çok benziyor.
Ardından, mimaride eklentiler var. Buradaki eklentiler özel tür modüllerdir. Bu eklentiler, bir modül düğümlerde yürütülmeden önce yürütülür. Eklentiler, günlüğe kaydetme amacıyla ana kontrol makinesinde yürütülür. Geri arama eklentileriniz var çünkü bu, görüntüleme ve günlüğe kaydetme amacıyla farklı yanıtlanabilir olaylara bağlanmanıza olanak tanır. Önbellek eklentileri, maliyetli bilgi toplama işlemlerinden kaçınmak için gerçeklerin önbelleğini tutmak için kullanılır. Ansible’ın ayrıca ön uç modüller olan eylem eklentileri vardır ve modülleri çağırmadan önce denetleyici makinesinde görevleri yürütebilirler.
Mimarinin bağlantı eklentileri vardır. Ana makinelerinizle bağlantı kurmak için her zaman bir SSH kullanmanız gerekmez; ayrıca bir bağlantı eklentisi de kullanabilirsiniz. Örneğin, ansible size bir docker kapsayıcı bağlantı eklentisi sağlar ve bu bağlantı eklentisini kullanarak tüm Docker kapsayıcılarınıza kolayca bağlanabilir ve hemen yapılandırmaya başlayabilirsiniz.
Bu tamamen mimariyle ilgiliydi. Ardından, size tam olarak nasıl çalıştığını anlatalım.
Ansible Nasıl Çalışır?
Ansible, düğümlere bağlanarak ve ansible modülleri olarak adlandırılan küçük programları dışarı iterek çalışır. Ansible daha sonra bu modülleri varsayılan olarak SSH üzerinden yürütür ve bittiğinde bunları kaldırır.
Ansible yönetim düğümü, Playbook’un tüm yürütülmesini kontrol eden kontrol düğümüdür. Kurulumu çalıştırdığınız düğümdür ve envanter dosyası, modüllerin çalıştırılması gereken ana bilgisayarın listesini sağlar. Yönetim düğümü ssh bağlantısı yapar ve ardından ana makinelerde modülleri çalıştırır ve ürünü kurar. Modüller kurulduktan sonra kaldırır. Ansible bu şekilde çalışır.
Yazının orijinalini buradan okuyabilirsiniz.