Jinsi ya Kutumia Moduli Zinazofaa kwa Majukumu ya Kusimamia Mfumo - Sehemu ya 6
Katika Sehemu hii ya 6 ya moduli chache Zinazofaa katika mada zilizopita, sasa tutaingia ndani zaidi na kugundua moduli za ziada ambazo ni muhimu katika kutekeleza idadi ya majukumu ya usimamizi wa mfumo.
Utapata wazo la msingi la kila moduli na uangalie chaguzi zinazopatikana za kukamilisha kazi fulani.
- Kudhibiti Vifurushi vya Programu na Hifadhi katika Ansible
- Kusimamia Huduma Kwa Kutumia Zinazofaa
- Kudhibiti Firewall kwa Ansible
- Kuweka kwenye kumbukumbu Faili au Folda zenye Zinazofaa
- Ratibu Majukumu na Yanayowezekana
- Dhibiti Watumiaji na Vikundi kwa Kuwajibika
- Unda Faili na Saraka ukitumia Zinazotumika
- Kudhibiti Uhifadhi kwa Kuwajibika
- Kusimamia Mifumo ya Faili kwa Kuwajibika
Wakati wa kusakinisha vifurushi kwenye mifumo ya Linux, usambazaji tofauti huja na wasimamizi tofauti wa vifurushi. Kwa usambazaji wa RedHat, tunayo apt.
Ansible inakuja na moduli inayoitwa kifurushi, ambayo huondoa hitaji la kutumia wasimamizi wa vifurushi tofauti kwa mifumo tofauti. Inatumia kiotomatiki kidhibiti cha kifurushi kinacholingana cha mfumo wa mwenyeji, na hivyo kurahisisha kazi.
Kwa mfano, kusakinisha htop katika kundi la wapangishi wanaojumuisha eneo la Debian na RedHat tumia sehemu ya kifurushi kama inavyoonyeshwa kwenye kitabu cha kucheza cha install_htop.yml hapa chini.
--- - name: Install htop on Ubuntu and CentOS hosts: all tasks: - package: name: htop state: installed
KUMBUKA: Majina ya vifurushi yanaweza kutofautiana kutoka kwa mfumo endeshi mmoja hadi mwingine. Kwa mfano, tuna httpd katika usambazaji wa Redhat na Apache2 kwa mifumo ya Debian/Ubuntu ambayo yote yanaashiria Apache webserver. Kwa hiyo, tahadhari zaidi inapaswa kuchukuliwa wakati wa kupitisha vifurushi hivi. Kwa kawaida, ni bora kutumia vigezo au kauli za masharti.
Ifuatayo, tuna moduli ya huduma, ambayo hutumiwa kusimamia huduma kwenye mifumo ya Linux. Inatumika kuanzisha, kusimamisha au kuanzisha upya huduma. Unaweza pia kuitumia kuwezesha huduma ili mfumo unapoanza, itaanza huduma kiatomati.
Kwa mfano, ili kuanza na kuwezesha seva ya wavuti ya Apache kwenye RHEL 8, tumia huduma kama inavyoonyeshwa.
--- - name: Start and enable httpd service hosts: webservers tasks: - service: name: httpd state: started enabled: yes
Ili kusimamisha huduma ya httpd, pitisha sifa iliyosimamishwa.
--- - name: Stop httpd service hosts: webservers tasks: - service: name: httpd state: stopped
Ili kuanzisha upya huduma ya httpd, pitisha sifa iliyoanzishwa upya.
--- - name: Restart httpd service hosts: webservers tasks: - service: name: httpd state: restarted
Mwingine muhimu wasimamizi wa mfumo wa kazi hufanya ni usimamizi wa ngome. Katika vitabu vya kucheza vya Ansible, hii imerahisishwa zaidi na moduli za firewalld na ufw. Unaweza kusanidi ngome ili kuruhusu au kuzuia mlango au huduma au hata anwani ya chanzo.
Hebu tuzame na tuangalie mifano michache:
--- - name: Allow port 80 hosts: webservers tasks: -firewalld: port: 80/tcp permanent: yes state: enabled
Katika kitabu cha kucheza hapo juu, port 80 inaruhusiwa kote kwenye ngome.
Chaguo ya kudumu: ndiyo
hutekeleza sheria ya ngome na kuifanya iendelee katika kuwashwa upya. Hata hivyo, sheria hii haitumiki mara moja. Inaanza kutumika tu baada ya kuwasha upya. Ili kutekeleza sheria hiyo mara moja, tumia chaguo mara moja: ndio
.
Ili kubainisha anwani zinazoruhusiwa, tumia taarifa ya chanzo:0.0.0.0/0.
- firewalld: source: 192.168.0.0/24 zone: public state: enabled
Ili kubainisha anuwai ya milango kuruhusiwa kutumia chaguo la mlango kama ifuatavyo:
- firewalld: port: 213-567/udp permanent: yes state: enabled
Ili kuzuia mlango, badilisha chaguo la hali kuwa kizimwa kama inavyoonyeshwa:
-firewalld: port: 80/tcp permanent: yes state: disabled
Kando na kuongeza/kuzuia bandari, unaweza pia kutumia sheria sawa kwenye huduma. Na ni rahisi sana. Tumia tu moduli ya huduma na uongeze huduma ya kuongezwa na uhakikishe kuwa chaguo la serikali limewekwa kuwezeshwa.
- firewalld: service: https permanent: true state: enabled
Ili kuzuia huduma, weka chaguo la serikali kwa walemavu.
- firewalld: service: https permanent: true state: disabled
Kuweka kwenye kumbukumbu kunarejelea mgandamizo wa faili au folda kwa umbizo ambalo ni rahisi kubebeka na saizi ndogo. Meli zinazofaa na moduli inayoitwa kumbukumbu. Kukandamiza faili ni rahisi kama inavyopata. Yote ambayo inahitajika ni kutaja njia ya chanzo cha faili na marudio ya faili iliyoshinikwa.
Fikiria kitabu cha kucheza compress.yml hapa chini.
--- - hosts: webservers tasks: • name: Compress a folder archive: path: /opt/data/web dest: /tmp/web.gz
Kitabu cha kucheza kilicho hapo juu kinabana /opt/data/web saraka na kuihifadhi kwa /tmp/web.gz.
Umbizo la mbano chaguomsingi ni .gz
, hata hivyo, hii inaweza kubainishwa kwa kutumia sifa ya umbizo. Sampuli Playbook inayofuata.
--- - hosts: webservers Tasks: - name: Create a zip archive archive: path: /opt/data/web dest: /tmp/web format: zip
Kitabu cha kucheza hapo juu kinabana /opt/data/web directory hadi /tmp/web.zip.
Unaweza pia kubandua faili iliyobanwa kwa kutumia sifa ya kutohifadhi kumbukumbu. Fikiria kitabu cha kucheza hapa chini.
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.gz to/opt directory on Ansible controller unarchive: src: /tmp/web.bz2 dest: /opt/
Kitabu cha kucheza hapo juu kinapunguza faili /opt/data/web.gz ili /chagua kidhibiti Kinachostahili.
Ili kubainisha mfumo wa chanzo cha mbali tumia chaguo la remote_src=yes
.
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.bz2 to/opt on remote host unarchive: src: /tmp/web.bz2 dest: /opt/ remote_src=yes
Kitabu cha kucheza hapo juu kinapunguza faili /tmp/web.bz2 kwenye nodi ya mbali hadi kwenye saraka /opt/.
Moduli ya cron husaidia katika kuratibu kazi katika Vitabu vya kucheza vinavyostahiki.
Fikiria kitabu cha kucheza hapa chini.
--- - 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
Kitabu cha kucheza kinaendesha hati ya mahudhurio tarehe 5 Aprili saa 5:00 jioni.
Iwapo ungependa kuratibu hati hii kutekelezwa ikiwa tu siku ya 5 ya Aprili ni Jumatatu, basi tumia siku ya juma: sifa 1. 0 inaashiria Jumapili na 6 inaashiria Jumamosi kulingana na nukuu ya cron.
month: 4 day: 5 hour: 17 minute: 00 weekday: 1
Nyota (*) katika sehemu yoyote kati ya hizi huonyesha thamani yoyote.
Ili kutekeleza kazi hiyo tarehe 5 Aprili saa 5:00 usiku bila kujali siku ya kazi ni nini, tumia vigezo vya muda kama inavyoonyeshwa.
month: 4 day: 5 hour: 17 minute: 00 weekday: *
Ili kutekeleza kazi ya cron siku ya 5 ya kila mwezi saa 5:00 jioni tumia mipangilio iliyo hapa chini.
month: * day: 5 hour: 17 minute: 00 weekday: *
Ili kutekeleza kazi ya cron kila siku saa 5:00 jioni weka mipangilio ya wakati kama inavyoonyeshwa:
month: * day: * hour: 17 minute: 00 weekday: *
Ili kutekeleza kazi ya cron kila baada ya saa 5, tumia thamani ya hatua */5
kama inavyoonyeshwa.
month: * day: * hour: */5 minute: * weekday: *
Unaweza pia kudhibiti watumiaji na vikundi ndani ya vitabu vya kucheza vya Ansible kwa urahisi.
Ili kuunda mtumiaji mpya, tumia moduli ya mtumiaji kama inavyoonyeshwa.
--- - hosts: webservers tasks: - name: Create a new user user: name: Jack
Unaweza pia kuongeza chaguzi za ziada kama vile UID, vikundi.
- name: Create a new user user: name: Jack comment: Jack Peters uid: 1002 group: administrators shell: /bin/bash
Ili kumwondoa mtumiaji, tumia taarifa ya ondoa: ndiyo
.
- name: Remove the user 'Jack' user: name: Jack state: absent remove: yes
Ili kuunda kikundi kipya, tumia moduli ya kikundi.
- name: Create a group group: name: developers
Ili kuunda faili za saraka, tumia moduli ya faili.
Kwa mfano, kuunda saraka mpya.
--- - hosts: webservers tasks: - name: Create a new directory file: path: /opt/app state: directory
Unaweza kuongeza sifa nyingine kama vile ruhusa za mmiliki, kikundi na faili.
- hosts: webservers tasks: - name: Create a new directory file: path: /opt/web state: directory owner: www-data group: www-data mode: 0644
Kwa kuongeza, unaweza kuunda saraka kwa kujirudia kwa kutumia recurse: taarifa ya ndiyo.
--- - hosts: webservers tasks: - name: Create directories recursively file: path: /opt/web/app state: directory owner: www-data group: www-data mode: 0644 recurse: yes
Ili kuunda faili, tumia chaguo la state: touch
.
--- - hosts: webservers tasks: - name: Create a new file file: path: /opt/web/index.html state: touch owner: www-data group: www-data mode: 0644
Moduli ya lvg inatumika kusanidi kiasi na vikundi vya LVM.
Fikiria kitabu cha kucheza hapa chini:
--- - hosts: webservers tasks: • name: Create lVM volume group lvg: vg: vg1 pvs: /dev/sda1 pesize: 32
Hii huunda kikundi cha sauti juu ya kizigeu cha /dev/sda1
chenye ukubwa halisi wa MB 32.
Mara tu inapoundwa, tumia moduli ya lvol kuunda kiasi cha kimantiki kama inavyoonyeshwa
--- - hosts: webservers tasks: - name: Create lVM volume lvol: vg: vg1 lv: lvol1 pvs: /dev/sda1
Ili kuunda mfumo wa faili kwenye kifaa cha kuzuia, tumia moduli ya mfumo wa faili.
Kitabu cha kucheza hapa chini huunda aina ya mfumo wa faili wa xfs kwenye kiasi cha kuzuia.
--- - hosts: webservers tasks: - name: Create a filesystem filesystem: fstype: xfs dev: /dev/vg1/lvol1
Unaweza kuendelea kuweka kiasi cha kuzuia kwa kutumia moduli ya kupachika kama inavyoonyeshwa kwenye kitabu cha kucheza hapa chini:
--- - hosts: webservers tasks: - name: Mount a filesystem mount: fstype: xfs src: /dev/vg1/lvol1 path: /opt/web state: mounted
Hii inahitimisha mada. Tumeshughulikia majukumu mbalimbali ya usimamizi wa mfumo ambayo yanaweza kukamilishwa kwa moduli mahususi zilizojengewa ndani katika Ansible Playbooks.