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.