Sobes.tech
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) ֆայլ, որը հանդիսանում է այս մասի մուտքի կետը։