Ulgam dolandyryş meseleleri üçin jogaply modullary nädip ulanmaly - 6-njy bölüm


Geçen mowzuklardaky birnäçe düşnükli modullaryň 6-njy bölüminde indi has çuňňur öwreneris we ulgam dolandyryş meseleleriniň birnäçesini ýerine ýetirmekde peýdaly goşmaça modullary taparys.

Her modul barada esasy düşünje alarsyňyz we käbir meseleleri ýerine ýetirmek üçin elýeterli wariantlara göz aýlarsyňyz.

  1. Ansible-de programma üpjünçilik paketlerini we ammarlaryny dolandyrmak
  2. Ansible ulanyp hyzmatlary dolandyrmak
  3. Firewall-y Ansible bilen dolandyrmak
  4. Ansible bilen faýllary ýa-da bukjalary arhiwlemek
  5. Ansible bilen tabşyryklary düzmek
  6. Ulanyjylary we toparlary Ansible bilen dolandyryň
  7. Ansible bilen faýllar we kataloglar dörediň
  8. Ansible bilen ammary dolandyrmak
  9. Faýl ulgamlaryny Ansible bilen dolandyrmak

Linux ulgamlarynda paketler gurlanda dürli paýlamalar dürli paket dolandyryjylary bilen gelýär. RedHat paýlamak üçin bizde ýerlik bar.

Ansible, dürli ulgamlar üçin dürli paket dolandyryjylaryny ulanmagyň zerurlygyny aradan aýyrýan paket atly modul bilen gelýär. Baş ulgam ulgamynyň degişli paket dolandyryjysyny awtomatiki ulanýar we şeýlelik bilen işi aňsatlaşdyrýar.

Mysal üçin, “Debian” we “RedHat” ikisiniň hem öý eýeleriniň toparyna htop gurmak üçin aşakdaky install_htop.yml oýun kitabynda görkezilişi ýaly paket modulyny ulanyň.

---
- name: Install htop on Ubuntu and CentOS
  hosts: all
  tasks:

- package:
         name: htop
         state: installed

BELLIK: Paket atlary bir operasiýa ulgamyndan beýlekisine tapawutlanyp biler. Mysal üçin, Redhat paýlamalarynda httpd we Debian/Ubuntu ulgamlary üçin Apache2 bar, bularyň hemmesi Apache web serwerini aňladýar. Şonuň üçin bu paketlerden geçeniňizde goşmaça seresap bolmaly. Adatça üýtgeýjileri ýa-da şertli jümleleri ulanmak iň gowusydyr.

Ondan soň, Linux ulgamlaryndaky hyzmatlary dolandyrmak üçin ulanylýan hyzmat modulymyz bar. Bir hyzmaty başlamak, duruzmak ýa-da täzeden başlamak üçin ulanylýar. Şeýle hem, bir ulgam açylanda, hyzmaty awtomatiki başlamagy üçin hyzmaty işjeňleşdirmek üçin ulanyp bilersiňiz.

Mysal üçin, RHEL 8-de Apache web serwerini açmak we işletmek üçin hyzmaty görkezilişi ýaly ulanyň.

---
- name: Start and enable httpd service
  hosts: webservers
  tasks:

- service:
         name: httpd
         state: started
	    enabled: yes

Http hyzmatyny duruzmak üçin, saklanan atributdan geçiň.

---
- name: Stop httpd service
  hosts: webservers
  tasks:

- service:
         name: httpd
         state: stopped

Http hyzmatyny täzeden açmak üçin täzeden başlanan atributdan geçiň.

---
- name: Restart httpd service
  hosts: webservers
  tasks:

- service:
         name: httpd
         state: restarted

Ulgam dolandyryjylarynyň ýerine ýetirýän başga bir möhüm meselesi, gorag diwaryny dolandyrmakdyr. “Ansible” oýun kitaplarynda firewalld we ufw modullary bilen bu has aňsatlaşdyryldy. Porta ýa-da hyzmat ýa-da çeşme salgysyna rugsat bermek ýa-da blokirlemek üçin gorag diwaryny sazlap bilersiňiz.

Geliň, birnäçe mysallara seredeliň:

---
- name: Allow port 80 
  hosts: webservers
  tasks: 
   
   -firewalld:
	port: 80/tcp
     permanent: yes
     state: enabled

Aboveokardaky oýun kitabynda, diwar diwaryndan 80-nji porta rugsat berilýär.

hemişelik: hawa opsiýasy gorag diwarynyň düzgünini ýerine ýetirýär we ony täzeden açmakda dowam etdirýär. Şeýle-de bolsa, bu düzgün derrew ulanylmaýar. Diňe gaýtadan açylandan soň güýje girýär. Düzgüni derrew ýerine ýetirmek üçin derrew opsiýasyny ulanyň: hawa .

Rugsat berlen salgylary kesgitlemek üçin çeşmäni ulanyň: 0.0.0.0/0 jümlesi.

- firewalld:
    source: 192.168.0.0/24
    zone: public
    state: enabled

Port opsiýasyny aşakdaky ýaly ulanmaga rugsat berilýän portlaryň bir toparyny kesgitlemek üçin:

- firewalld:
    port: 213-567/udp
    permanent: yes
    state: enabled

Porty blokirlemek üçin döwlet opsiýasyny görkezilişi ýaly ýapyň:

-firewalld:
	port: 80/tcp
     permanent: yes
     state: disabled

Porty goşmak/blokirlemekden başga-da, şol bir düzgüni bir hyzmata hem ulanyp bilersiňiz. Bu gaty ýönekeý. Diňe hyzmat modulyny ulanyň we goşuljak hyzmaty goşuň we döwlet opsiýasynyň açykdygyny anyklaň.

- firewalld:
    service: https
    permanent: true
    state: enabled

Hyzmaty petiklemek üçin döwlet opsiýasyny ýapyň.

- firewalld:
    service: https
    permanent: true
    state: disabled

Arhiwlemek, faýlyň ýa-da bukjanyň aňsatlyk bilen göterip bolýan we ululygy kiçeldilen formata gysylmagyny aňladýar. Arhiw diýilýän modully gämiler. Faýly gysmak näçe aňsat bolsa. Gerek zat, faýlyň çeşme ýoluny we gysylan faýlyň barjak ýerini kesgitlemek.

Aşakdaky playbook compress.yml serediň.

---
- hosts: webservers
  tasks:

    • name: Compress a folder
archive:
        path: /opt/data/web
        dest: /tmp/web.gz

Aboveokardaky oýun kitaby/opt/data/web katalogyny gysýar we /tmp/web.gz sahypasyna ýazdyrýar.

Adaty gysyş formaty .gz , ýöne bu format atributyny ulanyp kesgitlenip bilner. Indiki Playbook-dan nusga alyň.

---
- hosts: webservers
  Tasks:

  - name: Create a zip archive 
    archive:
     path: /opt/data/web
     dest: /tmp/web
     format: zip

Aboveokardaky oýun kitaby /tmp/web.zip salgysyna opt/data/web katalogyny gysýar.

Şeýle hem, arhiw atributyny ulanyp gysylan faýly gysyp bilersiňiz. Aşakdaky oýun kitabyna serediň.

---
- hosts: webservers
  tasks:

 - name:Uncompress /tmp/web.gz to/opt directory  on Ansible controller
   unarchive:
     src: /tmp/web.bz2
     dest: /opt/

Aboveokardaky oýun kitaby/Ansible kontrolleýeri saýlamak/saýlamak üçin /opt/data/web.gz faýlyny gysýar.

Uzakdaky çeşme ulgamyny kesgitlemek üçin remote_src=hawa opsiýasyny ulanyň.

---
- hosts: webservers
  tasks:

 - name:Uncompress /tmp/web.bz2 to/opt on remote host
   unarchive:
     src: /tmp/web.bz2
     dest: /opt/
     remote_src=yes 

Aboveokardaky oýun kitaby uzakdaky düwündäki /tmp/web.bz2 faýlyny/opt/katalogyna gysýar.

Kron moduly “Ansible Playbooks” -daky işleri meýilleşdirmäge kömek edýär.

Aşakdaky oýun kitabyna serediň.

---
- hosts: webservers
  tasks:

 - name: Create a scheduled task
   cron:
     name: Run employee attendance
     job: sh /opt/scripts/attendace.sh
      
     month: 4
     day: 5
     hour: 17
     minute: 00

Oýnawaç kitaby 5-nji aprelde agşam sagat 5: 00-a gatnaşýar.

Bu ýazgyny diňe 5-nji apreliň duşenbe güni işlemegi meýilleşdirmek isleseňiz, dynç güni: 1 atributyny ulanyň. 0 ýekşenbäni, 6 kron belligine görä şenbe gününi aňladýar.

month: 4
day: 5
hour: 17
minute: 00
weekday: 1

Bu meýdanlaryň haýsydyr birinde ýyldyzjyk (*) islendik bahany görkezýär.

Işi 5-nji aprelde agşam sagat 5: 00-da, iş gününiň nämedigine garamazdan, wagt parametrlerini görkezilişi ýaly ulanyň.

month: 4
day: 5
hour: 17
minute: 00
weekday: *

Kron işini her aýyň 5-nji güni agşam sagat 5: 00-da ýerine ýetirmek üçin aşakdaky sazlamalary ulanyň.

month: *
day: 5
hour: 17
minute: 00
weekday: *

Kron işini her gün agşam 5: 00-da ýerine ýetirmek üçin wagt sazlamalaryny görkezilişi ýaly düzüň:

month: *
day: *
hour: 17
minute: 00
weekday: *

Kron işini her 5 sagatdan ýerine ýetirmek üçin ädim bahasyny görkezilişi ýaly */5 ulanyň.

month: *
day: *
hour: */5
minute: *
weekday: *

Şeýle hem, “Ansible” oýun kitaplarynyň içindäki ulanyjylary we toparlary gaty kyn dolandyryp bilersiňiz.

Täze ulanyjy döretmek üçin ulanyjy modulyny görkezilişi ýaly ulanyň.

---
- hosts: webservers
  tasks:

 - name: Create a new user
   user: 
     name: Jack

Şeýle hem, UID, toparlar ýaly goşmaça wariantlary goşup bilersiňiz.

- name: Create a new user
   user: 
      name: Jack
      comment: Jack Peters
          uid:   1002
      group: administrators
      shell:  /bin/bash

Ulanyjyny aýyrmak üçin aýyrmak: hawa jümlesini ulanyň.

- name: Remove the user 'Jack'
  user:
    name: Jack
    state: absent
    remove: yes

Täze topar döretmek üçin topar modulyny ulanyň.

- name: Create a group
  group:
    name: developers

Katalog faýllaryny döretmek üçin faýl modulyny ulanyň.

Mysal üçin, täze katalog döretmek üçin.

---
- hosts: webservers
  tasks:

  - name: Create a new directory
    file: 
     path: /opt/app
     state: directory

Eýesi, topar we faýl rugsatlary ýaly beýleki atributlary goşup bilersiňiz.

- hosts: webservers
  tasks:

  - name: Create a new directory
    file: 
     path: /opt/web
     state: directory
     owner: www-data
     group: www-data
     mode: 0644

Mundan başga-da, gaýtalanýanlary ulanyp, kataloglary yzygiderli döredip bilersiňiz: hawa jümlesi.

---
- hosts: webservers
  tasks:

  - name: Create directories recursively
    file: 
     path: /opt/web/app
     state: directory
     owner: www-data
     group: www-data
     mode: 0644
recurse: yes

Faýl döretmek üçin ýagdaýy: degmek opsiýasyny ulanyň.

---
- hosts: webservers
  tasks:

  - name: Create a new file
    file: 
     path: /opt/web/index.html
     state: touch
owner: www-data
     group: www-data
     mode: 0644

Lvg moduly LVM göwrümlerini we toparlaryny düzmek üçin ulanylýar.

Aşakdaky oýun kitabyna serediň:

---
- hosts: webservers
  tasks: 
    • name: Create lVM volume group
lvg: 
 vg: vg1
 pvs: /dev/sda1
 pesize: 32

Fiziki ululygy 32 MB bolan /dev/sda1 bölüminiň üstünde ses topary döredýär.

Döredilenden soň, görkezilişi ýaly logiki ses döretmek üçin lvol modulyny ulanyň

---
    - hosts: webservers
      tasks: 

       - name: Create lVM volume
    lvol: 
    vg: vg1
    lv: lvol1
    pvs: /dev/sda1

Blok enjamynda faýl ulgamyny döretmek üçin faýl ulgamy modulyny ulanyň.

Aşakdaky oýun kitaby blok göwrüminde xfs faýl ulgamynyň görnüşini döredýär.

---
    - hosts: webservers
      tasks: 

       - name: Create a filesystem
         filesystem:
         
           fstype: xfs
           dev: /dev/vg1/lvol1

Indiki oýun kitabynda görkezilişi ýaly gurnama modulyny ulanyp, blok sesini gurnap bilersiňiz:

---
    - hosts: webservers
      tasks: 

       - name: Mount a filesystem
         mount:
         
           fstype: xfs
           src: /dev/vg1/lvol1
           path: /opt/web
           state: mounted

Bu mowzugy tamamlaýar. “Ansible Playbooks” -da ýörite gurlan modullar arkaly ýerine ýetirip boljak dürli ulgam dolandyryş meselelerini öz içine aldyk.