Junior
Ролду эмне түзөт, кайсы папкалар жана файлдар аны түзөт?
sobes.tech AI
AIден жооп
Ansible рөлі директориялар жана файлдар топтомунан турат, алар белгилүү бир функцияны аткаруу үчүн башкарылуучу түйүндөрдө тапшырмаларды, өзгөрмөлөрдү, шаблондорду, файлдарды, иштетүүчүлөрдү жана метадата белгилейт.
Ролдун негизги түзүмү:
defaults/: Рол үчүн алдын ала белгиленген өзгөрмөлөрдүн маанилериvars/: Рол үчүн өзгөчө өзгөрмөлөр, аларdefaults/маанилеринен жогору коюлатtasks/: Негизги тапшырмалар, рол тарабынан аткарылат.main.ymlфайлы милдеттүү.handlers/: Өзгөрүүлөргө жооп берүүчү иштетүүчүлөр, белгилүү бир окуялар учурунда ишке ашырылат (мисалы, кызматты кайра жүктөө).main.ymlфайлы милдеттүү.files/: Башкарылуучу түйүндөргө көчүрүлө турган файлдар.templates/: Жинжаан шаблондор, иштетилгичтен кийин башкарылуучу түйүндөргө көчүрүлөт.meta/: Рол жөнүндө маалымат: көзкарандүүлүктөр, автор, лицензия.main.ymlфайлы милдеттүү.library/: Колдонуучу модулдары.module_utils/: Колдонуучу утилиталары.lookup_plugins/: Lookup плагиндери.filter_plugins/: Фильтр плагиндери.
Мисал катары tasks/main.yml файлынын мазмуну:
# tasks/main.yml
- name: Nginx веб-серверин орнотуу
ansible.builtin.apt:
name: nginx
state: present
- name: Nginx конфигурация файлын көчүрүү
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Nginx кайра жүктөө
handlers/main.yml файлынын мисалы:
# handlers/main.yml
- name: Nginx кайра жүктөө
ansible.builtin.service:
name: nginx
state: restarted
templates/nginx.conf.j2 шаблондун мисалы:
# templates/nginx.conf.j2
server {
listen {{ http_port }};
server_name {{ server_name }};
location / {
proxy_pass http://localhost:{{ app_port }};
}
}
defaults/main.yml файлынын мисалы:
# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080
meta/main.yml файлынын мазмуну:
# meta/main.yml
galaxy_info:
author: Your Name
description: Nginx орнотуу жана конфигурациялоо үчүн рол
license: MIT
min_ansible_version: 2.9
platforms:
- name: Debian
versions:
- all
- name: Ubuntu
versions:
- bionic
galaxy_tags: []
dependencies: []
Ар бир директорий, library жана module_utils тышкары, main.yml (же main.yaml) файлын камтышы керек, ал бул ролдун бөлүгүнүн кирүү чекити болуп саналат.