Sobes.tech
Junior

No kā sastāv loma, kādi mapes un faili to veido?

sobes.tech AI

Atbilde no AI

Ansible loma sastāv no direktoriju un failu kopas, kas definē uzdevumus, mainīgos, šablonus, failus, apstrādātājus un metadatus, lai izpildītu noteiktu funkciju pārvaldītajos mezglos.

Galvenā lomas struktūra:

  • defaults/: Noklusējuma mainīgo vērtības lomai.
  • vars/: Specifiski mainīgie lomai, kas pārklāj defaults/ vērtības.
  • tasks/: Galvenie uzdevumi, ko veic loma. Fails main.yml ir obligāts.
  • handlers/: Apstrādātāji, kas tiek aktivizēti noteiktos notikumos (piemēram, pakalpojuma pārstartēšana). Fails main.yml ir obligāts.
  • files/: Faili, kas tiks kopēti uz pārvaldītajiem mezgliem.
  • templates/: Jinja2 šabloni, kas tiks kopēti uz pārvaldītajiem mezgliem pēc apstrādes.
  • meta/: Lomas informācija: atkarības, autors, licences. Fails main.yml ir obligāts.
  • library/: Lietotāja moduļi.
  • module_utils/: Lietotāja utilīti.
  • lookup_plugins/: Lookup spraudņi.
  • filter_plugins/: Filtru spraudņi.

Piemērs tasks/main.yml faila saturam:

# tasks/main.yml
- name: Instalēt Nginx tīmekļa serveri
  ansible.builtin.apt:
    name: nginx
    state: present

- name: Kopēt Nginx konfigurācijas failu
  ansible.builtin.template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify: Pārlādēt Nginx

handlers/main.yml piemērs:

# handlers/main.yml
- name: Pārlādēt Nginx
  ansible.builtin.service:
    name: nginx
    state: restarted

templates/nginx.conf.j2 šablona piemērs:

# templates/nginx.conf.j2
server {
    listen {{ http_port }};
    server_name {{ server_name }};

    location / {
        proxy_pass http://localhost:{{ app_port }};
    }
}

defaults/main.yml faila piemērs:

# defaults/main.yml
http_port: 80
server_name: localhost
app_port: 8080

meta/main.yml saturs:

# meta/main.yml
galaxy_info:
  author: Your Name
  description: Loma Nginx instalēšanai un konfigurēšanai
  license: MIT

  min_ansible_version: 2.9

  platforms:
  - name: Debian
    versions:
    - all
  - name: Ubuntu
    versions:
    - bionic

  galaxy_tags: []

dependencies: []

Katrs direktorijs, izņemot library un module_utils, jābūt ar failu main.yml (vai main.yaml), kas ir šīs roles ieejas punkts.