Ansible playbook'unda rolleri nasıl çağırırsınız?
sobes.tech yapay zeka
AI'dan gelen yanıt
Ansible'daki roller, bir playbook içinde birkaç farklı şekilde çağrılabilir.
-
Playbook seviyesinde
rolesanahtar kelimesinin kullanımı:# playbooks/my_playbook.yml - name: Sunuculara roller uygula hosts: webservers become: yes roles: - role: common # 'common' rolünü çağır - role: nginx # 'nginx' rolünü çağır vars: # Role değişkenleri ilet nginx_port: 8080 - another_role # Kısaltılmış çağrı şekliBu yöntem,
hostsbölümünde tanımlanan tüm ana bilgisayarlarda sıralı olarak çalıştırılacak rollerin çağrılması içindir. -
Görev listesinde
include_rolemodülünün kullanımı:# playbooks/my_playbook.yml - name: Koşullarla roller uygulama hosts: appservers tasks: - name: Sadece geliştirme ortamı için veritabanı rolünü dahil et include_role: name: database when: env == 'dev' # Koşullu çağrı - name: Uygulama rolünü dahil et include_role: name: app vars: app_version: 1.2.0 # Role değişkenleri iletinclude_rolemodülü, rolü mevcut play'e dahil edilmiş bir görev listesi gibi çalıştırır. Koşullar (when) ve döngüler (loop) kullanarak rolün çalışmasını kontrol etmeye imkan tanır. -
import_rolemodülünün görev listesinde kullanımı:# playbooks/my_playbook.yml - name: Uygulama rolünü içe aktar hosts: appservers tasks: - name: Tüm ana bilgisayarlarda uygulama rolünü içe aktar import_role: name: app vars: app_config_file: /etc/app/config.conf # Değişkenleri iletimport_rolemodülü, playbook'un analiz aşamasında işlenir ve gerçek yürütmeden önce gerçekleşir. Bu,whengibi direktiflerin rol içindeki tüm görevlere uygulanacağı anlamına gelir ve sadece rol çağrısına değil, rol içindeki tüm görevleri etkiler.varsile iletilen değişkenler, rol içinde kullanılabilir hale gelir.
include_role ve import_role arasındaki temel fark, işleme zamanlarıdır: import_role statik olarak analiz aşamasında işlenirken, include_role playbook çalıştırılırken dinamik olarak işlenir. Bu, koşullar ve döngülerin kullanılabilirliğini etkiler:
| İşlev | include_role |
import_role |
|---|---|---|
| İşleme | Dinamik | Statik |
when kullanımı |
Evet | Hayır |
loop kullanımı |
Evet | Hayır |
| Önceden tanımlanmış değişkenleri kullanma | Evet | Hayır |
Hangi yöntemin kullanılacağı, gereken esneklik ve işleme zamanına bağlıdır. Basit roller dahil etmek için genellikle roles veya import_role yeterlidir. Daha karmaşık senaryolar, koşullar ve döngüler için include_role tercih edilir.