Sobes.tech
Junior

No kādiem komponentiem un failiem sastāv loma DevOps?

sobes.tech AI

Atbilde no AI

DevOps lomā, kas visbiežāk tiek īstenots ar Ansible palīdzību, sastāv no šādām galvenajām sastāvdaļām un failiem:

  • tasks/: mape, kas satur uzdevumus, kurus veic loma. Galvenais fails — main.yml.
    // tasks/main.yml
    - name: Instalēt nginx
      apt:
        name: nginx
        state: present
    
  • handlers/: mape, kas satur notikumu apstrādātājus. Galvenais fails — main.yml. Apstrādātāji tiek izpildīti tikai tad, ja uzdevumos ir notikušas izmaiņas, kas tos "paziņo".
    // handlers/main.yml
    - name: Restartēt nginx
      service:
        name: nginx
        state: restarted
    
  • defaults/: mape, kas satur noklusējuma mainīgo vērtības lomai. Galvenais fails — main.yml. Šiem mainīgajiem ir zemākais prioritātes līmenis.
    // defaults/main.yml
    nginx_port: 80
    
  • vars/: mape, kas satur lomai specifiskus mainīgos. Galvenais fails — main.yml. Šiem mainīgajiem ir augstāks prioritātes līmenis nekā defaults/.
    // vars/main.yml
    nginx_user: www-data
    
  • files/: mape, kas satur failus, kas tiks nokopēti uz mērķa mašīnām bez izmaiņām.
    // tasks/main.yml
    - name: Nokopēt statisku failu
      copy:
        src: my_static_file.conf
        dest: /etc/nginx/conf.d/my_static_file.conf
    
  • templates/: mape, kas satur šablonu failus (parasti Jinja2 formātā), kas tiks nokopēti uz mērķa mašīnām pēc apstrādes (mainīgo aizvietošanas).
    // templates/nginx.conf.j2
    server {
        listen {{ nginx_port }};
        ...
    }
    
    // tasks/main.yml
    - name: Konfigurēt nginx
      template:
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf
      notify: Restartēt nginx
    
  • meta/: mape, kas satur metadatus par lomu, piemēram, atkarības:
    // meta/main.yml
    dependencies:
      - role: another_role
        variable: value
    
  • library/: (Neobligāti) mape, kas paredzēta lietotāja moduļiem:
  • module_utils/: (Neobligāti) mape, kas satur lietotāja utilītprogrammas, kas tiek izmantotas moduļos:
  • lookup_plugins/, filter_plugins/ un citi: (Neobligāti) mape, kas satur lietotāja spraudņus dažādu tipu.

Tipiska lomas struktūra izskatās šādi:

my_role/
├── tasks/
│   └── main.yml
├── handlers/
│   └── main.yml
├── defaults/
│   └── main.yml
├── vars/
│   └── main.yml
├── files/
│   └── my_static_file.conf
├── templates/
│   └── nginx.conf.j2
└── meta/
    └── main.yml

Šie komponenti ļauj organizēt automatizāciju instalēšanai, konfigurēšanai un pakalpojumu pārvaldībai strukturētā un atkārtoti izmantojamā veidā.