Junior
Waaruit bestaat de rol, welke mappen en bestanden vormen deze?
sobes.tech AI
Antwoord van AI
De rol van Ansible bestaat uit een set directories en bestanden die taken, variabelen, sjablonen, bestanden, handlers en metadata definiëren om een specifieke functie uit te voeren op beheerde knooppunten.
De hoofdstructuur van de rol:
defaults/: Standaardwaarden voor variabelen van de rol.vars/: Rol-specifieke variabelen. Overschrijven de waarden uitdefaults/.tasks/: Belangrijkste taken die door de rol worden uitgevoerd. Het bestandmain.ymlis verplicht.handlers/: Handlers die worden geactiveerd bij bepaalde gebeurtenissen (bijvoorbeeld het herstarten van een service). Het bestandmain.ymlis verplicht.files/: Bestanden die worden gekopieerd naar de beheerde knooppunten.templates/: Jinja2-sjabloonbestanden die na verwerking worden gekopieerd naar de beheerde knooppunten.meta/: Informatie over de rol: afhankelijkheden, auteur, licentie. Het bestandmain.ymlis verplicht.library/: Aangepaste modules.module_utils/: Hulpmiddelen voor aangepaste modules.lookup_plugins/: Plugins voor lookup.filter_plugins/: Plugins voor filters.
Voorbeeld van de inhoud van het bestand tasks/main.yml:
# tasks/main.yml
- name: Installeer Nginx webserver
ansible.builtin.apt:
name: nginx
state: present
- name: Kopieer Nginx configuratiebestand
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Herstart Nginx
Voorbeeld van de inhoud van het bestand handlers/main.yml:
# handlers/main.yml
- name: Herstart Nginx
ansible.builtin.service:
name: nginx
state: restarted
Voorbeeld van de inhoud van het bestand templates/nginx.conf.j2:
# templates/nginx.conf.j2
server {
listen {{ http_port }};
server_name {{ server_name }};
location / {
proxy_pass http://localhost:{{ app_port }};
}
}
Voorbeeld van de inhoud van het bestand defaults/main.yml:
# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080
Het bestand meta/main.yml bevat metadata over de rol:
# meta/main.yml
galaxy_info:
author: Your Name
description: Een rol om Nginx te installeren en te configureren.
license: MIT
min_ansible_version: 2.9
platforms:
- name: Debian
versions:
- all
- name: Ubuntu
versions:
- bionic
galaxy_tags: []
dependencies: []
Elke directory, behalve library en module_utils, moet een bestand main.yml (of main.yaml) bevatten, dat het toegangspunt is voor dat deel van de rol.