İçeriğe atla

Ansible

Ansible
Geliştirici(ler)Michael DeHaan
Güncel sürüm1.9.2 / 25 Haziran 2015 (9 yıl önce) (2015-06-25)
Programlama diliPython
İşletim sistemiGNU/Linux, Unix tipi, Windows
TürYapılandırma yönetimi
LisansGNU Genel Kamu Lisansı
Resmî sitesiansible.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

Ç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

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

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ı

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ı

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

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

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

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

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

Kaynakça

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

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Linux</span> Bir işletim sistemi çekirdeği

Linux ; Linux çekirdeğine dayalı, açık kaynak kodlu, Unix benzeri bir işletim sistemi ailesidir. GNU Genel Kamu Lisansı versiyon 2 ile sunulan ve Linux Vakfı çatısı altında geliştirilen bir özgür yazılım projesidir. Linux ismi ilk geliştiricisi olan Linus Torvalds tarafından 1991 yılında verilmiştir. Günümüzde süper bilgisayarlarda, akıllı cihazların ve internet altyapısında kullanılan cihazların işletim sistemlerinde yaygın olarak kullanılmaktadır. Bunlardan en popüler olanı Google tarafından geliştirilen Android işletim sistemidir.

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

Linux dağıtımı ; Linux çekirdeği, GNU araçları ve bir masaüstü ortamının bir araya gelmesiyle, bu birlikteliği sürdürülebilir şekilde yönetecek bir yapılandırma araçları seti, yazılım güncelleme araçları vb. ile oluşturularak tam teşekküllü bir işletim sistemi haline gelen uygulamalar bütününü ifade eder.

<span class="mw-page-title-main">Sunucu (bilişim)</span> bilgisayar ağlarında, diğer ağ bileşenlerinin (kullanıcıların) erişebileceği, kullanımına ve/veya paylaşımına açık kaynakları barındıran bilgisayar birimi

Sunucu, bilişim alanında "istemci" denilen diğer program ve cihazlara çeşitli işlevler sunan bilgisayar donanımları veya yazılımlarıdır. Bu mimariye istemci-sunucu modeli denir. Sunucular, istemciler arasında veri veya kaynak paylaşımı, bir istemci için hesaplama yapma gibi çeşitli işlevleri yerine getirebilirler. Bu işlevlere genellikle "servis" veya "hizmet" denir. Tek bir sunucu çok sayıda istemciye hizmet verebilir, tek bir istemci de çok sayıda sunucudan hizmet alabilir. İstemci ve sunucu aynı cihaz üzerinde çalışabileceği gibi, istemci ağ üzerinden farklı bir cihazdaki sunucuya da bağlanabilir. Tipik sunucular arasında veritabanı sunucuları, dosya sunucuları, e-posta sunucuları, yazdırma sunucuları, web sunucuları, oyun sunucuları ve uygulama sunucuları sayılabilir.

<span class="mw-page-title-main">Enlightenment</span>

Enlightenment, basit, hızlı, sade ve kullanışlı bir masaüstü ortamı yaratmak için başlatılan bir projedir. EFL adı verilen pek çok parçadan oluşmuş bir grup kütüphane üzerine inşa edilmiştir.

<span class="mw-page-title-main">LXDE</span> Masaüstü ortamı

LXDE, Unix benzeri işletim sistemleri için geliştirilen özgür ve açık kaynak kodlu bir masaüstü ortamıdır.

Bir hiper yönetici veya sanal makine monitörü (VMM), sanal makineleri oluşturan ve çalıştıran bilgisayar yazılımı, bellenim veya donanımdır. Bir hipervizörün bir veya daha fazla sanal makineyi çalıştırdığı bir bilgisayara ana makine adı verilir ve her sanal makineye konuk makinesi adı verilir. Hiper yönetici, konuk işletim sistemlerini sanal işletim platformuyla sunar ve konuk işletim sistemlerinin yürütülmesini yönetir. Çeşitli işletim sistemlerinin birden fazla örneği sanallaştırılmış donanım kaynaklarını paylaşabilir: örneğin, Linux, Windows ve macOS örneklerinin tümü tek bir fiziksel x86 makinede çalışabilir. Konuk işletim sistemleri aynı çekirdeğe sahip farklı Linux dağıtımları gibi kullanıcı alanında farklılık gösterebilse de, bu, tüm örneklerin tek bir çekirdeği paylaşması gereken işletim sistemi düzeyinde sanallaştırma ile çelişir.

Pisi Linux; PiSi paket yönetim sistemini içeren Pardus 2011 sürümünü taban alan, özgür yazılım topluluğu tarafından geliştirilen, bilgisayar kullanıcılarına kurulum, yapılandırma ve kullanım konusunda büyük kolaylık sağlayan ve onların başlıca masaüstü gereksinimlerini karşılamayı amaçlayan, son kullanıcı odaklı bir GNU/Linux dağıtımıdır. Anka takımı tarafından geliştirilme süreci devam eden Pisi Linux, 10 Temmuz 2015'te 1.2 sürümü yayımlandı. İçerisinde 6000'den fazla güncellenmiş paketi bulunan 1.2 sürümü sonrası ise büyük değişimler getirecek olan 2.1 sürümü ile tüm paketler yeni sürümlerine geçirildi ve birçok hata giderildi, bu sayede Pisi Linux'un hızı ve stabilitesi artırılmış oldu.

<span class="mw-page-title-main">Webmin</span> Web tabanlı sistem yapılandırma aracı

Webmin, Unix benzeri sistemler için web tabanlı sistem yapılandırma aracıdır. Son sürümlerinde Microsoft Windows desteği bulunuyor. Bu uygulama sayesinde; kullanıcılar, disk bölümleme, hizmetler ve yapılandırma dosyaları gibi işletim sisteminin içsel uygulamalarını yapılandırmak mümkündür. Ayrıca Apache HTTP sunucu gibi açık kaynak uygulamalarını, PHP veya MySQL'i de düzenlemek ve denetlemek mümkündür.

<span class="mw-page-title-main">Manjaro Linux</span> Arch tabanlı GNU/Linux dağıtımı

Manjaro, Arch Linux'un sağlam altyapısını temel alarak geliştirilen, kullanıcı dostu bir GNU/Linux dağıtımıdır. Arch Linux genellikle daha deneyimli kullanıcılara hitap ederken, Manjaro bu zorluğu ortadan kaldırarak kullanım kolaylığı odaklı bir deneyim sunar. Bu sayede, Linux dünyasına yeni adım atanlar veya daha az teknik bilgiye sahip yeni Linux kullanıcılarının yanı sıra deneyimli kullanıcılar için de uygundur.

<span class="mw-page-title-main">KDE Plasma 5</span> Vikimedya kategorisi

KDE Plasma 5, Unix benzeri işletim sistemlerinde çalışmak üzere KDE Plasma 4 masaüstü ortamının halefi olarak 15 Temmuz 2014 tarihinde yayınlanan masaüstü ortamıdır.

GRASS GIS taramalı, vektör topolojisi destekli, görüntü işleme ve grafik verileri işleme kapasitesine sahip bir ücretsiz, açık kaynak coğrafi bilgi sistemi (GIS)'dir.

<span class="mw-page-title-main">Chef (yazılım)</span>

Chef, Ruby ve Erlang programlama dilleri kullanılarak yazılmış bir yapılandırma yönetimi aracı ve aynı adlı bir şirkettir. Sistem yapılandırma "tariflerini" yazmak için saf Ruby tabanlı özel amaçlı bir programlama dili kullanır. Chef bir şirketin sunucularının yapılandırma ve bakımını düzene sokma görevini yerine getirir ve yeni cihazları gözden geçirmek ve yapılandırmak için Google Cloud Platform, Amazon EC2, OpenStack, Microsoft Azure, Rackspace, Internap ve SoftLayer gibi bulut tabanlı platformlarla bütünleşebilir. Chef tamamen ücretsiz olarak yayınlanan ve Apache Lisansı'na sahip bir özgür yazılımdır. Bunun yanında firma olarak küçük ve büyük sistemlere hitap eden ve bu yönde fiyatlandırmalar sunan çözümleri vardır.

<span class="mw-page-title-main">Familiar Linux</span>

Familiar Linux, iPAQ makineleri ve diğer kişisel dijital asistanlar için bir Linux dağıtımıdır. OPIE veya GPE Palmtop Ortamını grafiksel kullanıcı arabirimi olarak kullanabilir. Bu makinelerde Windows CE'nin yerini aldı. Familiar Linux pek çok uygulama içeren eksiksiz bir işletim sistemiydi.

Güvenli kabuk,, ağ hizmetlerinin güvenli olmayan bir ağ üzerinde güvenli şekilde çalıştırılması için kullanılan bir kriptografik ağ protokolüdür. En iyi bilinen örnek uygulaması bilgisayar sistemlerine uzaktan oturum açmak için olandır.

<span class="mw-page-title-main">OpenSSH</span> Set of computer programs providing encrypted communication sessions

OpenSSH istemci-sunucu mimarisinde güvenli olmayan bir ağ üzerinden güvenli bir kanal sağlayan Güvenli kabuk (SSH) protokolüne dayanan bir güvenli ağ yardımcı program paketidir.

Güvenli mod, bir işletim sisteminin tanılama modudur. Ayrıca uygulama yazılımı tarafından bir çalışma moduna da atıfta bulunabilir. Güvenli mod, bir işletim sistemindeki sorunların hepsini olmasa da çoğunu düzeltmeye yardımcı olmayı amaçlar. Ayrıca, sahte güvenlik yazılımlarını kaldırmak için yaygın olarak kullanılır.

<span class="mw-page-title-main">Anaconda (kurulum yazılımı)</span>

Anaconda, Linux dağıtımları için tasarlanmış ücretsiz ve açık kaynaklı bir sistem yükleyicisidir.

YAML ; insan tarafından okunabilir Programlama dilidir. Genellikle konfigürasyon dosyaları için ve verilerin saklandığı veya iletildiği uygulamalarda kullanılır. YAML, Genişletilebilir İşaretleme Dili (XML) gibi birçok iletişim uygulamasını hedefler ancak Standart Genelleştirilmiş İşaretleme Dili (SGML) ile bilinçli olarak farklı bir minimal sözdizimi kullanır. Yerleşim belirlemek için Python tarzı girinti kullanır ve çoğu dize değeri etrafında alıntı işareti gerektirmez ve aynı dosyada JSON tarzı ​[...]​ ve } de desteklemektedir.

<span class="mw-page-title-main">Ispmanager</span>

Ispmanager ticari bir web sunucusu ve web sitesi kontrol panelidir. Komut satırı veya manuel ayarlar kullanmadan hizmetlerle çalışmaya izin verir. Ürün çok çeşitli işlevleri destekler ve WCAG ile tasarlanmış görsel bir arayüze sahiptir. Ispmanager, Linux dağıtımlarına dayalı sunucuları destekler ve hem fiziksel sunuculara hem de sanal makinelere (VPS/VDS) kurulabilir.