Junior
როლი რა შედგება, რა ფოლდერები და ფაილები შემადგენლობაში შედის?
sobes.tech AI
პასუხი AI-სგან
Ansible-ის როლი შედგება დირექტორიებისა და ფაილებისგან, რომლებიც განსაზღვრავენ დავალებებს, ცვლადებს, შაბლონებს, ფაილებს, დამუშავებლებს და მეტადატას კონკრეტული ფუნქციის შესრულებისთვის მართვად ნოდებზე.
როლის ძირითადი სტრუქტურა:
defaults/: დეფოლტ მნიშვნელობები როლისთვის.vars/: სპეციფიკური ცვლადები როლისთვის, რომლებიც გადაფარავენdefaults/მნიშვნელობებს.tasks/: ძირითადი დავალებები, რომლებიც როლი ასრულებს. ფაილიmain.ymlაუცილებელია.handlers/: დამუშავებლები, რომლებიც იძახიან გარკვეული მოვლენის დროს (მაგალითად, სერვისის გადატვირთვა). ფაილიmain.ymlაუცილებელია.files/: ფაილები, რომლებიც გადაეცემიან მართვად ნოდებზე.templates/: Jinja2 შაბლონები, რომლებიც გადაეცემიან მართვად ნოდებზე დამუშავების შემდეგ.meta/: როლის შესახებ ინფორმაცია: დამოკიდებულებები, ავტორი, ლიცენზია. ფაილიmain.ymlაუცილებელია.library/: მომხმარებლის მოდულები.module_utils/: Utilities მომხმარებლის მოდულებისთვის.lookup_plugins/: lookup-პლაგინები.filter_plugins/: ფილტრის პლაგინები.
მაგალითი tasks/main.yml ფაილის შიგთავსი:
# tasks/main.yml
- name: დააყენოს 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) ფაილს, რომელიც წარმოადგენს ამ ნაწილის შესვლის წერტილს როლისთვის.