Ansible ойноштук китепчесинде ролдорду кантип чакырырга болот?
sobes.tech AI
AIден жооп
Ansible-деги ролдорду бир нече жол менен чакырса болот.
-
Playbookтин деңгээлинде
rolesачкыч сөзүн колдонуу:# playbooks/my_playbook.yml - аталыш: Серверлерге ролдорду колдонуу hosts: webservers become: ооба roles: - role: common # 'common' ролун чакыруу - role: nginx # 'nginx' ролун чакыруу vars: # Ролго өзгөрмөлөрдү берүү nginx_port: 8080 - another_role # кыска формада чакырууБул ыкма
hostsбөлүмүндө көрсөтүлгөн бардык хосттор үчүн ролдорду кезектешип аткаруу үчүн колдонулат. -
include_roleмодулун колдонуу:# playbooks/my_playbook.yml - аталыш: шарттар менен ролдорду колдонуу hosts: appservers tasks: - аталыш: Датабаз ролун активдештирүү (тек гана dev үчүн) include_role: name: database when: env == 'dev' # шарттуу чакыруу - аталыш: колдонмо ролун активдештирүү include_role: name: app vars: app_version: 1.2.0 # өзгөрмөлөрдү берүүinclude_roleролду аткарууну азыркы тапшырмалардын тизмесине кошулгандай кылат. Ал шарттарды (when) жана циклдерди (loop) колдонууга мүмкүндүк берет. -
import_roleмодулун колдонуу:# playbooks/my_playbook.yml - аталыш: ролду импорттоо hosts: appservers tasks: - аталыш: бардык хосттор үчүн ролду импорттоо import_role: name: app vars: app_config_file: /etc/app/config.conf # өзгөрмөлөрдү берүүimport_roleплейбук парсинг этапында иштетилет, анын ишке ашырылышына чейин. Бул бардык директивалар, мисалыwhen, ролдун бардык тапшырмаларына колдонулат дегенди билдирет, жанаvarsаркылуу берилген өзгөрмөлөр ролдун ичинде жеткиликтүү болот.
include_role жана import_role ортосунда негизги айырма иштетүү убактысында: import_role статикалык түрдө парсинг этапында иштетилет, ал эми include_role динамикалык түрдө плейбук иштетилгенде. Бул шарттар жана циклдерди колдонуу мүмкүнчүлүгүнө таасир этет:
| Функция | include_role |
import_role |
|---|---|---|
| Иштөө | Динамикалык | Статикалык |
when колдонуу |
Ооба | Жок |
loop колдонуу |
Ооба | Жок |
| Эскирип жаткан өзгөрмөлөрдү колдонуу | Ооба | Жок |
Бул ыкмаларды тандоо талап кылынган ийкемдүүлүккө жана иштетүү убактысына көз каранды. Жөнөкөй ролдорду кошуу үчүн көбүнчө roles же import_role жетиштүү, ал эми шарттар жана циклдер менен иштөө үчүн include_role колдонулат.