Ansible Galaxy: Bilmeniz Gereken Her Şey
Yayınlanan: 2022-09-29Ansible, popüler bir açık kaynaklı yapılandırma yönetimi aracıdır. Öte yandan, Ansible Galaxy, Ansible rollerinin bir deposudur.
Yeni başlayan bir sistem yöneticisi olarak yalnızca bir avuç oyun kitabınız olabilir. Otomasyon becerileriniz geliştikçe ve Ansible'a daha aşina hale geldikçe, en iyi uygulamaları öğreneceksiniz. Oyun kitaplarınızı çoğalttıkça Ansible Galaxy'nin ne kadar önemli olduğunu da anlayacaksınız.
Ansible Galaksi nedir?
Ansible Galaxy, Ansible içeriği (esas olarak roller ve koleksiyonlar) için web tabanlı bir açık kaynaklı çevrimiçi depodur. Sanki yeni bir şey yaratmışsınız ve onu başkalarıyla paylaşmak istiyorsunuz.
Ansible otomasyonuyla ilgili herhangi bir sorununuz varsa veya otomasyon projelerinizi hızlı bir şekilde başlatmak için diğerlerinden önceden paketlenmiş bir çözüme ihtiyacınız varsa, Ansible Galaxy size yardımcı olabilir. Örneğin, rolleriniz, koleksiyonlarınız, modülleriniz veya eklentileriniz olabilir. Birçok topluluk üyesi, Ansible koleksiyonlarını ve rollerini zaten yükledi.

Galaxy veya herhangi bir git SCM'den roller yüklemek, roller oluşturmak veya kaldırmak veya Galaxy sitesinde bazı görevleri gerçekleştirmek gibi görevleri gerçekleştirmek için 'ansible-galaxy' komutunu kullanabiliriz. Bu komut Ansible ile önceden yüklenmiş olarak gelir, böylece Ansible'ı kurduktan hemen sonra kullanabilirsiniz.
Galaxy projesi, dahili Galaxy sunucularımızı barındırmamızı sağlayan açık kaynaklı bir projedir. Dahili Galaxy sunucusunu kullanmak için, varsayılan olarak galaxy.ansible.com sunucu adresini kullandığından, Ansible.cfg
dosyasındaki varsayılan yapılandırmayı Galaxy dahili sunucusunun sunucu adresiyle düzenlemeniz gerekir.
Ansible Genel Bakış
Ansible, her boyuttaki altyapıyı otomatikleştiren ve ölçeklendiren bir çarpan olarak tanımlanabilir. Yapılandırmaları yönetmek, dağıtımları düzenlemek ve diğer işlevleri yönetmek için kullanılabilir. Ansible'ın kurulumu çok kolaydır. Ansible, altyapıyı yalnızca birkaç saat içinde otomatikleştirmek için acemi bir sistem yöneticisi tarafından bile kullanılabilir.
Ansible, SSH protokolünü kullanarak otomatikleştirir. Kontrol mekanizması, hedef ana bilgisayarlarıyla (tipik olarak Linux ana bilgisayarları) iletişim kurmak için bir SSH bağlantısı kullanır. Windows sistem yöneticileri, Windows ortamlarını SSH yerine WinRM ile otomatikleştirmek için Ansible'ı kullanmaya devam edebilir. Kontrol makinesi hala Linux çalıştırmalıdır.
Ansible, yama, güncelleme, grup ve kullanıcı yönetimi, sağlama ve diğer yönetim görevleri gibi yaygın sysadmin görevlerini gerçekleştirebilir.
Ansible, günümüzde en yaygın kullanılan ve popüler yapılandırma yönetimi, düzenleme ve dağıtım aracıdır. Sadeliği, ana güçlü yönlerinden biridir. Basit, güçlü, ancak aracısız. Bu, yeni veya giriş düzeyinde bir sistem yöneticisinin altyapıyı yalnızca birkaç saat içinde otomatikleştirebileceği anlamına gelir. Ansible, hızlı ölçeklendirme, verimlilik ve çapraz işlevsellik sağlar.
Ansible Galaxy'de çalışıyor
Ardından terminali açalım ve Ansible Galaxy kullanarak birkaç komut çalıştıralım. Ancak bundan önce, sisteminizde en son Ansible'ın kurulu olması gerekir.
Sisteminizde en son Ansible kurulu olduğunda, terminale ansible-galaxy girin ve Galaxy ile mevcut tüm seçenekleri alacaksınız.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy

İlk olarak init komutu ile başlayabilir ve bir rol oluşturabilirsiniz. Burada bir rol 'testi' yaratıyorum. Rolün başarıyla oluşturulup oluşturulmadığını kontrol etmek için ls komutunu kullanın. init komutu, test rolü dizini içinde gerekli dosyaları da oluşturur.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing

Ansible galaxy, doğrudan kullanabileceğiniz birçok rolün zaten oluşturulduğu büyük ve aktif bir topluluktur.
Aşağıda 'galaxy.ansible.com'a girdiğinizde açılacak olan sayfa ya da 'Ansible Galaxy' web sitesinin ana sayfası diyebiliriz. Ayrıntılı bir arama uygulamak üzere daha fazla filtre almak için ana sayfadan herhangi bir popüler kategoriye tıklayabilir veya 'Ara' düğmesine tıklayabiliriz.

Örneğin, bir MySQL sunucu rolü arıyorsanız, sadece onu arayın ve filtre düğmesine tıklayın. Geerlingguy'un maksimum indirme sayısına sahip olduğunu görebilirsiniz; bu rolü yüklemeyi deneyebiliriz. Geerlingguy MySQL'e tıklayın.

Daha sonra ansible-galaxy
kullanarak bu rolü yüklemek için kurulum komutunu alacaksınız.

MySQL sunucu rolünü indirip makinenize kurmak için yukarıdaki anlık görüntüde belirtilen komutu çalıştırın.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy kurulumu geerlingguy.mysql

Herhangi bir yazar tarafından hangi rolü arayacağınızı zaten biliyorsanız, aşağıda gösterildiği gibi arama komutunu kullanabilirsiniz.

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy search elasticsearch --author geerlingguy

Ortak Ansible Galaksi Komutları
ansible-galaxy komutu, galaxy.ansible.com'u kullanarak rolleri ve koleksiyonları yönetir. Aşağıda, her sistem yöneticisinin zaman zaman kullandığı çok yararlı bazı ansible-galaxy
komutları bulunmaktadır:
-
ansible-galaxy list:
Bu galaksi komutu, sürüm numaralarıyla birlikte kurulu tüm rollerin bir listesini görüntüler. -
ansible-galaxy remove:
Bu galaksi komutu, sistemde kurulu bir rolü kaldırır. -
ansible-galaxy info:
Bu galaksi komutu, Ansible Galaxy hakkında ayrıntılı bilgi sağlayacaktır. -
ansible-galaxy init
: Bu galaksi komutu, Ansible Galaxy'ye gönderilmeye uygun bir rol şablonu oluşturmak için kullanılabilir. -
ansible-galaxy import
: Bu galaksi komutu, resmi galaksi web sitesinden bir rolü içe aktarmak için oturum açmayı gerektirir.
Yukarıdaki komutlar (init, import, install, remove), Ansible galaxy kullanarak koleksiyonları yönetmek için ansible-galaxy
collection komutuyla birlikte kullanılabilir.
Şimdi Ansible Galaxy'deki roller ve koleksiyonlardan bahsedelim.
Ansible Galaxy ile Roller Oluşturun
Ansible Galaxy, temel olarak Ansible rolleri için büyük bir kamu deposudur. Roller, kullanımı ve değişkenleri açıklayan READMEs
birlikte gelir. Galaxy'nin sürekli gelişen ve büyüyen birçok rolü vardır.
Galaxy, git kullanarak GitHub gibi rol kaynakları ekleyebilir. Ansible Galaxy, ansible-galaxy
komutunu kullanarak Ansible rolleri oluşturmamızı sağlar. Ansible-galaxy init, yeni bir galaksi rolü başlatmak için kullanılabilir veya rolü yüklemek için ansible-galaxy install <name of role>
komutunu kullanabilirsiniz.
Bunları oyun kitaplarında kullanabilmeniz için önce rolün indirilmesi gerekir. /etc/ansible/roles
varsayılan dizinine yerleştirildikten sonra, rol örneklerini bulabilirsiniz.
Cevap Verilebilir Rol Yapısı ve Önemi
Bir rol yüklendiğinde oluşturulan dosyalar ve dizinler aşağıdadır:
- README.md, rolü açıklayan Benioku dosyasıdır. Benioku dosyası, giriş parametreleri ve örnek
yml
ile ilgili tüm ayrıntıları içerir. - görevler – Tüm görevler, Görevlerdeki Rol tarafından listelenebilir. Rol için giriş noktası Main.yml'dir. İnfazın başladığı yer burasıdır. Bu dosya başka dosyalar içerebilir.
- İşleyiciler – Bu kategori, bu rolde veya başka bir rolde kullanılabilecek işleyicileri içerir.
- defaults – Rol için varsayılan değişkenler.
- vars – Rol için varsayılanlardan daha önemli olan değişkenler.
- Dosyalar – Bu dosyalar Rol kullanılarak dağıtılabilir.
- Şablonlar – Bu bölüm, Rol aracılığıyla kullanılabilecek şablonları içerir.
- meta – Meta veriler, metadaki rolleri tanımlamak için kullanılabilir. Bu dosya ayrıca tüm rol bağımlılıklarını da içermelidir.
- Testler – Yürütülecek CI testleri.
- kitaplık – Rollere Modülleri veya Eklentileri Gömme. init komutu tarafından oluşturulmadı. Ayrıca bu klasörde Python'da özel bir modül oluşturabilir ve ardından görevlerinizde kullanabilirsiniz.
Ansible Galaxy ile Koleksiyonlar Oluşturun
Ansible Galaxy, rolleri yönetmek için en iyi araçtır ve yıllardır kullanılmaktadır. Ancak Ansible Galaxy'de yeni özellikler veya değişiklikler göreceksiniz. Ansible 2.2.8 sürümü şimdi toplama özelliğini içeriyor.
Ansible içerik, koleksiyonlar kullanılarak dağıtılabilir. Oyun kitaplarını ve rolleri, modülleri ve eklentileri paketlemek ve dağıtmak için kullanılırlar.
Aşağıdaki yapı koleksiyonların temelidir:
Toplamak/ ├── belgeler/ ├── galaxy.yml ├── eklentiler/ │ ├── modüller/ │ │ └── modül1.py │ ├── envanter/ │ └── .../ ├── BENİOKU.md ├── roller/ │ ├── rol1/ │ ├── rol2/ │ └── .../ ├── oyun kitapları/ │ ├── Dosyalar/ │ ├── değişir/ │ ├── şablonlar/ │ └── görevler/ └── testler/
Koleksiyon İskeleti Oluşturma
Bilgisayarınıza bir koleksiyon kurmak için ansible-galaxy koleksiyon kurulum komutunu kullanabilirsiniz.
Özellikle, bazı alt komutlar yanıtlanabilir gökada ile de kullanılabilir.
-
init
: Ansible'sle'ın varsayılan şablonuna veya kendi şablonunuza dayalı temel bir koleksiyon yapısı oluşturur -
build
: Galaxy'ye veya kendi havuzunuza yüklenebilecek bir koleksiyon eseri oluşturur -
publish
: Galaxy yerleşik bir koleksiyon eseri yayınlar -
install
: Bir veya daha fazla koleksiyon yükler
Çözüm
Ansible galaksi, sürekli büyüyen rol kitaplarınızı organize etmenin ve düşünmenin harika bir yoludur. Ansible Galaxy, otomasyon projemizi hızlı bir şekilde başlatmak için kullanılabilecek yaklaşık 39K topluluk yazarına, 30K rolüne ve 1656 koleksiyonuna sahiptir. Geliştirici kılavuzu ve katılımcı kılavuzu, açık kaynaklı bir proje olan mevcut Ansible Galaxy koduna nasıl katkıda bulunulacağını açıklar.
Ansible ile otomatikleştirebileceğiniz Sysadmin görevleriyle de ilgilenebilirsiniz.