Junior
Rol nədir, hansı qovluqlar və fayllar onu təşkil edir?
sobes.tech Süni İntellekt
AI-dan cavab
Ansible rolu, idarə olunan düyünlərdə müəyyən bir funksiyanı yerinə yetirmək üçün tapşırıqlar, dəyişənlər, şablonlar, fayllar, handlerlər və meta məlumatlar təyin edən qovluqlar və fayllardan ibarətdir.
Rolun əsas qovluq strukturu:
defaults/: Rol üçün dəyişənlərin standart dəyərləri.vars/: Rol-ə xas dəyişənlər.defaults/-dən dəyərləri üst-üstə qoyur.tasks/: Rol tərəfindən yerinə yetirilən əsas tapşırıqlar.main.ymlfaylı vacibdir.handlers/: Xüsusi hadisələr zamanı işə salınan handlerlər (məsələn, xidməti yenidən başlatmaq).main.ymlfaylı vacibdir.files/: İdarə olunan düyünlərə köçürüləcək fayllar.templates/: İşlənmədən sonra idarə olunan düyünlərə köçürüləcək Jinja2 şablon faylları.meta/: Rol haqqında məlumatlar: asılılıqlar, müəllif, lisenziya.main.ymlfaylı vacibdir.library/: Xüsusi modullar.module_utils/: Xüsusi modullar üçün utilitlər.lookup_plugins/: Lookup üçün plaginlər.filter_plugins/: Filtrlər üçün plaginlər.
tasks/main.yml faylının nümunə məzmunu:
# tasks/main.yml
- name: Nginx veb serverini quraşdır
ansible.builtin.apt:
name: nginx
state: present
- name: Nginx konfiqurasiya faylını köçür
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Nginx-i yenidən başlat
handlers/main.yml faylının nümunə məzmunu:
# handlers/main.yml
- name: Nginx-i yenidən başlat
ansible.builtin.service:
name: nginx
state: restarted
templates/nginx.conf.j2 faylının nümunə məzmunu:
# templates/nginx.conf.j2
server {
listen {{ http_port }};
server_name {{ server_name }};
location / {
proxy_pass http://localhost:{{ app_port }};
}
}
defaults/main.yml faylının nümunə məzmunu:
# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080
meta/main.yml faylının məzmunu:
# meta/main.yml
galaxy_info:
author: Your Name
description: Nginx quraşdırmaq və konfiqurasiya etmək üçün rol.
license: MIT
min_ansible_version: 2.9
platforms:
- name: Debian
versions:
- all
- name: Ubuntu
versions:
- bionic
galaxy_tags: []
dependencies: []
Hər bir qovluq, library və module_utils istisna olmaqla, bu rolun bu hissəsinə giriş nöqtəsi olan main.yml (və ya main.yaml) faylını içerməlidir.