Sobes.tech
Junior

Ի՞նչ է Ansible-ում տեգերի դերը և ինչու են դրանք կարևոր:

sobes.tech AI

Պատասխան AI-ից

Ansible- ի մեջ տեգերը օգտագործվում են առանձին առաջադրանքների կամ առաջադրանքների բլոկների նշման համար։ Դա թույլ է տալիս ընտրովի կատարել միայն որոշակի տեգով նշված առաջադրանքները՝ մյուսներին բաց թողնելով։

Տեգերի կարևորությունը պայմանավորված է մի քանի պատճառներով՝

  • Գրանուլար կատարման: Դրանք թույլ են տալիս գործարկել միայն անհրաժեշտ մասերը՝ արագացնելով փորձարկման և սխալների շտկման գործընթացը։ Օրինակ, կարող եք նշել փաթեթների տեղադրման առաջադրանքները install տեգով և կատարել միայն դրանք։

    ansible-playbook playbook.yml --tags "install"
    
  • Պատասխանատվության բաժանում: Օգնում են կառուցել բարդ պլեյբուքեր՝ ըստ գործառնական բլոկների կամ համակարգի բաղադրիչների։

  • Առաջադրանքների բացթողում: Կարող եք բացառել որոշ տեգով նշված առաջադրանքների կատարմանը՝ օգտագործելով --skip-tags տարբերակը։

    ansible-playbook playbook.yml --skip-tags "skip-this"
    
  • Стандартные теги: Ansible-ն առաջարկում է մի քանի ստանդարտ տեգեր՝ ինչպիսիք են always (այդ տեգով նշված առաջադրանքները միշտ կատարվում են՝ անկախ մյուս տեգերից) և never (այդ տեգով նշված առաջադրանքները երբեք չեն կատարվում՝ բացի եթե հստակ նշված է)։

Օրինակ՝ տեգերի օգտագործում պլեյբուքում՝

# playbook.yml
- անուն: Վեբ սերվերի տեղադրում
  hosts: webservers
  tasks:
    - անուն: Nginx փաթեթի տեղադրում
      ansible.builtin.apt: # Օգտագործում ենք FQCN մոդուլների համար
        name: nginx
        state: present
        update_cache: yes
      tags:
        - install
        - web

    - անուն: Nginx կոնֆիգուրացիա
      ansible.builtin.template: # Օգտագործում ենք FQCN մոդուլների համար
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf
      tags:
        - config
        - web

    - անուն: Nginx ծառայության վերագործարկում
      ansible.builtin.systemd: # Օգտագործում ենք FQCN մոդուլների համար
        name: nginx
        state: restarted
      tags:
        - service
        - web

Օգտագործման օրինակներ՝

Ansible հրամանը Նկարագրություն
ansible-playbook playbook.yml Բոլոր պլեյբուքի կատարմանը։
ansible-playbook playbook.yml --tags "install" Միայն install տեգով նշված առաջադրանքների կատարմանը։
ansible-playbook playbook.yml --tags "install,config" install կամ config տեգերով նշված առաջադրանքների կատարմանը։
ansible-playbook playbook.yml --skip-tags "install" Բոլոր առաջադրանքների կատարմանը, բացի install տեգով նշվածներից։

Ընդհանուր առմամբ, տեգերը հզոր գործիք են պլեյբուքի բարդությունը կառավարելու և դրանց կատարման ժամանակ ճկունություն ապահովելու համար։