Giunsa Paggamit ang Mga Masaligan nga Module alang sa Mga Buluhaton sa Pagdumala sa Sistema - Bahin 6
Niini nga Bahin 6 sa pipila ka Ansible nga mga module sa nangaging mga hilisgutan, kita karon moadto sa mas lawom ug madiskobrehan dugang nga mga modules nga makatabang sa pagbuhat sa usa ka gidaghanon sa mga buluhaton sa pagdumala sa sistema.
Makuha nimo ang batakang ideya sa matag module ug tan-awon ang mga kapilian nga magamit alang sa pagtuman sa pipila nga mga buluhaton.
- Pagdumala sa Software Packages ug Repositories sa Ansible
- Pagdumala sa mga Serbisyo Gamit ang Ansible
- Pagdumala sa Firewall gamit ang Ansible
- Pag-archive sa mga File o Folder nga adunay Ansible
- Pag-iskedyul sa mga Buluhaton uban sa Ansible
- Pagdumala sa mga Gumagamit ug Mga Grupo nga adunay Ansible
- Paghimo og mga File ug Direktoryo nga adunay Ansible
- Pagdumala sa Pagtipig gamit ang Ansible
- Pagdumala sa Sistema sa File gamit ang Ansible
Kung nag-install ug mga pakete sa mga sistema sa Linux, lainlain nga mga pag-apod-apod nga adunay lainlaing mga managers sa package. Alang sa mga pag-apod-apod sa RedHat, kami adunay apt.
Ang Ansible adunay usa ka module nga gitawag nga package, nga nagtangtang sa panginahanglan sa paggamit sa lainlaing mga managers sa package alang sa lainlaing mga sistema. Awtomatiko nga gigamit niini ang katugbang nga manager sa package sa host system, sa ingon nagpadali sa trabaho.
Pananglitan, ang pag-instalar sa htop sa usa ka grupo sa mga host nga naglangkob sa Debian ug RedHat distros gamita ang package module sama sa gipakita sa install_htop.yml playbook sa ubos.
--- - name: Install htop on Ubuntu and CentOS hosts: all tasks: - package: name: htop state: installed
PAHINUMDOM: Ang mga ngalan sa package mahimong magkalahi gikan sa usa ka operating system ngadto sa lain. Pananglitan, kami adunay httpd sa mga distribusyon sa Redhat ug Apache2 alang sa mga sistema sa Debian/Ubuntu nga ang tanan nagpasabut sa Apache webserver. Busa, kinahanglan nga mag-amping pag-ayo kung ipasa kini nga mga pakete. Kasagaran, labing maayo nga gamiton ang mga variable o kondisyon nga mga pahayag.
Sunod, kami adunay usa ka module sa serbisyo, nga gigamit alang sa pagdumala sa mga serbisyo sa mga sistema sa Linux. Gigamit kini sa pagsugod, paghunong o pagsugod pag-usab sa usa ka serbisyo. Mahimo usab nimo kini gamiton aron mahimo ang usa ka serbisyo aron kung ang usa ka sistema mag-boot, awtomatiko kini nga magsugod sa serbisyo.
Pananglitan, aron masugdan ug ma-enable ang Apache webserver sa RHEL 8, gamita ang serbisyo sama sa gipakita.
--- - name: Start and enable httpd service hosts: webservers tasks: - service: name: httpd state: started enabled: yes
Aron mahunong ang serbisyo sa httpd, ipasa ang nahunong nga hiyas.
--- - name: Stop httpd service hosts: webservers tasks: - service: name: httpd state: stopped
Aron ma-restart ang serbisyo sa httpd, ipasa ang gi-restart nga attribute.
--- - name: Restart httpd service hosts: webservers tasks: - service: name: httpd state: restarted
Ang laing importante nga buluhaton sa mga tigdumala sa sistema mao ang pagdumala sa firewall. Sa Ansible playbooks, kini nahimong mas sayon sa firewalld ug ufw modules. Mahimo nimong i-configure ang firewall aron tugutan o babagan ang usa ka pantalan o serbisyo o bisan usa ka address sa gigikanan.
Ambak kita ug tan-awon ang pipila ka mga pananglitan:
--- - name: Allow port 80 hosts: webservers tasks: -firewalld: port: 80/tcp permanent: yes state: enabled
Sa playbook sa ibabaw, ang port 80 gitugutan tabok sa firewall.
Ang opsyon nga permanente: oo
nagpatuman sa lagda sa firewall ug nagpapadayon niini sa tibuok nga pag-reboot. Bisan pa, kini nga lagda dili magamit dayon. Motungha ra kini pagkahuman sa pag-reboot. Aron mapatuman dayon ang lagda, gamita ang opsyon dagmit: oo
.
Aron matino ang mga adres nga gitugotan, gamita ang tinubdan:0.0.0.0/0 nga pahayag.
- firewalld: source: 192.168.0.0/24 zone: public state: enabled
Aron matino ang usa ka han-ay sa mga pantalan nga tugutan nga gamiton ang kapilian sa pantalan sama sa mosunod:
- firewalld: port: 213-567/udp permanent: yes state: enabled
Aron babagan ang pantalan usba ang kapilian sa estado aron ma-disable sama sa gipakita:
-firewalld: port: 80/tcp permanent: yes state: disabled
Gawas sa pagdugang/pag-block sa usa ka pantalan, mahimo usab nimong i-apply ang parehas nga mga lagda sa usa ka serbisyo. Ug kini yano ra. Gamita lang ang module sa serbisyo ug idugang ang serbisyo nga idugang ug siguruha nga ang kapilian sa estado gitakda aron mahimo.
- firewalld: service: https permanent: true state: enabled
Aron babagan ang serbisyo, itakda ang kapilian sa estado nga ma-disable.
- firewalld: service: https permanent: true state: disabled
Ang pag-archive nagpasabut sa pag-compress sa usa ka file o folder sa usa ka format nga dali madala ug mas gamay ang gidak-on. Ansible nga mga barko nga adunay module nga gitawag og archive. Ang pag-compress sa usa ka file hapit ingon kadali. Ang tanan nga gikinahanglan mao ang pagtino sa gigikanan nga agianan sa file ug ang destinasyon sa compressed file.
Hunahunaa ang usa ka playbook compress.yml sa ubos.
--- - hosts: webservers tasks: • name: Compress a folder archive: path: /opt/data/web dest: /tmp/web.gz
Gi-compress sa ibabaw nga playbook ang /opt/data/web directory ug gitipigan kini sa /tmp/web.gz.
Ang default nga format sa compression mao ang .gz
, bisan pa niana, kini mahimong matino gamit ang format attribute. Sampol ang sunod nga Playbook.
--- - hosts: webservers Tasks: - name: Create a zip archive archive: path: /opt/data/web dest: /tmp/web format: zip
Ang playbook sa ibabaw nag-compress sa /opt/data/web directory ngadto sa /tmp/web.zip.
Mahimo usab nimo i-uncompress ang usa ka compressed file gamit ang unarchive attribute. Tagda ang playbook sa ubos.
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.gz to/opt directory on Ansible controller unarchive: src: /tmp/web.bz2 dest: /opt/
Ang playbook sa ibabaw nag-uncompress sa file /opt/data/web.gz sa /opt sa Ansible controller.
Aron matino ang layo nga tinubdan nga sistema gamita ang remote_src=yes
nga opsyon.
--- - hosts: webservers tasks: - name:Uncompress /tmp/web.bz2 to/opt on remote host unarchive: src: /tmp/web.bz2 dest: /opt/ remote_src=yes
Ang playbook sa ibabaw nag-uncompress sa file /tmp/web.bz2 sa remote node sa /opt/ directory.
Ang cron module makatabang sa pag-iskedyul sa mga trabaho sa Ansible Playbooks.
Tagda ang playbook sa ubos.
--- - 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
Ang playbook nagpadagan sa script sa pagtambong sa Abril 5 sa alas 5:00 sa hapon.
Kung gusto nimo nga i-iskedyul kini nga script nga modagan lamang kung ang ika-5 nga adlaw sa Abril usa ka Lunes, unya gamita ang adlaw sa semana: 1 nga hiyas. Ang 0 nagpasabot sa Domingo ug ang 6 nagpasabot sa Sabado sumala sa cron notation.
month: 4 day: 5 hour: 17 minute: 00 weekday: 1
Ang asterisk (*) sa bisan asa niini nga mga field nagpaila sa bisan unsang bili.
Sa pagdagan sa trabaho sa Abril 5 sa 5:00 sa hapon bisan unsa pa ang adlaw sa semana, gamita ang mga parameter sa oras sama sa gipakita.
month: 4 day: 5 hour: 17 minute: 00 weekday: *
Aron ipatuman ang cron job sa ika-5 nga adlaw sa matag bulan sa alas 5:00 sa hapon gamita ang mga setting sa ubos.
month: * day: 5 hour: 17 minute: 00 weekday: *
Aron ipatuman ang cron job kada adlaw sa 5:00 pm itakda ang mga setting sa oras sama sa gipakita:
month: * day: * hour: 17 minute: 00 weekday: *
Para ipatuman ang cron job kada 5 ka oras, gamita ang step value */5
ingon sa gipakita.
month: * day: * hour: */5 minute: * weekday: *
Mahimo usab nimo nga madumala ang mga tiggamit ug grupo sa sulod sa mga playbook nga Ansible nga wala’y mahimo.
Aron makahimo og bag-ong user, gamita ang user module sama sa gipakita.
--- - hosts: webservers tasks: - name: Create a new user user: name: Jack
Mahimo ka usab makadugang dugang nga mga kapilian sama sa UID, mga grupo.
- name: Create a new user user: name: Jack comment: Jack Peters uid: 1002 group: administrators shell: /bin/bash
Para tangtangon ang user, gamita ang remove: yes
statement.
- name: Remove the user 'Jack' user: name: Jack state: absent remove: yes
Aron makahimo og bag-ong grupo, gamita ang module sa grupo.
- name: Create a group group: name: developers
Aron makahimo og mga file sa mga direktoryo, gamita ang file module.
Pananglitan, paghimo og bag-ong direktoryo.
--- - hosts: webservers tasks: - name: Create a new directory file: path: /opt/app state: directory
Mahimo nimong idugang ang ubang mga hiyas sama sa tag-iya, grupo ug pagtugot sa file.
- hosts: webservers tasks: - name: Create a new directory file: path: /opt/web state: directory owner: www-data group: www-data mode: 0644
Dugang pa, makahimo ka og mga direktoryo nga recursively gamit ang recurse: yes nga pahayag.
--- - hosts: webservers tasks: - name: Create directories recursively file: path: /opt/web/app state: directory owner: www-data group: www-data mode: 0644 recurse: yes
Para makahimo ug file, gamita ang state: touch
option.
--- - hosts: webservers tasks: - name: Create a new file file: path: /opt/web/index.html state: touch owner: www-data group: www-data mode: 0644
Ang lvg module gigamit sa pag-configure sa mga volume ug grupo sa LVM.
Tagda ang playbook sa ubos:
--- - hosts: webservers tasks: • name: Create lVM volume group lvg: vg: vg1 pvs: /dev/sda1 pesize: 32
Naghimo kini og volume group sa ibabaw sa /dev/sda1
partition nga adunay pisikal nga gidak-on nga 32 MB.
Kung nahimo na, gamita ang lvol module para maghimo ug logical volume sama sa gipakita
--- - hosts: webservers tasks: - name: Create lVM volume lvol: vg: vg1 lv: lvol1 pvs: /dev/sda1
Aron makahimo og file system sa block device, gamita ang filesystem module.
Ang playbook sa ubos nagmugna sa filesystem type sa xfs sa block volume.
--- - hosts: webservers tasks: - name: Create a filesystem filesystem: fstype: xfs dev: /dev/vg1/lvol1
Mahimo nimong sunod nga ipadayon ang pag-mount sa block volume gamit ang mount module sama sa gipakita sa playbook sa ubos:
--- - hosts: webservers tasks: - name: Mount a filesystem mount: fstype: xfs src: /dev/vg1/lvol1 path: /opt/web state: mounted
Kini nagtapos sa hilisgutan. Gitabonan namo ang nagkalain-laing mga buluhaton sa pagdumala sa sistema nga mahimo pinaagi sa piho nga mga built-in nga module sa Ansible Playbooks.