Junior
Z čoho sa skladá úloha, aké priečinky a súbory ju tvoria?
sobes.tech AI
Odpoveď od AI
Rola Ansible pozostáva zo súborov a adresárov, ktoré definujú úlohy, premenné, šablóny, súbory, spracovateľov a metadáta na vykonanie určitej funkcie na spravovaných uzloch.
Hlavná štruktúra adresárov role:
defaults/: Predvolené hodnoty premenných pre rolu.vars/: Špecifické premenné pre rolu. Prepisujú hodnoty zdefaults/.tasks/: Hlavné úlohy vykonávané rolou. Súbormain.ymlje povinný.handlers/: Spracovatelia spúšťaní pri určitých udalostiach (napríklad reštart služby). Súbormain.ymlje povinný.files/: Súbory, ktoré budú skopírované na spravované uzly.templates/: Šablóny Jinja2, ktoré budú skopírované na spravované uzly po spracovaní.meta/: Informácie o roli: závislosti, autor, licencia. Súbormain.ymlje povinný.library/: Používateľské moduly.module_utils/: Utility pre používateľské moduly.lookup_plugins/: Pluginy pre lookup.filter_plugins/: Pluginy pre filtre.
Príklad obsahu súboru tasks/main.yml:
# tasks/main.yml
- name: Nainštalovať webový server Nginx
ansible.builtin.apt:
name: nginx
state: present
- name: Skopírovať konfiguračný súbor Nginx
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Reštartovať Nginx
Príklad obsahu súboru handlers/main.yml:
# handlers/main.yml
- name: Reštartovať Nginx
ansible.builtin.service:
name: nginx
state: restarted
Príklad obsahu súboru templates/nginx.conf.j2:
# templates/nginx.conf.j2
server {
listen {{ http_port }};
server_name {{ server_name }};
location / {
proxy_pass http://localhost:{{ app_port }};
}
}
Príklad obsahu súboru defaults/main.yml:
# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080
Súbor meta/main.yml obsahuje metadáta o roli:
# meta/main.yml
galaxy_info:
author: Your Name
description: Rola na inštaláciu a konfiguráciu Nginx.
license: MIT
min_ansible_version: 2.9
platforms:
- name: Debian
versions:
- all
- name: Ubuntu
versions:
- bionic
galaxy_tags: []
dependencies: []
Každý adresár, okrem library a module_utils, by mal obsahovať súbor main.yml (alebo main.yaml), ktorý je vstupnou bodkou pre túto časť role.