Sobes.tech
Junior

Rol nima, uning tarkibiga qaysi papkalar va fayllar kiradi?

sobes.tech AI

AIdan javob

Ansible roli, boshqariladigan tugunlarda ma'lum bir funktsiyani bajarish uchun vazifalar, o'zgaruvchilar, shablonlar, fayllar, handlerlar va metadatalarni belgilovchi kataloglar va fayllardan iborat.

Rolning asosiy katalog tuzilishi:

  • defaults/: Rol uchun o'zgaruvchilar uchun standart qiymatlar.
  • vars/: Rolga xos o'zgaruvchilar. defaults/ qiymatlarini ustun qiladi.
  • tasks/: Rol tomonidan bajariladigan asosiy vazifalar. main.yml fayli majburiy.
  • handlers/: Maxsus voqealar (masalan, xizmatni qayta ishga tushirish) uchun chaqiriladigan handlerlar. main.yml fayli majburiy.
  • files/: Boshqariladigan tugunlarga ko'chiriladigan fayllar.
  • templates/: Jinja2 shablon fayllari, ular ishlov berilgach boshqariladigan tugunlarga ko'chiriladi.
  • meta/: Rol haqida ma'lumotlar: bog'liqliklar, muallif, litsenziya. main.yml fayli majburiy.
  • library/: Maxsus modullar.
  • module_utils/: Maxsus modullar uchun utilitlar.
  • lookup_plugins/: Lookup uchun plaginlar.
  • filter_plugins/: Filtrlar uchun plaginlar.

tasks/main.yml fayli misoli:

# tasks/main.yml
- name: Nginx veb-serverini o'rnatish
  ansible.builtin.apt:
    name: nginx
    state: present

- name: Nginx konfiguratsiya faylini ko'chirish
  ansible.builtin.template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify: Nginxni qayta ishga tushurish

handlers/main.yml fayli misoli:

# handlers/main.yml
- name: Nginxni qayta ishga tushurish
  ansible.builtin.service:
    name: nginx
    state: restarted

templates/nginx.conf.j2 fayli misoli:

# templates/nginx.conf.j2
server {
    listen {{ http_port }};
    server_name {{ server_name }};

    location / {
        proxy_pass http://localhost:{{ app_port }};
    }
}

defaults/main.yml fayli misoli:

# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080

meta/main.yml fayli ma'lumotlar:

# meta/main.yml
galaxy_info:
  author: Your Name
  description: Nginxni o'rnatish va sozlash uchun rol.
  license: MIT

  min_ansible_version: 2.9

  platforms:
  - name: Debian
    versions:
    - all
  - name: Ubuntu
    versions:
    - bionic

  galaxy_tags: []

dependencies: []

Har bir katalog, library va module_utils tashqari, main.yml (yoki main.yaml) faylini o'z ichiga olishi kerak, bu rolning bu qismi uchun kirish nuqtasidir.