Hvernig á að nota Ansible einingar fyrir kerfisstjórnunarverkefni - Hluti 6


Í þessum hluta 6 af fáum Ansible einingum í fyrri efnisatriðum munum við nú fara dýpra og uppgötva viðbótareiningar sem eru gagnlegar við að framkvæma fjölda kerfisstjórnunarverkefna.

Þú munt fá grunnhugmynd um hverja einingu og skoða valkostina sem eru í boði til að framkvæma ákveðin verkefni.

  1. Hafa umsjón með hugbúnaðarpökkum og geymslum í Ansible
  2. Stjórna þjónustu með Ansible
  3. Stjórna eldvegg með Ansible
  4. Skilja skrár eða möppur með Ansible
  5. Tímasettu verkefni með Ansible
  6. Stjórnaðu notendum og hópum með Ansible
  7. Búðu til skrár og möppur með Ansible
  8. Stjórna geymslu með Ansible
  9. Stjórna skráarkerfum með Ansible

Þegar pakkar eru settir upp á Linux kerfum koma mismunandi dreifingar með mismunandi pakkastjóra. Fyrir RedHat dreifingar höfum við viðeigandi.

Ansible kemur með einingu sem kallast pakki, sem útilokar þörfina á að nota mismunandi pakkastjóra fyrir mismunandi kerfi. Það notar sjálfkrafa samsvarandi pakkastjóra hýsilkerfisins og auðveldar þar með vinnuna.

Til dæmis, til að setja upp htop í hópi gestgjafa sem samanstanda af bæði Debian & RedHat dreifingum, notaðu pakkaeininguna eins og sýnt er í install_htop.yml leikbókinni hér að neðan.

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

- package:
         name: htop
         state: installed

ATHUGIÐ: Pakkanöfn geta verið mismunandi frá einu stýrikerfi til annars. Til dæmis höfum við httpd í Redhat dreifingum og Apache2 fyrir Debian/Ubuntu kerfi sem öll tákna Apache vefþjóninn. Þess vegna ber að gæta mikillar varúðar við að gefa þessum pakkningum. Venjulega er best að nota breytur eða skilyrtar staðhæfingar.

Næst höfum við þjónustueiningu, sem er notuð til að stjórna þjónustu á Linux kerfum. Það er notað til að ræsa, stöðva eða endurræsa þjónustu. Þú getur líka notað það til að virkja þjónustu þannig að þegar kerfi ræsir ræsir það þjónustuna sjálfkrafa.

Til dæmis, til að ræsa og virkja Apache vefþjón á RHEL 8, notaðu þjónustuna eins og sýnt er.

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

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

Til að stöðva httpd þjónustu skaltu fara framhjá eigindinni stoppað.

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

- service:
         name: httpd
         state: stopped

Til að endurræsa httpd þjónustuna, sendu endurræst eigindina.

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

- service:
         name: httpd
         state: restarted

Annað mikilvægt verkefni sem kerfisstjórar taka að sér er stjórnun eldveggsins. Í Ansible leikbókum hefur þetta verið gert mun auðveldara með eldvegg og ufw einingum. Þú getur stillt eldvegginn til að leyfa eða loka fyrir höfn eða þjónustu eða jafnvel upprunavistfang.

Við skulum stökkva inn og skoða nokkur dæmi:

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

Í leikbókinni hér að ofan er höfn 80 leyfð yfir eldvegginn.

Valkosturinn varanleg: já framfylgir eldveggsreglunni og gerir hana viðvarandi yfir endurræsingu. Þessi regla gildir þó ekki strax. Það tekur aðeins gildi eftir endurræsingu. Til að framfylgja reglunni strax skaltu nota valkostinn strax: já.

Til að tilgreina heimilisföngin sem eru leyfð skaltu nota source:0.0.0.0/0 yfirlýsinguna.

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

Til að tilgreina fjölda hafna sem mega nota hafnarvalkostinn sem hér segir:

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

Til að loka fyrir höfnina skaltu breyta stöðuvalkostinum í óvirkan eins og sýnt er:

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

Fyrir utan að bæta við/loka höfn geturðu einnig beitt sömu reglum um þjónustu. Og það er frekar einfalt. Notaðu bara þjónustueininguna og bættu við þjónustunni sem á að bæta við og tryggðu að ástandsvalkosturinn sé virkur.

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

Til að loka fyrir þjónustuna skaltu stilla stöðuvalkostinn á óvirkan.

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

Skjalavistun vísar til þjöppunar á skrá eða möppu í snið sem er auðvelt að flytja og minni í stærð. Ansible skip með einingu sem kallast skjalasafn. Að þjappa skrá er um það bil eins auðvelt og það verður. Allt sem þarf er að tilgreina upprunaslóð skráarinnar og áfangastað þjöppuðu skráarinnar.

Íhugaðu leikbók compress.yml hér að neðan.

---
- hosts: webservers
  tasks:

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

Ofangreind leikbók þjappar saman /opt/data/vefskránni og vistar hana á /tmp/web.gz.

Sjálfgefið þjöppunarsnið er .gz, hins vegar er hægt að tilgreina þetta með sniðeigindinni. Sýndu næstu Playbook.

---
- hosts: webservers
  Tasks:

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

Leikbókin hér að ofan þjappar /opt/data/vefskrá í /tmp/web.zip.

Þú getur líka afþjappað þjappaða skrá með því að nota unarchive eigindina. Skoðaðu leikbókina hér að neðan.

---
- hosts: webservers
  tasks:

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

Leikbókin hér að ofan afþjappar skrána /opt/data/web.gz til að /opt á Ansible stjórnandanum.

Notaðu remote_src=yes valmöguleikann til að tilgreina ytra upprunakerfið.

---
- hosts: webservers
  tasks:

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

Leikbókin hér að ofan afþjappar skrána /tmp/web.bz2 á ytri hnútnum í /opt/ möppuna.

Cron einingin hjálpar við að skipuleggja störf í Ansible Playbooks.

Skoðaðu leikbókina hér að neðan.

---
- 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

Leikbókin keyrir mætingarhandritið 5. apríl klukkan 17:00.

Ef þú vilt skipuleggja þetta handrit til að keyra aðeins ef 5. dagur apríl er mánudagur, notaðu þá eiginleikann vikudagur: 1. 0 táknar sunnudag og 6 táknar laugardag samkvæmt kórónuskrift.

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

Stjarna (*) í einhverjum af þessum reitum gefur til kynna hvaða gildi sem er.

Til að keyra verkið 5. apríl kl. 17:00, sama hvaða virka dagur er, notaðu tímabreyturnar eins og sýnt er.

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

Til að framkvæma cron starfið á 5. degi hvers mánaðar klukkan 17:00 skaltu nota stillingarnar hér að neðan.

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

Til að framkvæma cron verkið daglega klukkan 17:00 skaltu stilla tímastillingarnar eins og sýnt er:

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

Til að framkvæma cron verkið á 5 klukkustunda fresti, notaðu þrepagildið */5 eins og sýnt er.

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

Þú getur líka stjórnað notendum og hópum inni í Ansible leikbókum alveg áreynslulaust.

Til að búa til nýjan notanda, notaðu notendaeininguna eins og sýnt er.

---
- hosts: webservers
  tasks:

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

Þú getur líka bætt við viðbótarvalkostum eins og UID, hópum.

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

Til að fjarlægja notandann skaltu nota remove: yes yfirlýsinguna.

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

Til að búa til nýjan hóp, notaðu hópeininguna.

- name: Create a group
  group:
    name: developers

Til að búa til skrár af möppum, notaðu skráareininguna.

Til dæmis til að búa til nýja möppu.

---
- hosts: webservers
  tasks:

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

Þú getur bætt við öðrum eiginleikum eins og eiganda, hópi og skráarheimildum.

- hosts: webservers
  tasks:

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

Að auki geturðu búið til möppur endurkvæmt með því að nota endurtekið: já yfirlýsinguna.

---
- hosts: webservers
  tasks:

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

Til að búa til skrá, notaðu state: touch valkostinn.

---
- 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 einingin er notuð til að stilla LVM bindi og hópa.

Skoðaðu leikbókina hér að neðan:

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

Þetta býr til hljóðstyrkshóp ofan á /dev/sda1 skiptinguna með líkamlegri stærð upp á 32 MB.

Þegar búið er til skaltu nota lvol eininguna til að búa til rökrétt bindi eins og sýnt er

---
    - hosts: webservers
      tasks: 

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

Notaðu skráarkerfiseininguna til að búa til skráarkerfi á blokkunartæki.

Leikbókin hér að neðan býr til skráarkerfisgerð xfs á blokkarbindi.

---
    - hosts: webservers
      tasks: 

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

Næst geturðu haldið áfram að festa hljóðstyrk blokkarinnar með því að nota festingareininguna eins og sýnt er í leikbókinni hér að neðan:

---
    - hosts: webservers
      tasks: 

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

Þetta lýkur umræðuefninu. Við höfum fjallað um ýmis kerfisstjórnunarverkefni sem hægt er að framkvæma með sérstökum innbyggðum einingum í Ansible Playbooks.