Ansible Galaxy'de Roller Nasıl Oluşturulur, İndirilir ve Kullanılır - Bölüm 9


Ansible Serisinin 9. Bölümünde, Ansible Galaxy'de rolleri nasıl oluşturup indireceğinizi ve bunları nasıl kullanacağınızı öğreneceksiniz. Ansible, karmaşık görevleri verimli bir şekilde sorunsuz bir şekilde otomatikleştiren basit ama etkili bir konfigürasyon yönetimi ve otomatik dağıtım aracıdır. Tek bir oynatma kitabı dosyası kullanarak yüzlerce hatta binlerce sunucuyu tek bir kontrol düğümünden yönetebilirsiniz.

Ancak aynı hizmeti farklı ortamlarda yönetmek için taktik kitapları yazmak oldukça zahmetli olabilir ve bu genellikle kod fazlalığına yol açar. Ek olarak, daha fazla karmaşıklık, tüm cihazların yönetimini zorlaştırabilir.

Roller gelir. Ansible'da roller, başucu kitaplarını, benzer bir görevi gerçekleştirme ihtiyacının ortaya çıktığı diğer birçok durumda kullanılabilecek yeniden kullanılabilir dosyalara bölmek için kullanılır. Bu, taktik kitaplarını tekrar tekrar yazma ihtiyacını ortadan kaldırdı ve büyük miktarda zaman ve enerji tasarrufu sağladı.

Roller basitçe oyun kitaplarının işlevleridir. Bir rol, hemen hemen bir başucu kitabını oluşturacak şeylerle birlikte gelir: Görevler, dosyalar, modüller, değişkenler ve şablonlar. Ayrıca her rolün belirli bir görevle veya istenen çıktıyla sınırlı olduğunu unutmayın.

Ansible Rolü Oluşturma

Ansible'da bir rol oluşturmak için sözdizimini kullanmanız yeterlidir.

ansible-galaxy init role_name 

Mevcut çalışma dizininizde birden fazla dizin ve dosya oluşturulacaktır. Bu durumda /etc/ansible/roles dizininde bir rol oluşturmaya karar verdim.

Apache adında bir rol oluşturalım.

ansible-galaxy init apache

Rolün dizin yapısına bir göz atmak için ağaç komutunu kullanın.

tree apache

Gördüğünüz gibi birkaç dizin oluşturuldu, ancak bunların hepsi başucu kitabında kullanılmayacak.

Şimdi, yeni oluşturduğunuz rolünüzü bir başucu kitabında kullanmak için, yeni rolünüzün görevler dizininde bulunan main.yml dosyasında bir görev tanımlayın.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

Daha sonra bir oyun kitabı dosyası oluşturun ve gösterildiği gibi rolü çağırın.

--- 
- hosts: webservers
  roles:
   - apache

Ansible Galaxy'den Rol Yükleme

Roller, Ansible topluluğundaki diğer kullanıcılarla Ansible Galaxy platformunu kullanarak kod paylaşmada çok önemli bir rol oynar. Ansible Galaxy'de web sunucularının ve veritabanlarının kurulumu, izleme araçları vb. gibi farklı görevleri yerine getiren binlerce rol alırsınız.

Ansible Galaxy, başucu kitaplarınızda kullanabileceğiniz ve görevlerinizi kolaylaştırmanıza yardımcı olacak bir Ansible rolleri veritabanı veya deposudur.

Ansible Galaxy'de bir rol aramak için komutu çalıştırmanız yeterlidir.

ansible-galaxy search <role>

Örneğin mysql adlı bir rolü aramak için run.

ansible-galaxy search mysql

Gördüğünüz gibi mysql arama anahtar kelimesiyle eşleşen yüzlerce rol var. Ancak tüm roller amacınızı yerine getirmeyecektir; bu nedenle talimatları dikkatlice okumanız önerilir.

Bir rol hakkında daha fazla bilgi toplamak için Ansible komutunu çalıştırmanız yeterlidir:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

Örneğimizde 5KYDEV0P5.skydevops-mysql rolünü kuracağız.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Rol indirilir ve /etc/ansible/roles konumunda bulunan varsayılan roller dizinine çıkarılır.

Rol daha sonra bir oyun kitabında çağrılabilir, örneğin:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Artık Ansible çalışma kitabını gösterildiği gibi güvenle çalıştırabilirsiniz.

ansible-playbook install_mysql.yml

Ek olarak, web tarayıcınız aracılığıyla Ansible Galaxy'yi ziyaret edebilir ve kontrol panelinde belirtilen çeşitli görevleri gerçekleştirmek için rolleri manuel olarak arayabilirsiniz.

Örneğin, elasticsearch gibi bir izleme rolünü aramak için "İzleme" seçeneğini tıklayın ve rolü gösterildiği gibi arayın.

Ansible Galaxy, en popüler ve en çok indirilen rolleri listeleyerek kullanıcıların en iyi rolleri yüklemesini kolaylaştırır. Belirli bir rol hakkında daha fazla bilgi almak için üzerine tıklamanız yeterlidir.

Bir başucu kitabında örneğin birden fazla rol de belirleyebilirsiniz.

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

Yüklü rolleri listelemek için çalıştırmanız yeterlidir.

ansible-galaxy list

Çözüm

Roller, Ansible başucu kitaplarının yeniden kullanılmasını ve paylaşılmasını oldukça kolaylaştırır. Bu şekilde, kullanıcının çok fazla gereksiz kod yazmaya çalışırken çok fazla zaman kazanmasını ve diğer sistem yönetimi görevlerinde kullanılacak çok fazla zaman harcamasını sağlarlar. Bu rehber için bu kadar.