Ansible

Vikipedi, özgür ansiklopedi
Ansible
Ansible logo.svg
Geliştirici(ler) Michael DeHaan
Güncel sürüm 1.9.2 / 25 Haziran 2015 (7 yıl önce) (2015-06-25)
Programlama dili Python
İşletim sistemi GNU/Linux, Unix tipi, Windows
Tür Yapılandırma yönetimi
Lisans GNU Genel Kamu Lisansı
Resmî sitesi ansible.com
Kod deposu Bunu Vikiveri'de düzenleyin
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.

Ansible GNU Genel Kamu Lisansı'na sahiptir.[8]

Mimari[değiştir | kaynağı değiştir]

Ç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.[10]

Tasarım Hedefleri[değiştir | kaynağı değiştir]

Ansible'ın tasarım hedefleri[9] şunlardır:
  • Doğal olarak küçük. Yönetim sistemleri ortam üzerinde ek bağımlılıklar oluşturmamalıdır.[10]
  • İstikrarlı.
  • Güvenli. Ansible korunmasız vekilleri uçlara dağıtmaz. Sadece zaten kritik olarak test edilmiş olan OpenSSH gereklidir.[10]
  • Çok güvenilir. Betiklerin yeniden çalıştırılmasıyla oluşacak yan etkileri önlemek için dağıtıma eşkuvvetli kaynak modeli uygulanır.[1]
  • Düşük öğrenme eğrisi. Oyun Kitapları YAML tabanlı kolay ve tanımlayıcı bir dil kullanmaktadır.

Modüller[değiştir | kaynağı değiştir]

Modüller Ansible'da her bir iş için bir birim olarak hesaba katılır. Her birim genelde kendi başına çalışabilir ve standart bir betik dilinde (örneğin Python, Perl, Ruby, bash, gibi) yazılabilir. Modüllerin en temel özelliklerinden biri eşkuvvetli olmalarıdır. Bunun anlamı eğer bir işlem birçok kez tekrar etse bile (örneğin bir elektrik kesintisinin ardından) her zaman sistemi aynı duruma geri döndürecektir.[9]

Envanter yapılandırması[değiştir | kaynağı değiştir]

Envanter Ansible tarafından erişilebilen uçların tanımlamasıdır. Öntanımlı olarak Envanter /etc/ansible/hosts altındaki INI biçimindeki bir yapılandırma dosyasında tanımlanır. Yapılandırma dosyası Ansible tarafından erişilebilen her bir ucun ya IP adresini ya da ana makine adını listeler. Ayrıca uçlar gruplara atanabilir.[11] Örnek bir yapılandırma dosyası:
192.168.6.1

[webservers]
foo.example.com
bar.example.com
Bu yapılandırma dosyası üç uç belirtmektedir. İlk uç bir IP adresiyle ve diğer ikisi de ana makine adıyla belirtilmektedir. Ek olarak son iki uç webservers grup adı altında gruplandırılmıştır.

Ansible ayrıca herhangi bir yazılım sisteminden veri çekebilen bir özelleştirilmiş "Dinamik Envanter"e de yöneltilebilir.

Oyun Kitapları[değiştir | kaynağı değiştir]

Oyun Kitapları Ansible'daki yapılandırmaları, dağıtımları ve düzenlemeleri ifade eder.[12] Oyun Kitabı biçimi YAML'dir. Her bir Oyun Kitabı bir ana makine grubunu bir rol dizisiyle eşler. Her bir rol Ansible görev çağrılarına yapılan çağrılarla ifade edilir.

Platform desteği[değiştir | kaynağı değiştir]

Kontrol makinelerinde Python 2.6 olmalıdır. Kontrol makinelerinde desteklenen işletim sistemleri çoğu Linux ve Unix dağıtımını destekler. Bunlar arasında Red Hat, Debian, CentOS, OS X, BSD ve diğerleri gösterilebilir.

Yönetilen uçlarda Python 2.4 veya daha sonrası olmalıdır. Yönetilen uçlardan Python 2.5 veya öncesi yüklü olanlarda ayrıca python-simplejson paketinin yüklenmesi gereklidir.[13] Ansible 1.7 sürümünden itibaren Windows[14] uçlarını da yönetebilmektedir.[13]

Bulut bütünleşmesi[değiştir | kaynağı değiştir]

Ansible sanallaştırma ortamlarına ve açık ve kapalı bulut ortamlarına dağıtım yapabilir. Bunlar arasında VMware, OpenStack, AWS, Rackspace Bulut Sunucuları, DigitalOcean Damlacıkları, Eucalyptus Bulut, KVM ve CloudStack gösterilebilir.[9]

Büyük veri bütünleşmesi[değiştir | kaynağı değiştir]

Ansible büyük veri ve Hadoop, Riak ve Aerospike gibi saklama ve analiz ortamlarının dağıtımını yapabilir. Ansible'ın bu ortamlarda irdelediği sorunlardan biri her bir ucun kaynak tüketiminin yönetimidir. Özellikle büyük veri, depolama ve analiz ortamları olabildiğince az işlemci zamanı ve hafıza harcayarak kaynaklarda tutumlu olmayı amaçlamaktadır. Bunun da ötesinde Ansible kullanılabilir işlemci kaynakları gibi değerleri ölçmek için izleme özellikleri sunmakta ve bu sayede uçların yönetimini daha kolaylaştırmaktadır.[9]

Kullanıcılar[değiştir | kaynağı değiştir]

Ansible Atlassian, Twitter, OneKingsLane, Evernote, TrunkClub, edX, hootsuite, GoPro, NewsCred, Mavenlink, Care.com ve başka birçok kurum tarafından kullanılmaktadır.[15]

Ayrıca bakınız[değiştir | kaynağı değiştir]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ a b "Achieving Rolling Updates and Continuous Deployment with Zero Downtime" 27 Temmuz 2014 tarihinde Wayback Machine sitesinde arşivlendi. (pdf).
  2. ^ "Getting Started | Ansible" 6 Temmuz 2015 tarihinde Wayback Machine sitesinde arşivlendi.. 2014-02-06.
  3. ^ "Ansible: CM, Deployment, and Ad Hoc Task Execution All in One" 16 Nisan 2021 tarihinde Wayback Machine sitesinde arşivlendi..
  4. ^ "An Interview with Ansible Author Michael DeHaan" 22 Temmuz 2014 tarihinde Wayback Machine sitesinde arşivlendi..
  5. ^ "Ansible" 4 Eylül 2015 tarihinde Wayback Machine sitesinde arşivlendi..
  6. ^ "Ansible" 5 Eylül 2015 tarihinde Wayback Machine sitesinde arşivlendi..
  7. ^ "Ansible FAQ" 6 Temmuz 2015 tarihinde Wayback Machine sitesinde arşivlendi..
  8. ^ "Arşivlenmiş kopya". 12 Ağustos 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ekim 2015. 
  9. ^ a b c d e "Ansible in Depth" 2 Mayıs 2014 tarihinde Wayback Machine sitesinde arşivlendi. (pdf).
  10. ^ a b c d e "The Benefits of Agentless Architecture" 2 Mayıs 2014 tarihinde Wayback Machine sitesinde arşivlendi. (pdf).
  11. ^ "Inventory | Ansible" 6 Temmuz 2015 tarihinde Wayback Machine sitesinde arşivlendi.. 2014-04-26.
  12. ^ "Playbooks | Ansible" 6 Temmuz 2015 tarihinde Wayback Machine sitesinde arşivlendi.. 2014-04-26.
  13. ^ a b "Getting | Started" 6 Temmuz 2015 tarihinde Wayback Machine sitesinde arşivlendi.. 2014-02-06.
  14. ^ "Ansible 1.7 is released - Windows beta and more!" 28 Eylül 2015 tarihinde Wayback Machine sitesinde arşivlendi.. 2014-08-07.
  15. ^ "Ansible is Simple IT Automation" 13 Temmuz 2014 tarihinde Wayback Machine sitesinde arşivlendi.. 2014-04-26.

Dış bağlantılar[değiştir | kaynağı değiştir]