wiki - ansible
Ansible bilgisayarları yapılandırmak ve yönetmek için kullanılan bir özgür yazılım platformu. Çok uçlu yazılım dağıtımını, özel amaçlı görev yürütmeyi ve yapılandırma yönetimini birleştirir.[1] Uçları SSH veya PowerShell üzerinden yönetir ve üzerlerinde Python (2.4 veya üzeri) [2] kurulmuş olmasına ihtiyaç duyar. Modüller JSON ve standart çıktı üzerinde çalışır ve herhangi bir programlama dilinde yazılabilir. Sistemlerin yeniden kullanılabilir kaynaklarını ifade etmek için YAML kullanılır.[3]
Platformun kurucusu tanınmış sunucu uygulamalası Cobbler'ın yazarı ve uzaktan yönetim için Func çerçevesinin ortak yazarı olan Michael DeHaan'dır.[4] Platform Red Hat'in sahibi olduğu Fedora Linux dağıtımının bir parçası olarak gelmektedir. Ayrıca Red Hat Enterprise Linux, CentOS ve Scientific Linux üzerinde ek paketlerle eklenebilmekte ve başka işletim sistemlerinde de kullanılabilmektedir.[5] Ansible ticari olarak Ansible Inc. tarafından desteklenmekte ve finanse edilmektedir.[6]
Ansible ismi Orson Scott Card'ın Uzay Oyunları isimli romanındaki kurgusal anlık hiperuzay iletişim sisteminden gelmektedir[7] ve ilk olarak Ursula K. Le Guin'in 1966 yılında çıkan romanı Rocannon's World'de kullanılmıştır.
Mimari
Çoğu yapılandırma yönetimi yazılımında olduğu gibi Ansible da iki tür sunucuyu ayırmaktadır: kontrol makineleri ve uçlar. İlk olarak düzenlemenin başladığı tek bir kontrol makinesi vardır. Uçlar SSH üzerinden bir kontrol makinesiyle yönetilirler. Kontrol makinesi uçların konumunu envanterinden tanımlar.
Ansible uçları düzenlemek için modülleri uçlara SSH üzerinden dağıtır. Modüller geçici olarak uçlarda depolanır ve kontrol makinesiyle standart çıktı üzerindeki bir JSON protokolü aracılığıyla iletişim kurar.[9] Ansible uçları kontrol etmezken kaynak tüketmez çünkü Ansible için artalanda herhangi bir hizmet ya da program çalışmaz.[10]
Çoğu popüler yapılandırma yönetimi yazılımının (örneğin Chef, Puppet ve CFEngine) aksine Ansible vekilsiz bir mimari kullanır.[10] Vekil tabanlı bir mimaride kontrol makinesiyle iletişim kurmak için uçlarda yerel olarak kurulmuş bir hizmet olmalı. Vekilsiz bir mimarideyse uçların kontrol makinesiyle bağlantı kurması için herhangi bir hizmetin kurulumuna gerek yoktur. Bu tür mimariler uçların kontrol makinesini sürekli taramasını önleyerek ağ üzerindeki yükü azaltır.[1