Sobes.tech
Junior

Millelt koosneb roll, millised kaustad ja failid seda moodustavad?

sobes.tech AI

Vastus AI-lt

Ansible'i roll koosneb kataloogide ja failide kogumist, mis määratlevad ülesandeid, muutujaid, malle, faile, töötlejaid ja metaandmeid, et täita konkreetset funktsiooni hallatavatel sõlmedel.

Rolli põhistruktuur:

  • defaults/: Vaikimisi muutuja väärtused rolli jaoks.
  • vars/: Spetsiifilised muutuja väärtused rolli jaoks, mis üle kirjutavad defaults/ väärtused.
  • tasks/: Põhülesanded, mida roll täidab. Fail main.yml on kohustuslik.
  • handlers/: Töötlejad, mida käivitatakse teatud sündmuste korral (nt teenuse taaskäivitamine). Fail main.yml on kohustuslik.
  • files/: Failid, mis kopeeritakse hallatavate sõlmedeni.
  • templates/: Jinja2 mallid, mis kopeeritakse hallatavate sõlmedeni pärast töötlemist.
  • meta/: Rolli teave: sõltuvused, autor, litsents. Fail main.yml on kohustuslik.
  • library/: Kasutaja moodulid.
  • module_utils/: Kasutaja utiliidid.
  • lookup_plugins/: Lookup pluginad.
  • filter_plugins/: Filtripluginad.

Näide tasks/main.yml faili sisust:

# tasks/main.yml
- name: Installige Nginx veebiserver
  ansible.builtin.apt:
    name: nginx
    state: present

- name: Kopeerige Nginx konfiguratsioonifail
  ansible.builtin.template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify: Taaskäivita Nginx

handlers/main.yml näide:

# handlers/main.yml
- name: Taaskäivita Nginx
  ansible.builtin.service:
    name: nginx
    state: restarted

templates/nginx.conf.j2 mallinäide:

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

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

defaults/main.yml näide:

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

meta/main.yml sisaldab metaandmeid rolli kohta:

# meta/main.yml
galaxy_info:
  author: Your Name
  description: Roll Nginx installimiseks ja konfigureerimiseks
  license: MIT

  min_ansible_version: 2.9

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

  galaxy_tags: []

dependencies: []

Iga kataloog, välja arvatud library ja module_utils, peab sisaldama faili main.yml (või main.yaml), mis on selle rolli sisenemispunkt.