Junior
Ի՞նչ է բաղկացած դերը, որոնք թղթապանակներն ու ֆայլերը կազմում են այն։
sobes.tech AI
Պատասխան AI-ից
Ansible-ի դերը բաղկացած է ֆայլերի և դիրեկտորների հավաքածուից, որոնք սահմանում են առաջադրանքներ, փոփոխականներ, շաբլոններ, ֆայլեր, մշակողներ և մետադատվածքներ՝ որոշակի ֆունկցիա կատարելու համար կառավարվող հանգույցներում:
Դերի հիմնական կառուցվածքը:
defaults/: Դերի համար նախնական փոփոխականների արժեքներvars/: Դերի հատուկ փոփոխականներ, որոնք վերագրում ենdefaults/արժեքներինtasks/: Հիմնական առաջադրանքները, որոնք իրականացնում է դերը,main.ymlֆայլը պարտադիր էhandlers/: Մշակողներ, որոնք գործարկվում են որոշակի իրադարձությունների դեպքում (օրինակ՝ ծառայության վերագործարկում),main.ymlֆայլը պարտադիր էfiles/: Ֆայլեր, որոնք կկատարվեն կառավարվող հանգույցներումtemplates/: Jinja2 շաբլոններ, որոնք կկատարվեն կառավարվող հանգույցներում՝ մշակվելուց հետոmeta/: Դերի մասին տեղեկատվություն՝ կախվածություններ, հեղինակ, լիցենզիա,main.ymlֆայլը պարտադիր էlibrary/: Օգտագործողի մոդուլներmodule_utils/: Օգտագործողի utility-ներ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) ֆայլ, որը հանդիսանում է այս մասի մուտքի կետը։