ວິທີການໃຊ້ໂມດູນທີ່ສາມາດຕອບສະ ໜອງ ໄດ້ ສຳ ລັບວຽກງານບໍລິຫານລະບົບ - ພາກທີ 6


ໃນພາກທີ 6 ຂອງຊຸດ Ansible ນີ້, ພວກເຮົາໄດ້ກວມເອົາບາງໂມດູນ Ansible ໃນຫົວຂໍ້ທີ່ຜ່ານມາ, ດຽວນີ້ພວກເຮົາຈະເຂົ້າໄປເລິກເຊິ່ງແລະຄົ້ນພົບໂມດູນເພີ່ມເຕີມທີ່ມີປະໂຫຍດໃນການປະຕິບັດວຽກງານບໍລິຫານລະບົບ ຈຳ ນວນ ໜຶ່ງ.

ທ່ານຈະໄດ້ຮັບແນວຄວາມຄິດພື້ນຖານຂອງແຕ່ລະໂມດູນແລະເບິ່ງຕົວເລືອກທີ່ມີຢູ່ເພື່ອເຮັດ ສຳ ເລັດວຽກງານບາງຢ່າງ.

<

  • ການຄຸ້ມຄອງແພັກເກດຊອບແວແລະການຈັດເກັບຂໍ້ມູນໃນ ຄຳ ຕອບ
  • ຈັດການບໍລິການໂດຍໃຊ້ Ansible
  • ການຄຸ້ມຄອງ Firewall ກັບ Ansible
  • ເກັບແຟ້ມເອກະສານຫລືໂຟນເດີທີ່ມີ ຄຳ ຕອບ
  • ຈັດຕາຕະລາງວຽກງານທີ່ມີ ຄຳ ຕອບ
  • ຈັດການຜູ້ໃຊ້ແລະກຸ່ມດ້ວຍ Ansible
  • ສ້າງແຟ້ມແລະໄດເລກະທໍລີທີ່ມີ Ansible
  • ຈັດການກັບບ່ອນຈັດເກັບຂໍ້ມູນພ້ອມ Ansible
  • ຈັດການລະບົບແຟ້ມເອກະສານດ້ວຍ Ansible
  • ເມື່ອຕິດຕັ້ງແພັກເກດໃນລະບົບ Linux, ການແຈກຈ່າຍທີ່ແຕກຕ່າງກັນມາພ້ອມກັບຜູ້ຈັດການຊຸດຕ່າງໆ. ສຳ ລັບການແຈກຢາຍຂອງ RedHat, ພວກເຮົາມີ ຍຳ ຍຳ & dnf ໃນຂະນະທີ່ ສຳ ລັບລົດຊາດ Debian, ມີຄວາມ ເໝາະ ສົມ.

    Ansible ມາພ້ອມກັບໂມດູນທີ່ເອີ້ນວ່າແພັກ, ເຊິ່ງ ກຳ ຈັດຄວາມ ຈຳ ເປັນໃນການ ນຳ ໃຊ້ຜູ້ຈັດການຊຸດຕ່າງໆ ສຳ ລັບລະບົບຕ່າງໆ. ມັນອັດຕະໂນມັດໃຊ້ຜູ້ຈັດການຊຸດທີ່ສອດຄ້ອງກັນຂອງລະບົບເຈົ້າພາບ, ເຮັດໃຫ້ການເຮັດວຽກງ່າຍຂື້ນ.

    ຍົກຕົວຢ່າງ, ການຕິດຕັ້ງ htop ໃນກຸ່ມໂຮດທີ່ປະກອບມີທັງ Debian & RedHat distros ໃຊ້ໂມດູນຊຸດດັ່ງທີ່ສະແດງຢູ່ໃນ install_htop.yml playbook ຂ້າງລຸ່ມນີ້.

    ---
    - name: Install htop on Ubuntu and CentOS
      hosts: all
      tasks:
    
    - package:
             name: htop
             state: installed
    

    ໝາຍ ເຫດ: ຊື່ແພັກເກັດອາດຈະແຕກຕ່າງຈາກລະບົບປະຕິບັດການ ໜຶ່ງ ໄປອີກລະບົບ ໜຶ່ງ. ຍົກຕົວຢ່າງ, ພວກເຮົາມີ httpd ໃນການແຈກຈ່າຍ Redhat ແລະ Apache2 ສຳ ລັບລະບົບ Debian/Ubuntu ເຊິ່ງທັງ ໝົດ ນີ້ສະແດງເຖິງ Apache webserver. ສະນັ້ນ, ຄວນລະມັດລະວັງເປັນພິເສດໃນເວລາຖ່າຍທອດຊຸດເຫຼົ່ານີ້. ໂດຍປົກກະຕິແລ້ວ, ມັນດີທີ່ສຸດທີ່ຈະໃຊ້ຕົວແປຫລື ຄຳ ຖະແຫຼງການທີ່ມີເງື່ອນໄຂ.

    ຕໍ່ໄປ, ພວກເຮົາມີໂມດູນການບໍລິການ, ເຊິ່ງຖືກ ນຳ ໃຊ້ໃນການຄຸ້ມຄອງບໍລິການໃນລະບົບ Linux. ມັນໃຊ້ເພື່ອເລີ່ມຕົ້ນ, ຢຸດຫຼືເລີ່ມການບໍລິການ. ທ່ານຍັງສາມາດໃຊ້ມັນເພື່ອເປີດໃຊ້ບໍລິການເພື່ອວ່າເມື່ອລະບົບເລີ່ມຕົ້ນ, ມັນຈະເລີ່ມການບໍລິການໂດຍອັດຕະໂນມັດ.

    ຍົກຕົວຢ່າງ, ເພື່ອເລີ່ມຕົ້ນແລະເປີດໃຊ້ Apache webserver ເທິງ RHEL 8, ໃຊ້ບໍລິການດັ່ງທີ່ສະແດງ.

    ---
    - name: Start and enable httpd service
      hosts: webservers
      tasks:
    
    - service:
             name: httpd
             state: started
    	    enabled: yes
    

    ເພື່ອຢຸດການບໍລິການ httpd, ໃຫ້ຂ້າມຄຸນລັກສະນະທີ່ຢຸດ.

    ---
    - name: Stop httpd service
      hosts: webservers
      tasks:
    
    - service:
             name: httpd
             state: stopped
    

    ເພື່ອເລີ່ມຕົ້ນການບໍລິການ httpd, ໃຫ້ຜ່ານຄຸນລັກສະນະທີ່ເລີ່ມຕົ້ນ ໃໝ່.

    ---
    - name: Restart httpd service
      hosts: webservers
      tasks:
    
    - service:
             name: httpd
             state: restarted
    

    ຜູ້ບໍລິຫານລະບົບວຽກທີ່ ສຳ ຄັນອີກຢ່າງ ໜຶ່ງ ແມ່ນການຄຸ້ມຄອງລະບົບໄຟ. ໃນປື້ມຫຼີ້ນຫຼີ້ນ Ansible, ສິ່ງນີ້ໄດ້ຖືກເຮັດໃຫ້ງ່າຍຂຶ້ນຫຼາຍດ້ວຍໂມດູນ firewalld ແລະ ufw. ທ່ານສາມາດຕັ້ງຄ່າ firewall ເພື່ອອະນຸຍາດຫຼືຕັນພອດຫລືບໍລິການຫລືແມ້ກະທັ້ງທີ່ຢູ່ຂອງແຫລ່ງຂໍ້ມູນ.

    ກະລຸນາເຕັ້ນໄປຫາແລະເບິ່ງບາງຕົວຢ່າງ:

    ---
    - name: Allow port 80 
      hosts: webservers
      tasks: 
       
       -firewalld:
    	port: 80/tcp
         permanent: yes
         state: enabled
    

    ໃນປື້ມຫຼີ້ນຂ້າງເທິງ, ພອດ 80 ແມ່ນອະນຸຍາດໃຫ້ຂ້າມໄຟວໍ.

    ຕົວເລືອກ ຖາວອນ: ແມ່ນແລ້ວ ບັງຄັບໃຊ້ກົດລະບຽບຂອງໄຟວໍແລະເຮັດໃຫ້ມັນຄົງຢູ່ຕະຫຼອດການເລີ່ມຕົ້ນ ໃໝ່ ເຖິງຢ່າງໃດກໍ່ຕາມ, ກົດລະບຽບນີ້ບໍ່ໄດ້ ນຳ ໃຊ້ທັນທີ. ມັນມີຜົນບັງຄັບໃຊ້ພຽງແຕ່ຫຼັງຈາກເລີ່ມຕົ້ນ ໃໝ່. ເພື່ອບັງຄັບໃຊ້ກົດລະບຽບດັ່ງກ່າວໃນທັນທີ, ໃຫ້ໃຊ້ຕົວເລືອກ ທັນທີ: ແມ່ນແລ້ວ .

    ເພື່ອລະບຸທີ່ຢູ່ທີ່ອະນຸຍາດໃຫ້ໃຊ້ແຫຼ່ງຂໍ້ມູນ: 0.0.0.0/0.

    - firewalld:
        source: 192.168.0.0/24
        zone: public
        state: enabled
    

    ເພື່ອ ກຳ ນົດລະດັບຂອງທ່າເຮືອທີ່ຈະໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ຕົວເລືອກ port ດັ່ງຕໍ່ໄປນີ້:

    - firewalld:
        port: 213-567/udp
        permanent: yes
        state: enabled
    

    ເພື່ອສະກັດທ່າເຮືອປ່ຽນທາງເລືອກຂອງລັດເພື່ອພິການຕາມທີ່ສະແດງ:

    -firewalld:
    	port: 80/tcp
         permanent: yes
         state: disabled
    

    ນອກເຫນືອຈາກການເພີ່ມ/ສະກັດທ່າເຮືອ, ທ່ານຍັງສາມາດ ນຳ ໃຊ້ກົດລະບຽບດຽວກັນກັບບໍລິການໃດ ໜຶ່ງ. ແລະມັນງ່າຍດາຍຫຼາຍ. ພຽງແຕ່ໃຊ້ໂມດູນການບໍລິການແລະເພີ່ມເຕີມການບໍລິການທີ່ຈະຖືກເພີ່ມແລະຮັບປະກັນວ່າທາງເລືອກຂອງລັດໄດ້ຖືກ ກຳ ນົດໃຫ້ເປີດໃຊ້ງານ.

    - firewalld:
        service: https
        permanent: true
        state: enabled
    

    ເພື່ອສະກັດການບໍລິການທີ່ຕັ້ງຄ່າທາງເລືອກຂອງລັດທີ່ຈະພິການ.

    - firewalld:
        service: https
        permanent: true
        state: disabled
    

    ການເກັບເອກະສານ ໝາຍ ເຖິງການບີບອັດເອກະສານຫລືໂຟນເດີໃຫ້ເປັນຮູບແບບທີ່ມີຂະ ໜາດ ງ່າຍແລະມີຂະ ໜາດ ນ້ອຍ. ເຮືອທີ່ຕອບໄດ້ພ້ອມດ້ວຍໂມດູນທີ່ເອີ້ນວ່າເກັບໄວ້. ການບີບອັດໄຟລ໌ແມ່ນປະມານງ່າຍເທົ່າທີ່ມັນໄດ້ຮັບ. ສິ່ງທີ່ຕ້ອງການທັງ ໝົດ ແມ່ນເພື່ອ ກຳ ນົດເສັ້ນທາງແຫຼ່ງຂອງເອກະສານແລະຈຸດ ໝາຍ ປາຍທາງຂອງເອກະສານທີ່ຖືກບີບອັດ.

    ພິຈາລະນາເຄື່ອງຫຼີ້ນຫຼີ້ນຫຼີ້ນ compress.yml ດ້ານລຸ່ມ.

    ---
    - hosts: webservers
      tasks:
    
        • name: Compress a folder
    archive:
            path: /opt/data/web
            dest: /tmp/web.gz
    

    ປື້ມບັນທຶກຂ້າງເທິງຈະບີບອັດໄດເລກະທໍລີ/opt/data/web ແລະບັນທຶກມັນໄວ້ໃນ /tmp/web.gz.

    ຮູບແບບການບີບອັດແບບເລີ່ມຕົ້ນແມ່ນ .gz , ຢ່າງໃດກໍ່ຕາມ, ນີ້ສາມາດຖືກ ກຳ ນົດໂດຍໃຊ້ຄຸນລັກສະນະຮູບແບບ. ຕົວຢ່າງ Playbook ຕໍ່ໄປ.

    ---
    - hosts: webservers
      Tasks:
    
      - name: Create a zip archive 
        archive:
         path: /opt/data/web
         dest: /tmp/web
         format: zip
    

    ປື້ມບັນທຶກຂ້າງເທິງນີ້ບີບອັດ/ເລືອກ/ຂໍ້ມູນ/ເວັບໄຊທ໌້ເພື່ອ /tmp/web.zip.

    ທ່ານຍັງສາມາດຫຍໍ້ເອກະສານທີ່ບີບອັດໂດຍໃຊ້ຄຸນລັກສະນະທີ່ບໍ່ເປັນເອກະພາບ. ພິຈາລະນາປື້ມຫຼີ້ນຂ້າງລຸ່ມນີ້.

    ---
    - hosts: webservers
      tasks:
    
     - name:Uncompress /tmp/web.gz to/opt directory  on Ansible controller
       unarchive:
         src: /tmp/web.bz2
         dest: /opt/
    

    ເຄື່ອງຫຼີ້ນຂ້າງເທິງບໍ່ເຮັດໃຫ້ແຟ້ມເອກະສານ /opt/data/web.gz ເລືອກ/ເລືອກຕົວຄວບຄຸມ Ansible.

    ເພື່ອລະບຸລະບົບແຫຼ່ງຂໍ້ມູນໄລຍະໄກໃຫ້ໃຊ້ຕົວເລືອກ remote_src = ແມ່ນແລ້ວ .

    ---
    - hosts: webservers
      tasks:
    
     - name:Uncompress /tmp/web.bz2 to/opt on remote host
       unarchive:
         src: /tmp/web.bz2
         dest: /opt/
         remote_src=yes 
    

    ປື້ມບັນຍາຍຂ້າງເທິງເຮັດໃຫ້ແຟ້ມເອກະສານ /tmp/web.bz2 ເທິງ node ຫ່າງໄກສອກຫຼີກໄປທີ່/ເລືອກ/ໄດເລກະທໍລີ.

    ໂມດູນ cron ຊ່ວຍໃນການຈັດຕາຕະລາງວຽກໃນ Ansible Playbook.

    ພິຈາລະນາປື້ມຫຼີ້ນຂ້າງລຸ່ມນີ້.

    ---
    - 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
    

    ປື້ມບັນລະຍາຍເພງເປີດຕົວ ໜັງ ສືການເຂົ້າຮ່ວມໃນວັນທີ 5 ເມສາເວລາ 5:00 ໂມງແລງ.

    ຖ້າທ່ານຕ້ອງການຈັດຕາຕະລາງຄິບນີ້ ດຳ ເນີນການໄດ້ຖ້າວັນທີ 5 ເດືອນເມສາແມ່ນວັນຈັນ, ຫຼັງຈາກນັ້ນໃຫ້ ນຳ ໃຊ້ວັນອາທິດ: 1 ຄຸນລັກສະນະ. 0 ໝາຍ ເຖິງວັນອາທິດແລະ 6 ໝາຍ ເຖິງວັນເສົາຕາມການແຈ້ງບອກຂອງ cron.

    month: 4
    day: 5
    hour: 17
    minute: 00
    weekday: 1
    

    ດາວ (*) ໃນບັນດາຂົງເຂດເຫຼົ່ານີ້ສະແດງເຖິງມູນຄ່າໃດໆ.

    ເພື່ອຈະ ດຳ ເນີນວຽກງານໃນວັນທີ 5 ເມສານີ້ເວລາ 5:00 ໂມງບໍ່ວ່າຈະເປັນມື້ພັກວຽກກໍ່ຕາມ, ໃຫ້ ນຳ ໃຊ້ຕົວ ກຳ ນົດເວລາຕາມທີ່ສະແດງ.

    month: 4
    day: 5
    hour: 17
    minute: 00
    weekday: *
    

    ເພື່ອປະຕິບັດວຽກ cron ໃນວັນທີ 5 ຂອງທຸກໆເດືອນເວລາ 5:00 ໂມງແລງໃຫ້ໃຊ້ການຕັ້ງຄ່າຂ້າງລຸ່ມນີ້.

    month: *
    day: 5
    hour: 17
    minute: 00
    weekday: *
    

    ເພື່ອປະຕິບັດວຽກ cron ປະ ຈຳ ວັນໃນເວລາ 5:00 ໂມງແລງ ກຳ ນົດການຕັ້ງເວລາດັ່ງທີ່ສະແດງ:

    month: *
    day: *
    hour: 17
    minute: 00
    weekday: *
    

    ເພື່ອປະຕິບັດວຽກ cron ທຸກໆ 5 ຊົ່ວໂມງ, ໃຫ້ໃຊ້ຄ່າຂັ້ນຕອນ */5 ຕາມທີ່ສະແດງ.

    month: *
    day: *
    hour: */5
    minute: *
    weekday: *
    

    ນອກນັ້ນທ່ານຍັງສາມາດຈັດການຜູ້ໃຊ້ແລະກຸ່ມພາຍໃນປື້ມຫຼິ້ນ Ansible ໄດ້ຢ່າງຂ້ອນຂ້າງ.

    ເພື່ອສ້າງຜູ້ໃຊ້ ໃໝ່, ໃຊ້ໂມດູນຜູ້ໃຊ້ຕາມທີ່ສະແດງໄວ້.

    ---
    - hosts: webservers
      tasks:
    
     - name: Create a new user
       user: 
         name: Jack
    

    ທ່ານຍັງສາມາດເພີ່ມຕົວເລືອກເພີ່ມເຕີມເຊັ່ນ: UID, ກຸ່ມ.

    - name: Create a new user
       user: 
          name: Jack
          comment: Jack Peters
              uid:   1002
          group: administrators
          shell:  /bin/bash
    

    ເພື່ອ ກຳ ຈັດຜູ້ໃຊ້, ໃຊ້ ຄຳ ສັ່ງ <ຖອນອອກ: ແມ່ນ ຄຳ ຖະແຫຼງການ.

    - name: Remove the user 'Jack'
      user:
        name: Jack
        state: absent
        remove: yes
    

    ເພື່ອສ້າງກຸ່ມ ໃໝ່, ໃຫ້ ນຳ ໃຊ້ໂມດູນກຸ່ມ.

    - name: Create a group
      group:
        name: developers
    

    ເພື່ອສ້າງເອກະສານຂອງໄດເລກະທໍລີ, ໃຊ້ໂມດູນແຟ້ມເອກະສານ.

    ຕົວຢ່າງ, ເພື່ອສ້າງໄດເລກະທໍລີໃຫມ່.

    ---
    - hosts: webservers
      tasks:
    
      - name: Create a new directory
        file: 
         path: /opt/app
         state: directory
    

    ທ່ານສາມາດເພີ່ມຄຸນລັກສະນະອື່ນໆເຊັ່ນ: ເຈົ້າຂອງ, ກຸ່ມແລະສິດໃນການຍື່ນ.

    - hosts: webservers
      tasks:
    
      - name: Create a new directory
        file: 
         path: /opt/web
         state: directory
         owner: www-data
         group: www-data
         mode: 0644
    

    ນອກຈາກນັ້ນ, ທ່ານສາມາດສ້າງໄດເລກະທໍລີຄືນ ໃໝ່ ໂດຍການ ນຳ ໃຊ້ພະນັກງານຄົ້ນຄ້ວາ: ແມ່ນແລ້ວ.

    ---
    - hosts: webservers
      tasks:
    
      - name: Create directories recursively
        file: 
         path: /opt/web/app
         state: directory
         owner: www-data
         group: www-data
         mode: 0644
    recurse: yes
    

    ເພື່ອສ້າງເອກະສານ, ໃຫ້ໃຊ້ຕົວເລືອກ state: ແຕະ .

    ---
    - 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 ຖືກໃຊ້ເພື່ອ ກຳ ນົດປະລິມານແລະກຸ່ມ LVM.

    ພິຈາລະນາປື້ມຫຼີ້ນຂ້າງລຸ່ມນີ້:

    ---
    - hosts: webservers
      tasks: 
        • name: Create lVM volume group
    lvg: 
     vg: vg1
     pvs: /dev/sda1
     pesize: 32
    

    ນີ້ສ້າງກຸ່ມບໍລິມາດຢູ່ດ້ານເທິງຂອງສ່ວນແບ່ງ /dev/sda1 ທີ່ມີຂະ ໜາດ ທາງດ້ານຮ່າງກາຍ 32 MB.

    ເມື່ອສ້າງແລ້ວ, ໃຫ້ໃຊ້ໂມດູນ lvol ເພື່ອສ້າງປະລິມານທີ່ມີເຫດຜົນດັ່ງທີ່ເຫັນ

    ---
        - hosts: webservers
          tasks: 
    
           - name: Create lVM volume
        lvol: 
        vg: vg1
        lv: lvol1
        pvs: /dev/sda1
    

    ເພື່ອສ້າງລະບົບແຟ້ມເອກະສານໃນອຸປະກອນບລັອກ, ໃຊ້ໂມດູນລະບົບແຟ້ມເອກະສານ.

    ປື້ມຫຼີ້ນທາງລຸ່ມສ້າງລະບົບແຟ້ມລະບົບຂອງ xfs ໃສ່ປະລິມານ block.

    ---
        - hosts: webservers
          tasks: 
    
           - name: Create a filesystem
             filesystem:
             
               fstype: xfs
               dev: /dev/vg1/lvol1
    

    ທ່ານສາມາດ ດຳ ເນີນການຕໍ່ໄປເພື່ອເພີ່ມປະລິມານບລັອກໂດຍໃຊ້ໂມດູນ mount ຕາມທີ່ສະແດງຢູ່ໃນປື້ມຫຼີ້ນຂ້າງລຸ່ມນີ້:

    ---
        - hosts: webservers
          tasks: 
    
           - name: Mount a filesystem
             mount:
             
               fstype: xfs
               src: /dev/vg1/lvol1
               path: /opt/web
               state: mounted
    

    ນີ້ສະຫຼຸບຫົວຂໍ້. ພວກເຮົາໄດ້ກວມເອົາວຽກງານການບໍລິຫານລະບົບຕ່າງໆທີ່ສາມາດປະຕິບັດໄດ້ໂດຍໂມດູນທີ່ສ້າງຂື້ນມາໃນ Ansbook Playbook.