Чӣ гуна ролҳоро дар плейбуки Ansible даъват кардан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Ролҳои дар Ansible метавонанд бо чанд роҳ дар дохили плейбук даъват шаванд.
-
Истифодаи калиди
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 тавсия мешавад.