Junior
Miből áll a szerep, mely mappák és fájlok alkotják?
sobes.tech MI
Válasz az MI-től
Az Ansible szerepkör egy olyan könyvtárakból és fájlokból álló készlet, amelyek feladatokat, változókat, sablonokat, fájlokat, kezelőket és metaadatokat határoznak meg egy adott funkció végrehajtásához a kezelt csomópontokon.
A szerep fő könyvtárstruktúrája:
defaults/: Alapértelmezett értékek a szerep változóihoz.vars/: Szerepspecifikus változók. Felülírják adefaults/értékeit.tasks/: A szerep által végrehajtott fő feladatok. Amain.ymlfájl kötelező.handlers/: Kezelők, amelyek bizonyos események esetén aktiválódnak (pl. szolgáltatás újraindítása). Amain.ymlfájl kötelező.files/: Fájlok, amelyeket a kezelt csomópontokra másolnak.templates/: Jinja2 sablonfájlok, amelyeket feldolgozás után a csomópontokra másolnak.meta/: Információk a szerepről: függőségek, szerző, licenc. Amain.ymlfájl kötelező.library/: Egyedi modulok.module_utils/: Segédprogramok egyedi modulokhoz.lookup_plugins/: Kereső pluginok.filter_plugins/: Szűrő pluginok.
A tasks/main.yml fájl példája:
# tasks/main.yml
- name: Nginx webszerver telepítése
ansible.builtin.apt:
name: nginx
state: present
- name: Nginx konfigurációs fájl másolása
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Nginx újraindítása
A handlers/main.yml fájl példája:
# handlers/main.yml
- name: Nginx újraindítása
ansible.builtin.service:
name: nginx
state: restarted
A templates/nginx.conf.j2 fájl példája:
# templates/nginx.conf.j2
server {
listen {{ http_port }};
server_name {{ server_name }};
location / {
proxy_pass http://localhost:{{ app_port }};
}
}
A defaults/main.yml fájl példája:
# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080
A meta/main.yml fájl példája:
# meta/main.yml
galaxy_info:
author: Your Name
description: Egy szerep az Nginx telepítéséhez és konfigurálásához.
license: MIT
min_ansible_version: 2.9
platforms:
- name: Debian
versions:
- all
- name: Ubuntu
versions:
- bionic
galaxy_tags: []
dependencies: []
Minden könyvtárnak, kivéve a library és module_utils-t, tartalmaznia kell egy main.yml (vagy main.yaml) fájlt, amely az adott szerekrész belépési pontja.