Ansible playbook-da rolları necə çağırmaq olar?
sobes.tech Süni İntellekt
AI-dan cavab
Ansible-də rollar bir neçə yolla çağırıla bilər.
-
Playbook səviyyəsində
rolesaçar sözündən istifadə:# playbooks/my_playbook.yml - name: Serverlərə rollar tətbiq et hosts: webservers become: yes roles: - role: common # 'common' rolunu çağırır - role: nginx # 'nginx' rolunu çağırır vars: # Rol üçün dəyişənlər ötürür nginx_port: 8080 - another_role # Qısaldılmış çağırış formasıBu metod
hostsbölməsində təyin olunmuş bütün hostlar üçün ardıcıl olaraq icra olunacaq rolların çağırılması üçün istifadə olunur. -
include_rolemodulundan tapşırıq siyahısında istifadə:# playbooks/my_playbook.yml - name: Şərtlərlə rollar tətbiq et hosts: appservers tasks: - name: Yalnız inkişaf üçün verilənlər bazası rolunu daxil et include_role: name: database when: env == 'dev' # Şərtlə çağırış - name: Tətbiq rolunu daxil et include_role: name: app vars: app_version: 1.2.0 # Dəyişənləri ötürürinclude_rolemodulu rolu hazırkı play-ə daxil edilmiş tapşırıq kimi icra edir. Şərtlər (when) və dövrlər (loop) istifadə etməyə imkan verir. -
import_rolemodulundan tapşırıq siyahısında istifadə:# playbooks/my_playbook.yml - name: Tətbiq rolunu idxal et hosts: appservers tasks: - name: Bütün hostlar üçün tətbiq rolunu idxal et import_role: name: app vars: app_config_file: /etc/app/config.conf # Dəyişənləri ötürürimport_rolemodulu playbook-un analiz mərhələsində işlənir və onun icrasından əvvəl baş verir. Bu,whenkimi direktivlərin rol daxilindəki bütün tapşırıqlara tətbiq olunacağı və yalnız rol çağırışına deyil, bütün tapşırıqlara şamil ediləcəyi deməkdir.varsvasitəsilə ötürülən dəyişənlər rol daxilində mövcud olacaq.
include_role və import_role arasındakı əsas fərq işləmə vaxtıdır: import_role statik olaraq analiz mərhələsində işlənir, include_role isə dinamik olaraq playbook-un icrası zamanı işlənir. Bu, şərtlər və dövrlərdən istifadə imkanına təsir edir:
| Funksiya | include_role |
import_role |
|---|---|---|
| İşləmə vaxtı | Dinamik | Statik |
when istifadə edilərək çağırış |
Bəli | Xeyr |
loop istifadə edilərək çağırış |
Bəli | Xeyr |
| Əvvəlki play-də təyin olunmuş dəyişənlərin istifadəsi | Bəli | Xeyr |
Hansı metodun seçilməsi tələb olunan elastiklik və işləmə vaxtından asılıdır. Sadə rolların daxil edilməsi üçün adətən roles və ya import_role kifayət edir. Daha mürəkkəb ssenarilər üçün şərtlər və dövrlər ilə include_role istifadə olunur.