Junior
Iš ko sudaryta rolė, kokios aplankai ir failai ją sudaro?
sobes.tech AI
Atsakymas iš AI
Ansible rolė sudaryta iš direktorijų ir failų rinkinio, kurie apibrėžia užduotis, kintamuosius, šablonus, failus, apdorotojus ir metaduomenis, skirtus vykdyti tam tikrą funkciją valdomuose mazguose.
Pagrindinė rolės struktūra:
defaults/: Numatyti kintamųjų reikšmės rolėje.vars/: Specifiniai kintamieji rolėje, kurie perrašodefaults/reikšmes.tasks/: Pagrindinės užduotys, kurias atlieka rolė. Failasmain.ymlyra privalomas.handlers/: Apdorotojai, kurie paleidžiami tam tikrais įvykiais (pvz., paslaugos perkrovimas). Failasmain.ymlyra privalomas.files/: Failai, kurie bus nukopijuoti į valdomus mazgus.templates/: Jinja2 šablonai, kurie bus nukopijuoti į valdomus mazgus po apdorojimo.meta/: Rolės informacija: priklausomybės, autorius, licencija. Failasmain.ymlyra privalomas.library/: Naudotojo moduliai.module_utils/: Naudotojo įrankiai.lookup_plugins/: Lookup plaginai.filter_plugins/: Filtrų plaginai.
Pavyzdys tasks/main.yml failo turinio:
# tasks/main.yml
- name: Instaliuoti Nginx žiniatinklio serverį
ansible.builtin.apt:
name: nginx
state: present
- name: Nukopijuoti Nginx konfigūracijos failą
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Perkrauti Nginx
handlers/main.yml pavyzdys:
# handlers/main.yml
- name: Perkrauti Nginx
ansible.builtin.service:
name: nginx
state: restarted
templates/nginx.conf.j2 šablono pavyzdys:
# templates/nginx.conf.j2
server {
listen {{ http_port }};
server_name {{ server_name }};
location / {
proxy_pass http://localhost:{{ app_port }};
}
}
defaults/main.yml failo pavyzdys:
# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080
meta/main.yml turinys:
# meta/main.yml
galaxy_info:
author: Your Name
description: Rolė Nginx įdiegimui ir konfigūravimui
license: MIT
min_ansible_version: 2.9
platforms:
- name: Debian
versions:
- all
- name: Ubuntu
versions:
- bionic
galaxy_tags: []
dependencies: []
Kiekvienas direktorijos, išskyrus library ir module_utils, turi būti su failu main.yml (arba main.yaml), kuris yra šios rolės įėjimo taškas.