Junior
Από τι αποτελείται ο ρόλος, ποιους φακέλους και αρχεία περιλαμβάνει;
sobes.tech AI
Απάντηση από AI
Ο ρόλος του Ansible αποτελείται από ένα σύνολο καταλόγων και αρχείων που ορίζουν εργασίες, μεταβλητές, πρότυπα, αρχεία, χειριστές και μεταδεδομένα για την εκτέλεση μιας συγκεκριμένης λειτουργίας στους διαχειριζόμενους κόμβους.
Η κύρια δομή του φακέλου του ρόλου:
defaults/: Τιμές προεπιλογής για μεταβλητές του ρόλου.vars/: Ειδικές μεταβλητές του ρόλου. Υπερισχύουν τις τιμές από τοdefaults/.tasks/: Κύριες εργασίες που εκτελεί ο ρόλος. Το αρχείοmain.ymlείναι υποχρεωτικό.handlers/: Χειριστές που ενεργοποιούνται σε συγκεκριμένα γεγονότα (π.χ. επανεκκίνηση υπηρεσίας). Το αρχείοmain.ymlείναι υποχρεωτικό.files/: Αρχεία που θα αντιγραφούν στους διαχειριζόμενους κόμβους.templates/: Πρότυπα Jinja2 που θα αντιγραφούν στους κόμβους μετά την επεξεργασία.meta/: Πληροφορίες σχετικά με το ρόλο: εξαρτήσεις, συγγραφέας, άδεια. Το αρχείοmain.ymlείναι υποχρεωτικό.library/: Προσαρμοσμένες ενότητες.module_utils/: Βοηθητικά εργαλεία για προσαρμοσμένες ενότητες.lookup_plugins/: Πρόσθετα για αναζήτηση.filter_plugins/: Πρόσθετα για φίλτρα.
Παράδειγμα περιεχομένου του αρχείου tasks/main.yml:
# tasks/main.yml
- name: Εγκατάσταση του web server Nginx
ansible.builtin.apt:
name: nginx
state: present
- name: Αντιγραφή αρχείου ρύθμισης Nginx
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Επανεκκίνηση Nginx
Παράδειγμα περιεχομένου του αρχείου handlers/main.yml:
# handlers/main.yml
- name: Επανεκκίνηση Nginx
ansible.builtin.service:
name: nginx
state: restarted
Παράδειγμα περιεχομένου του αρχείου templates/nginx.conf.j2:
# templates/nginx.conf.j2
server {
listen {{ http_port }};
server_name {{ server_name }};
location / {
proxy_pass http://localhost:{{ app_port }};
}
}
Παράδειγμα περιεχομένου του αρχείου defaults/main.yml:
# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080
Το αρχείο meta/main.yml περιέχει μεταδεδομένα σχετικά με το ρόλο:
# meta/main.yml
galaxy_info:
author: Your Name
description: Ένας ρόλος για την εγκατάσταση και διαμόρφωση του Nginx.
license: MIT
min_ansible_version: 2.9
platforms:
- name: Debian
versions:
- all
- name: Ubuntu
versions:
- bionic
galaxy_tags: []
dependencies: []
Κάθε κατάλογος, εκτός από library και module_utils, πρέπει να περιέχει ένα αρχείο main.yml (ή main.yaml), το οποίο αποτελεί το σημείο εισόδου για αυτό το μέρος του ρόλου.