Kā izmantot iespējamos moduļus sistēmas administrēšanas uzdevumos - 6. daļa
Šajā nedaudzo iepriekšējo tēmu Ansible moduļu 6. daļā mēs tagad iedziļināsimies un atklāsim papildu moduļus, kas ir noderīgi, veicot vairākus sistēmas administrēšanas uzdevumus.
Jūs iegūsiet katra moduļa pamatideju un apskatīsit pieejamās iespējas noteiktu uzdevumu veikšanai.
- Programmatūras pakotņu un krātuvju pārvaldīšana anonīmā veidā
- Pakalpojumu pārvaldība, izmantojot Ansible
- Ugunsmūra pārvaldīšana ar Ansible
- Failu vai mapju arhivēšana ar Ansible
- Ieplānojiet uzdevumus ar Ansible
- Pārvaldiet lietotājus un grupas ar Ansible
- Izveidojiet failus un direktorijus ar Ansible
- Krātuves pārvaldība ar Ansible
- Failu sistēmu pārvaldīšana ar Ansible
Instalējot paketes Linux sistēmās, dažādiem izplatījumiem ir dažādi pakotņu pārvaldnieki. RedHat izplatījumiem mums ir piemērots.
Ansible nāk ar moduli, ko sauc par paketi, kas novērš nepieciešamību izmantot dažādus pakotņu pārvaldniekus dažādām sistēmām. Tas automātiski izmanto attiecīgo resursdatora pakotņu pārvaldnieku, tādējādi atvieglojot darbu.
Piemēram, lai instalētu htop resursdatoru grupā, kurā ietilpst gan Debian, gan RedHat rajoni, izmantojiet pakotnes moduli, kā parādīts zemāk esošajā play_installop_htop.yml.
--- - name: Install htop on Ubuntu and CentOS hosts: all tasks: - package: name: htop state: installed
PIEZĪME. Pakotņu nosaukumi dažādās operētājsistēmās var atšķirties. Piemēram, mums ir httpd Redhat izplatījumos un Apache2 Debian/Ubuntu sistēmām, kas visi apzīmē Apache tīmekļa serveri. Tāpēc, nododot šos iepakojumus, jāievēro īpaša piesardzība. Parasti vislabāk ir izmantot mainīgos vai nosacījumus.
Tālāk mums ir servisa modulis, ko izmanto pakalpojumu pārvaldībai Linux sistēmās. To izmanto, lai sāktu, apturētu vai restartētu pakalpojumu. Varat arī to izmantot, lai iespējotu pakalpojumu, lai sistēma sāknējoties automātiski sāktu pakalpojumu.
Piemēram, lai palaistu un iespējotu Apache tīmekļa serveri RHEL 8, izmantojiet pakalpojumu, kā parādīts.
--- - name: Start and enable httpd service hosts: webservers tasks: - service: name: httpd state: started enabled: yes
Lai apturētu httpd pakalpojumu, nododiet apturēto atribūtu.
--- - name: Stop httpd service hosts: webservers tasks: - service: name: httpd state: stopped
Lai restartētu httpd pakalpojumu, nododiet restartēto atribūtu.
--- - name: Restart httpd service hosts: webservers tasks: - service: name: httpd state: restarted
Vēl viens svarīgs uzdevums, ko veic sistēmas administratori, ir ugunsmūra pārvaldība. Atskaņošanas grāmatās Ansible tas ir ievērojami atvieglots, izmantojot ugunsmūra un ufw moduļus. Jūs varat konfigurēt ugunsmūri, lai atļautu vai bloķētu portu vai pakalpojumu vai pat avota adresi.
Pārejam un apskatīsim dažus piemērus:
--- - name: Allow port 80 hosts: webservers tasks: -firewalld: port: 80/tcp permanent: yes state: enabled
Iepriekš atskaņotajā grāmatā 80 ports ir atļauts visā ugunsmūrī.
Opcija permanent: yes
izpilda ugunsmūra kārtulu un padara to pastāvīgu pārstartēšanas laikā. Tomēr šis noteikums nav piemērojams nekavējoties. Tas stājas spēkā tikai pēc atsāknēšanas. Lai nekavējoties ieviestu kārtulu, izmantojiet opciju instant: yes
.
Lai norādītu atļautās adreses, izmantojiet avotu: 0.0.0.0/0.
- firewalld: source: 192.168.0.0/24 zone: public state: enabled
Lai norādītu ostu diapazonu, kuram atļauts izmantot opciju ports, rīkojieties šādi:
- firewalld: port: 213-567/udp permanent: yes state: enabled
Lai bloķētu portu, mainiet stāvokļa opciju uz atspējotu, kā parādīts:
-firewalld: port: 80/tcp permanent: yes state: disabled
Papildus porta pievienošanai/bloķēšanai pakalpojumam varat piemērot tos pašus noteikumus. Un tas ir pavisam vienkārši. Vienkārši izmantojiet servisa moduli un pievienojiet pievienojamo pakalpojumu un pārliecinieties, vai opcija state ir iestatīta kā iespējota.
- firewalld: service: https permanent: true state: enabled
Lai bloķētu pakalpojumu, iestatiet stāvokļa opciju uz atspējotu.
- firewalld: service: https permanent: true state: disabled
Arhivēšana attiecas uz faila vai mapes saspiešanu viegli pārnēsājamā un mazāka izmēra formātā. Ansible kuģi ar moduli, ko sauc par arhīvu. Faila saspiešana ir aptuveni tikpat vienkārša, kā tas notiek. Nepieciešams tikai norādīt faila avota ceļu un saspiestā faila galamērķi.
Apsveriet playbook compress.yml zemāk.
--- - hosts: webservers tasks: • name: Compress a folder archive: path: /opt/data/web dest: /tmp/web.gz
Iepriekš minētā atskaņošanas grāmata saspiež/opt/data/web direktoriju un saglabā to mapē /tmp/web.gz.
Noklusējuma saspiešanas formāts ir .gz
, tomēr to var norādīt, izmantojot formāta atribūtu. Paraugs nākamajai Playbook.
--- - hosts: webservers Tasks: - name: Create a zip archive archive: path: /opt/data/web dest: /tmp/web format: zip
Iepriekš atskaņotā grāmata saspiež/opt/data/web direktoriju uz /tmp/web.zip.
Saspiestu failu var arī atspiest, izmantojot atribūtu Atarhivēt. Apsveriet tālāk sniegto grāmatu.
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.gz to/opt directory on Ansible controller unarchive: src: /tmp/web.bz2 dest: /opt/
Iepriekš atskaņotā grāmata saspiež failu /opt/data/web.gz, lai izvēlētos/izvēlētos kontrolieri Ansible.
Lai norādītu attālās avota sistēmu, izmantojiet opciju 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
Iepriekš atskaņotā grāmata attālajā mezglā failu /tmp/web.bz2 nesaspiež uz/opt/direktoriju.
Cron modulis palīdz plānot darbus Ansible Playbooks.
Apsveriet tālāk sniegto grāmatu.
--- - 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
Spēļu grāmatā piedalās apmeklējumu scenārijs 5. aprīlī plkst. 17:00.
Ja vēlaties ieplānot šī skripta palaišanu tikai tad, ja aprīļa 5. diena ir pirmdiena, izmantojiet atribūtu weekday: 1. 0 apzīmē svētdienu un 6 apzīmē sestdienu saskaņā ar kroņa apzīmējumiem.
month: 4 day: 5 hour: 17 minute: 00 weekday: 1
Zvaigznīte (*) jebkurā no šiem laukiem norāda jebkuru vērtību.
Lai darbu izpildītu 5. aprīlī pulksten 17:00 neatkarīgi no tā, kāda ir nedēļas diena, izmantojiet laika parametrus, kā parādīts.
month: 4 day: 5 hour: 17 minute: 00 weekday: *
Lai veiktu kopdarbu katra mēneša 5. dienā plkst. 17:00, izmantojiet tālāk norādītos iestatījumus.
month: * day: 5 hour: 17 minute: 00 weekday: *
Lai veiktu cron darbu katru dienu pulksten 17:00, iestatiet laika iestatījumus, kā parādīts:
month: * day: * hour: 17 minute: 00 weekday: *
Lai izpildītu cron darbu ik pēc 5 stundām, izmantojiet soļa vērtību */5
, kā parādīts.
month: * day: * hour: */5 minute: * weekday: *
Jūs varat arī bez piepūles pārvaldīt lietotājus un grupas Ansible atskaņošanas grāmatās.
Lai izveidotu jaunu lietotāju, izmantojiet lietotāja moduli, kā parādīts.
--- - hosts: webservers tasks: - name: Create a new user user: name: Jack
Varat arī pievienot papildu opcijas, piemēram, UID, grupas.
- name: Create a new user user: name: Jack comment: Jack Peters uid: 1002 group: administrators shell: /bin/bash
Lai noņemtu lietotāju, izmantojiet paziņojumu remove: yes
.
- name: Remove the user 'Jack' user: name: Jack state: absent remove: yes
Lai izveidotu jaunu grupu, izmantojiet grupas moduli.
- name: Create a group group: name: developers
Lai izveidotu direktoriju failus, izmantojiet failu moduli.
Piemēram, lai izveidotu jaunu direktoriju.
--- - hosts: webservers tasks: - name: Create a new directory file: path: /opt/app state: directory
Varat pievienot citus atribūtus, piemēram, īpašnieka, grupas un failu atļaujas.
- hosts: webservers tasks: - name: Create a new directory file: path: /opt/web state: directory owner: www-data group: www-data mode: 0644
Turklāt jūs varat izveidot direktorijus rekursīvi, izmantojot paziņojumu recurse: yes.
--- - hosts: webservers tasks: - name: Create directories recursively file: path: /opt/web/app state: directory owner: www-data group: www-data mode: 0644 recurse: yes
Lai izveidotu failu, izmantojiet opciju 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
LVV sējumu un grupu konfigurēšanai tiek izmantots lvg modulis.
Apsveriet tālāk sniegto grāmatu:
--- - hosts: webservers tasks: • name: Create lVM volume group lvg: vg: vg1 pvs: /dev/sda1 pesize: 32
Tādējādi virs /dev/sda1
nodalījuma tiek izveidota sējumu grupa, kuras fiziskā apjoma lielums ir 32 MB.
Kad tas ir izveidots, izmantojiet moduli lvol, lai izveidotu loģisku apjomu, kā parādīts
--- - hosts: webservers tasks: - name: Create lVM volume lvol: vg: vg1 lv: lvol1 pvs: /dev/sda1
Lai izveidotu failu sistēmu bloķēšanas ierīcē, izmantojiet failu sistēmas moduli.
Zemāk esošajā spēļu grāmatā bloka sējumā tiek izveidots failu sistēmas xfs tips.
--- - hosts: webservers tasks: - name: Create a filesystem filesystem: fstype: xfs dev: /dev/vg1/lvol1
Pēc tam varat turpināt bloka skaļuma montāžu, izmantojot montāžas moduli, kā parādīts zemāk esošajā atskaņošanas grāmatā:
--- - hosts: webservers tasks: - name: Mount a filesystem mount: fstype: xfs src: /dev/vg1/lvol1 path: /opt/web state: mounted
Tas tēmu noslēdz. Mēs esam apskatījuši dažādus sistēmas administrēšanas uzdevumus, kurus var paveikt, izmantojot īpašus iebūvētus moduļus Ansible Playbooks.