Sobes.tech
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) файлын камтышы керек, ал бул ролдун бөлүгүнүн кирүү чекити болуп саналат.