Kaip naudoti galimus sistemos administravimo užduočių modulius - 6 dalis
Šioje kelių ankstesnių temų „Ansible“ modulių 6 dalyje dabar gilinsimės ir aptiksime papildomų modulių, kurie naudingi atliekant daugelį sistemos administravimo užduočių.
Gausite pagrindinę kiekvieno modulio idėją ir susipažinsite su galimybėmis atlikti tam tikras užduotis.
- Programinės įrangos paketų ir saugyklų valdymas esant galimybei
- Paslaugų valdymas naudojant „Ansible“
- Ugniasienės valdymas naudojant „Ansible“
- Failų ar aplankų archyvavimas naudojant „Ansible“
- Suplanuokite užduotis su „Ansible“
- Tvarkykite naudotojus ir grupes naudodami „Ansible“
- Kurkite failus ir katalogus naudodami „Ansible“
- Saugyklos valdymas naudojant „Ansible“
- Failų sistemų valdymas naudojant „Ansible“
Diegiant paketus „Linux“ sistemose, skirtingi paskirstymai pateikiami su skirtingais paketų tvarkytuvais. RedHat paskirstymams turime apt.
„Ansible“ yra modulis, vadinamas paketu, todėl nebereikia naudoti skirtingų paketų tvarkyklių skirtingoms sistemoms. Jis automatiškai naudoja atitinkamą prieglobos sistemos paketų tvarkytuvę, taip palengvindamas darbą.
Pvz., Norėdami įdiegti „htop“ kompiuterių grupėje, susidedančioje iš „Debian“ ir „RedHat“ distros, naudokite paketo modulį, kaip parodyta žemiau esančioje grojaraštyje install_htop.yml.
--- - name: Install htop on Ubuntu and CentOS hosts: all tasks: - package: name: htop state: installed
PASTABA: Kiekvienoje operacinėje sistemoje paketų pavadinimai gali skirtis. Pavyzdžiui, „Redhat“ paskirstymuose turime „httpd“ ir „Debian“/„Ubuntu“ sistemoms skirtus „Apache2“, kurie visi žymi „Apache“ serverį. Todėl praleidžiant šiuos paketus reikia būti ypač atsargiems. Paprastai geriausia naudoti kintamuosius ar sąlyginius teiginius.
Toliau mes turime paslaugų modulį, kuris naudojamas valdyti paslaugas „Linux“ sistemose. Jis naudojamas paleisti, sustabdyti ar iš naujo paleisti paslaugą. Taip pat galite ją naudoti įgalindami paslaugą, kad, kai sistema įsijungtų, ji automatiškai paleistų paslaugą.
Pvz., Norėdami paleisti ir įgalinti „Apache“ tinklo serverį RHEL 8, naudokitės paslauga, kaip parodyta.
--- - name: Start and enable httpd service hosts: webservers tasks: - service: name: httpd state: started enabled: yes
Norėdami sustabdyti „httpd“ paslaugą, perduokite sustabdytą atributą.
--- - name: Stop httpd service hosts: webservers tasks: - service: name: httpd state: stopped
Norėdami iš naujo paleisti „httpd“ paslaugą, perduokite iš naujo paleistą atributą.
--- - name: Restart httpd service hosts: webservers tasks: - service: name: httpd state: restarted
Kita svarbi sistemos administratorių užduotis yra ugniasienės valdymas. „Ansible playbooks“ tai buvo daug lengviau naudojant „firewalld“ ir „ufw“ modulius. Galite sukonfigūruoti užkardą, kad ji leistų arba blokuotų prievadą, paslaugą ar net šaltinio adresą.
Pažvelkime į keletą pavyzdžių:
--- - name: Allow port 80 hosts: webservers tasks: -firewalld: port: 80/tcp permanent: yes state: enabled
Aukščiau pateiktoje grojaraštyje 80 uostas leidžiamas per užkardą.
Parinktis permanent: yes
įgyvendina užkardos taisyklę ir daro ją nuolatinę iš naujo paleidžiant. Tačiau ši taisyklė taikoma ne iš karto. Jis įsigalioja tik perkrovus. Norėdami nedelsdami vykdyti taisyklę, naudokite parinktį nedelsiant: taip
.
Norėdami nurodyti leistinus adresus, naudokite šaltinį: 0.0.0.0/0.
- firewalld: source: 192.168.0.0/24 zone: public state: enabled
Norėdami nurodyti prievadų diapazoną, kuriam leidžiama naudoti prievado parinktį taip:
- firewalld: port: 213-567/udp permanent: yes state: enabled
Norėdami užblokuoti prievadą, pakeiskite būsenos parinktį į išjungtą, kaip parodyta:
-firewalld: port: 80/tcp permanent: yes state: disabled
Be prievado pridėjimo/blokavimo, paslaugai taip pat galite taikyti tas pačias taisykles. Ir tai gana paprasta. Tiesiog naudokitės paslaugų moduliu ir pridėkite pridėtą paslaugą ir įsitikinkite, kad būsenos parinktis yra įjungta.
- firewalld: service: https permanent: true state: enabled
Norėdami užblokuoti paslaugą, būsenos parinktį išjunkite.
- firewalld: service: https permanent: true state: disabled
Archyvavimas reiškia failo ar aplanko glaudinimą lengvai perkeliamu ir mažesnio dydžio formatu. Negalimi laivai su moduliu, vadinamu archyvu. Suspausti failą yra maždaug taip paprasta, kaip gaunasi. Viskas, ko reikia, yra nurodyti failo šaltinio kelią ir suglaudinto failo paskirties vietą.
Apsvarstykite žemiau esantį „playbook compress.yml“.
--- - hosts: webservers tasks: • name: Compress a folder archive: path: /opt/data/web dest: /tmp/web.gz
Aukščiau pateiktas grojaraštis suglaudina/opt/data/web katalogą ir išsaugo jį aplanke /tmp/web.gz.
Numatytasis glaudinimo formatas yra .gz
, tačiau tai galima nurodyti naudojant format atributą. Parinkite kitą „Playbook“ pavyzdį.
--- - hosts: webservers Tasks: - name: Create a zip archive archive: path: /opt/data/web dest: /tmp/web format: zip
Aukščiau esanti grojaraštis suglaudina/opt/data/web katalogą į /tmp/web.zip.
Taip pat galite išpakuoti suglaudintą failą naudodami atarchyvą. Apsvarstykite toliau pateiktą pjesę.
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.gz to/opt directory on Ansible controller unarchive: src: /tmp/web.bz2 dest: /opt/
Aukščiau pateiktoje grojaraštyje išpakuojamas failas /opt/data/web.gz į/opt ant Ansible valdiklio.
Norėdami nurodyti nuotolinio šaltinio sistemą, naudokite parinktį 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
Aukščiau pateiktoje grojaraštyje nesuspaudžiamas failas /tmp/web.bz2 nuotoliniame mazge į/opt/katalogą.
„Cron“ modulis padeda planuoti užduotis „Ansible Playbooks“.
Apsvarstykite toliau pateiktą pjesę.
--- - 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
Knygoje dalyvauja scenarijus balandžio 5 d., 17:00 val.
Jei norite suplanuoti, kad šis scenarijus bus vykdomas tik tuo atveju, jei balandžio 5 d. Yra pirmadienis, tada naudokite atributą „weekday: 1“. 0 reiškia sekmadienį, o 6 - šeštadienį pagal kronų žymėjimą.
month: 4 day: 5 hour: 17 minute: 00 weekday: 1
Žvaigždutė (*) bet kuriame iš šių laukų rodo bet kokią vertę.
Norėdami vykdyti darbą balandžio 5 d. 17.00 val., Nesvarbu, kokia savaitės diena, naudokite laiko parametrus, kaip parodyta.
month: 4 day: 5 hour: 17 minute: 00 weekday: *
Norėdami atlikti „cron“ darbą kiekvieno mėnesio 5 dieną, 17:00, naudokite toliau pateiktus nustatymus.
month: * day: 5 hour: 17 minute: 00 weekday: *
Norėdami atlikti „cron“ užduotį kasdien 17:00, nustatykite laiko nustatymus, kaip parodyta:
month: * day: * hour: 17 minute: 00 weekday: *
Norėdami atlikti „cron“ darbą kas 5 valandas, naudokite žingsnio reikšmę */5
, kaip parodyta.
month: * day: * hour: */5 minute: * weekday: *
Taip pat gana lengvai galite valdyti „Ansible“ grojaraščių vartotojus ir grupes.
Norėdami sukurti naują vartotoją, naudokite vartotojo modulį, kaip parodyta.
--- - hosts: webservers tasks: - name: Create a new user user: name: Jack
Taip pat galite pridėti papildomų parinkčių, tokių kaip UID, grupės.
- name: Create a new user user: name: Jack comment: Jack Peters uid: 1002 group: administrators shell: /bin/bash
Norėdami pašalinti vartotoją, naudokite teiginį remove: yes
.
- name: Remove the user 'Jack' user: name: Jack state: absent remove: yes
Norėdami sukurti naują grupę, naudokite grupės modulį.
- name: Create a group group: name: developers
Norėdami sukurti katalogų failus, naudokite failų modulį.
Pavyzdžiui, norint sukurti naują katalogą.
--- - hosts: webservers tasks: - name: Create a new directory file: path: /opt/app state: directory
Galite pridėti kitų atributų, tokių kaip savininkas, grupė ir failų leidimai.
- hosts: webservers tasks: - name: Create a new directory file: path: /opt/web state: directory owner: www-data group: www-data mode: 0644
Be to, galite sukurti katalogus rekursyviai naudodami teiginį „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
Norėdami sukurti failą, naudokite parinktį 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“ modulis naudojamas konfigūruoti LVM tomus ir grupes.
Apsvarstykite toliau pateiktą pjesę:
--- - hosts: webservers tasks: • name: Create lVM volume group lvg: vg: vg1 pvs: /dev/sda1 pesize: 32
Tai sukuria tūrio grupę virš /dev/sda1
skaidinio, kurio fizinis dydis yra 32 MB.
Sukūrę, naudokite „lvol“ modulį, kad sukurtumėte loginį tūrį, kaip parodyta
--- - hosts: webservers tasks: - name: Create lVM volume lvol: vg: vg1 lv: lvol1 pvs: /dev/sda1
Norėdami sukurti failų sistemą blokiniame įrenginyje, naudokite failų sistemos modulį.
Žemiau pateiktoje grojaraštyje sukuriamas xfs failų sistemos tipas ant bloko tomo.
--- - hosts: webservers tasks: - name: Create a filesystem filesystem: fstype: xfs dev: /dev/vg1/lvol1
Tada galite tęsti bloko tūrio montavimą naudodami prijungimo modulį, kaip parodyta žemiau esančiame grojaraštyje:
--- - hosts: webservers tasks: - name: Mount a filesystem mount: fstype: xfs src: /dev/vg1/lvol1 path: /opt/web state: mounted
Tai baigia temą. Mes apėmėme įvairias sistemos administravimo užduotis, kurias galima atlikti naudojant specialius įmontuotus „Ansible Playbooks“ modulius.