Kuidas kasutada süsteemihalduse ülesannete jaoks kasutatavaid mooduleid - 6. osa
Varasemate teemade väheste Ansible moodulite selles osas 6 tutvustame nüüd täiendavaid mooduleid, mis on kasulikud paljude süsteemihalduse ülesannete täitmisel.
Saad iga mooduli põhiidee ja vaatad võimalikke võimalusi teatud ülesannete täitmiseks.
- Tarkvarapakettide ja hoidlate haldamine anonüümselt
- Teenuste haldamine rakendusega Ansible
- tulemüüri haldamine rakendusega Ansible
- Failide või kaustade arhiveerimine rakendusega Ansible
- Ajakava ülesanded ajakavaga
- Kasutajate ja gruppide haldamine rakendusega Ansible
- failide ja kataloogide loomine rakendusega Ansible
- Salvestamise haldamine rakendusega Ansible
- Failisüsteemide haldamine koos ansible'iga
Pakettide installimisel Linuxi süsteemidesse on erinevatel jaotustel erinevad paketihaldurid. RedHati distributsioonide jaoks on meil apt.
Ansible kaasas on moodul nimega pakett, mis välistab vajaduse kasutada erinevate süsteemide jaoks erinevaid paketihaldureid. See kasutab automaatselt hostisüsteemi vastavat paketihaldurit, muutes seeläbi töö lihtsamaks.
Näiteks htopi installimiseks hostide rühma, mis sisaldab nii Debiani kui ka RedHati distrosid, kasutage pakettmoodulit, nagu on näidatud allpool asuvas play_installop_htop.yml.
--- - name: Install htop on Ubuntu and CentOS hosts: all tasks: - package: name: htop state: installed
MÄRKUS. Pakettide nimed võivad operatsioonisüsteemides erineda. Näiteks on meil Redhat-distributsioonides httpd ja Debiani/Ubuntu süsteemide jaoks Apache2, mis kõik tähistavad Apache'i veebiserverit. Seetõttu tuleb nende pakettide möödumisel olla eriti ettevaatlik. Tavaliselt on kõige parem kasutada muutujaid või tingimuslauseid.
Järgmisena on meil teenusemoodul, mida kasutatakse Linuxi süsteemide teenuste haldamiseks. Seda kasutatakse teenuse käivitamiseks, peatamiseks või taaskäivitamiseks. Samuti saate seda kasutada teenuse lubamiseks, nii et kui süsteem käivitub, käivitab see teenuse automaatselt.
Näiteks Apache veebiserveri käivitamiseks ja lubamiseks RHEL 8-s kasutage teenust nagu näidatud.
--- - name: Start and enable httpd service hosts: webservers tasks: - service: name: httpd state: started enabled: yes
Httpd-teenuse peatamiseks edastage peatatud atribuut.
--- - name: Stop httpd service hosts: webservers tasks: - service: name: httpd state: stopped
Httpd-teenuse taaskäivitamiseks edastage taaskäivitatud atribuut.
--- - name: Restart httpd service hosts: webservers tasks: - service: name: httpd state: restarted
Teine oluline ülesanne, mille administraatorid ette võtavad, on tulemüüri haldamine. Ansible playbookides on seda tulemüüri ja ufw moodulitega palju lihtsustatud. Tulemüüri saate konfigureerida pordi või teenuse või isegi lähte-aadressi lubamiseks või blokeerimiseks.
Hüppame sisse ja vaatame mõnda näidet:
--- - name: Allow port 80 hosts: webservers tasks: -firewalld: port: 80/tcp permanent: yes state: enabled
Ülaltoodud mänguraamatus on kogu tulemüüri lubatud port 80
Valik permanent: yes
jõustab tulemüüri reegli ja muudab selle püsivaks taaskäivitamisel. See reegel ei kehti siiski kohe. See jõustub alles pärast taaskäivitamist. Reegli koheseks jõustamiseks kasutage valikut kohe: jah
.
Lubatud aadresside määramiseks kasutage käsku source: 0.0.0.0/0.
- firewalld: source: 192.168.0.0/24 zone: public state: enabled
Pordivaliku kasutamiseks sadamate vahemiku määramiseks järgmiselt:
- firewalld: port: 213-567/udp permanent: yes state: enabled
Pordi blokeerimiseks muutke oleku suvand keelatuks, nagu näidatud:
-firewalld: port: 80/tcp permanent: yes state: disabled
Lisaks pordi lisamisele/blokeerimisele saate teenusele rakendada samu reegleid. Ja see on üsna lihtne. Kasutage lihtsalt teenusemoodulit ja lisage lisatav teenus ning veenduge, et olekuvalik oleks lubatud.
- firewalld: service: https permanent: true state: enabled
Teenuse blokeerimiseks määrake olekuvõimalus keelatuks.
- firewalld: service: https permanent: true state: disabled
Arhiveerimine viitab faili või kausta tihendamisele hõlpsasti kaasaskantavasse ja väiksema vormingusse. Arhiivimooduliga moodulid. Faili tihendamine on umbes sama lihtne kui saab. Vaja on ainult määrata faili lähtekoht ja tihendatud faili sihtkoht.
Mõelge allpool olevale käsiraamatule compress.yml.
--- - hosts: webservers tasks: • name: Compress a folder archive: path: /opt/data/web dest: /tmp/web.gz
Ülaltoodud mänguraamat tihendab kataloogi/opt/data/web ja salvestab selle kataloogi /tmp/web.gz.
Vaikimisi tihendusformaat on .gz
, kuid selle saab määrata atribuudi format abil. Proovige järgmist mänguraamatut.
--- - hosts: webservers Tasks: - name: Create a zip archive archive: path: /opt/data/web dest: /tmp/web format: zip
Eespool olev esiraamat tihendab/opt/data/veebikataloogi faili /tmp/web.zip.
Tihendatud faili saab tihendada ka arhiivi tühistamise abil. Mõelge allolevale mänguraamatule.
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.gz to/opt directory on Ansible controller unarchive: src: /tmp/web.bz2 dest: /opt/
Ülaltoodud esiraamat tihendab faili /opt/data/web.gz/Ansible kontrolleri pakkimiseks.
Kaugallikasüsteemi määramiseks kasutage valikut 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
Ülaltoodud esiraamat tihendab kaugsõlmes oleva faili /tmp/web.bz2 kataloogi/opt /.
Croni moodul aitab Ansible Playbooksis tööde ajastamisel.
Mõelge allolevale mänguraamatule.
--- - 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
Mänguraamat töötab kohalviibimise stsenaariumi järgi 5. aprillil kell 17:00.
Kui soovite selle skripti käitamise ajastada ainult juhul, kui aprilli 5. päev on esmaspäev, siis kasutage atribuuti weekday: 1. 0 tähistab pühapäeva ja 6 tähistab laupäeva vastavalt krooni tähistusele.
month: 4 day: 5 hour: 17 minute: 00 weekday: 1
Tärn (*) nendes väljades tähistab mis tahes väärtust.
Töö käivitamiseks 5. aprillil kell 17.00 olenemata tööpäevast kasutage näidatud ajaparameetreid.
month: 4 day: 5 hour: 17 minute: 00 weekday: *
Croni töö täitmiseks iga kuu 5. päeval kell 17.00 kasutage alltoodud sätteid.
month: * day: 5 hour: 17 minute: 00 weekday: *
Croni töö iga päev kell 17.00 täitmiseks määrake aja sätted nagu näidatud:
month: * day: * hour: 17 minute: 00 weekday: *
Croni töö täitmiseks iga 5 tunni järel kasutage sammu väärtust */5
, nagu näidatud.
month: * day: * hour: */5 minute: * weekday: *
Samuti saate üsna vaevata hallata kasutajaid ja rühmi Ansible esiraamatutes.
Uue kasutaja loomiseks kasutage kasutaja moodulit, nagu näidatud.
--- - hosts: webservers tasks: - name: Create a new user user: name: Jack
Samuti saate lisada täiendavaid valikuid, näiteks UID, rühmad.
- name: Create a new user user: name: Jack comment: Jack Peters uid: 1002 group: administrators shell: /bin/bash
Kasutaja eemaldamiseks kasutage lauset remove: yes
.
- name: Remove the user 'Jack' user: name: Jack state: absent remove: yes
Uue rühma loomiseks kasutage rühma moodulit.
- name: Create a group group: name: developers
Kataloogide failide loomiseks kasutage failimoodulit.
Näiteks uue kataloogi loomiseks.
--- - hosts: webservers tasks: - name: Create a new directory file: path: /opt/app state: directory
Saate lisada muid atribuute, nagu omaniku, rühma ja faili õigused.
- hosts: webservers tasks: - name: Create a new directory file: path: /opt/web state: directory owner: www-data group: www-data mode: 0644
Lisaks saate rekursiivselt katalooge luua, kasutades lauset 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
Faili loomiseks kasutage valikut 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
Lvg moodulit kasutatakse LVM-i mahtude ja rühmade konfigureerimiseks.
Mõelge allpool toodud mänguraamatule:
--- - hosts: webservers tasks: • name: Create lVM volume group lvg: vg: vg1 pvs: /dev/sda1 pesize: 32
Nii luuakse jaotise /dev/sda1
kohale mahtrühm füüsilise ulatusega 32 MB.
Pärast loomist kasutage lvol moodulit loogilise köite loomiseks, nagu näidatud
--- - hosts: webservers tasks: - name: Create lVM volume lvol: vg: vg1 lv: lvol1 pvs: /dev/sda1
Blokeerimisseadmes failisüsteemi loomiseks kasutage failisüsteemi moodulit.
Allolev mänguraamat loob ploki mahule failisüsteemi tüüpi xfs.
--- - hosts: webservers tasks: - name: Create a filesystem filesystem: fstype: xfs dev: /dev/vg1/lvol1
Järgmisena saate jätkata ploki helitugevuse ühendamist ühendamismooduli abil, nagu on näidatud allpool olevas esitusraamatus:
--- - hosts: webservers tasks: - name: Mount a filesystem mount: fstype: xfs src: /dev/vg1/lvol1 path: /opt/web state: mounted
See lõpetab teema. Oleme käsitlenud mitmesuguseid süsteemihalduse ülesandeid, mida saab täita Ansible Playbooksis konkreetsete sisseehitatud moodulitega.