ເຂົ້າໃຈອົງປະກອບຫຼັກຂອງ ຄຳ ຕອບ - ສ່ວນທີ 1


ຜູ້ຊ່ຽວຊານທີ່ໄດ້ຮັບການຮັບຮອງຈາກ Red Hat ໃນການສອບເສັງອັດຕະໂນມັດ Ansible (EX407) ແມ່ນໂປແກຼມຮັບຮອງ ໃໝ່ ໂດຍ Red Hat ທີ່ທົດສອບທັກສະຂອງທ່ານທີ່ຈະໃຊ້ Ansible ເພື່ອອັດຕະໂນມັດການຕັ້ງຄ່າຂອງລະບົບແລະແອັບພລິເຄຊັນຕ່າງໆ.

ຊຸດດັ່ງກ່າວຈະມີຫົວຂໍ້ວ່າ "ຜູ້ຊ່ຽວຊານທີ່ໄດ້ຮັບການຮັບຮອງຈາກ Red Hat ໃນການສອບເສັງອັດຕະໂນມັດ Ansible (EX407)" ແລະກວມເອົາຈຸດປະສົງໃນການສອບເສັງຕໍ່ໄປນີ້ໂດຍອີງໃສ່ Red Hat Enterprise Linux 7.5 ແລະ Ansible 2.7, ເຊິ່ງພວກເຮົາຈະມາເວົ້າເຖິງໃນຊຸດ Ansible ນີ້:

ເພື່ອເບິ່ງຄ່າ ທຳ ນຽມແລະລົງທະບຽນ ສຳ ລັບການສອບເສັງໃນປະເທດຂອງທ່ານ, ກວດເບິ່ງ ໜ້າ ການສອບເສັງອັດຕະໂນມັດ Ansible.

ໃນພາກ 1 ຂອງຊຸດ Ansible ນີ້, ພວກເຮົາຈະປຶກສາຫາລືກ່ຽວກັບສະພາບລວມພື້ນຖານຂອງສ່ວນປະກອບຫຼັກໃນ Ansible.

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

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

ແນ່ນອນ, ມີທາງເລືອກອື່ນອີກຕໍ່ Ansible ເຊັ່ນ Puppet, Chef, ແລະເກືອ. ເຖິງຢ່າງໃດກໍ່ຕາມ, Ansible ສ່ວນຫຼາຍແມ່ນມັກເພາະມັນໃຊ້ງ່າຍແລະຮຽນງ່າຍ.

ເປັນຫຍັງມັນຈຶ່ງງ່າຍທີ່ຈະຮຽນຮູ້ວ່າທ່ານອາດຈະຖາມ? ນີ້ແມ່ນຍ້ອນວ່າ Ansible ໃຊ້ YAML (Yet Another Markup Language) ໃນການຕັ້ງຄ່າແລະວຽກອັດຕະໂນມັດເຊິ່ງມັນສາມາດອ່ານໄດ້ໂດຍມະນຸດແລະງ່າຍຕໍ່ການຕິດຕາມ. YAML ໃຊ້ໂປໂຕຄອນ SSH ເພື່ອສື່ສານກັບເຊີຟເວີຫ່າງໄກສອກຫຼີກ, ບໍ່ຄືກັບແພລະຕະຟອມອັດຕະໂນມັດອື່ນໆທີ່ຕ້ອງການໃຫ້ທ່ານຕິດຕັ້ງຕົວແທນໃນຂໍ້ມູນໄລຍະໄກເພື່ອສື່ສານກັບພວກມັນ.

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

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

ເອກະສານສາງສາມາດມີລະບົບຫ່າງໄກສອກຫຼີກທີ່ ກຳ ນົດໂດຍທີ່ຢູ່ IP ຂອງພວກເຂົາດັ່ງທີ່ສະແດງ:

10.200.50.50
10.200.50.51
10.200.50.52

ອີກທາງເລືອກ ໜຶ່ງ, ພວກເຂົາສາມາດຖືກລະບຸຕາມກຸ່ມ. ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ພວກເຮົາມີບັນດາເຊີບເວີທີ່ວາງຢູ່ພາຍໃຕ້ 2 ກຸ່ມ - web server ແລະຖານຂໍ້ມູນ. ວິທີນີ້ພວກເຂົາສາມາດອ້າງອີງຕາມຊື່ກຸ່ມແລະບໍ່ແມ່ນທີ່ຢູ່ IP ຂອງພວກເຂົາ. ນີ້ເພີ່ມເຕີມງ່າຍດາຍຂະບວນການດໍາເນີນງານ.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

ທ່ານສາມາດມີຫລາຍກຸ່ມທີ່ມີຫລາຍເຊີບເວີຖ້າທ່ານຢູ່ໃນສະພາບແວດລ້ອມການຜະລິດໃຫຍ່.

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

ຍົກຕົວຢ່າງ, ທ່ານສາມາດມີເອກະສານ playbook ເພື່ອຕິດຕັ້ງ Apache webserver ໃນ CentOS 7 ແລະເອີ້ນມັນວ່າ httpd.yml.

ເພື່ອສ້າງ playbook ໃຫ້ແລ່ນ ຄຳ ສັ່ງ.

$ touch playbook_name.yml

ຕົວຢ່າງເພື່ອສ້າງປື້ມຫຼີ້ນທີ່ເອີ້ນວ່າ httpd, ດຳ ເນີນການ ຄຳ ສັ່ງ.

$ touch httpd.yml

ເອກະສານ YAML ເລີ່ມຕົ້ນດ້ວຍ 3 hyphen ດັ່ງທີ່ສະແດງ. ພາຍໃນແຟ້ມ, ເພີ່ມ ຄຳ ແນະ ນຳ ຕໍ່ໄປນີ້.

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

ເຄື່ອງຫຼີ້ນຂ້າງເທິງຕິດຕັ້ງເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Apache ໃນລະບົບຫ່າງໄກສອກຫຼີກທີ່ຖືກ ກຳ ນົດເປັນ webservers ໃນເອກະສານສາງ. ຫຼັງຈາກການຕິດຕັ້ງຂອງ webserver, Ansible ຕໍ່ມາກວດເບິ່ງວ່າເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Apache ຖືກເລີ່ມຕົ້ນແລະເຮັດວຽກ.

ໂມດູນແມ່ນຫົວ ໜ່ວຍ ທີ່ຕັດແຍກລະຫັດທີ່ໃຊ້ໃນ playbook ສຳ ລັບ ດຳ ເນີນການ ຄຳ ສັ່ງໃນ host ຫຼື server ທີ່ຢູ່ຫ່າງໄກສອກຫຼີກ. ແຕ່ລະໂມດູນແມ່ນຕິດຕາມດ້ວຍການໂຕ້ຖຽງ.

ຮູບແບບພື້ນຖານຂອງໂມດູນແມ່ນ ສຳ ຄັນ: ຄຸນຄ່າ.

- name: Install apache packages 
    yum:   name=httpd  state=present

ໃນຫຍໍ້ລະຫັດ YAML ຂ້າງເທິງ, -name ແລະ yum ແມ່ນໂມດູນ.

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

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

ຕົວແປຕ່າງໆຈະຖືກ ນຳ ໃຊ້ເມື່ອ ຄຳ ແນະ ນຳ ແຕກຕ່າງຈາກລະບົບ ໜຶ່ງ ໄປສູ່ອີກລະບົບ ໜຶ່ງ. ນີ້ແມ່ນຄວາມຈິງໂດຍສະເພາະໃນລະຫວ່າງການຕັ້ງຄ່າຫລືການບໍລິການແລະຄຸນລັກສະນະຕ່າງໆ.

ຕົວແປມີ 3 ປະເພດຕົ້ນຕໍ:

  • ຕົວປ່ຽນແປງ Playbook
  • ຕົວປ່ຽນແປງສິນຄ້າຄົງຄັງ
  • ຕົວແປພິເສດ

ໃນ Ansible, ຕົວແປຕ່າງໆຖືກ ກຳ ນົດໂດຍໃຊ້ vars k, ຫຼັງຈາກນັ້ນປະຕິບັດຕາມຊື່ຕົວແປແລະຄ່າ.

syntax ແມ່ນດັ່ງທີ່ສະແດງ:

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

ພິຈາລະນາລະຫັດຂ້າງລຸ່ມນີ້.

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

ໃນຕົວຢ່າງຂ້າງເທິງ, ຕົວແປຢູ່ທີ່ນີ້ແມ່ນ web_directory ແລະມັນແນະ ນຳ ໃຫ້ມີຄວາມຮັບຜິດຊອບໃນການສ້າງໄດເລກະທໍລີໃນເສັ້ນທາງ/var/www/html/path.

ຂໍ້ເທັດຈິງແມ່ນຄຸນສົມບັດຂອງລະບົບທີ່ລວບລວມໂດຍ Ansible ເມື່ອມັນປະຕິບັດປື້ມຫຼີ້ນໃນລະບົບເຈົ້າພາບ. ຄຸນສົມບັດປະກອບມີ hostname, ຄອບຄົວ OS, ປະເພດ CPU, ແລະ CPU ລວມເພື່ອເວົ້າເຖິງສອງສາມຢ່າງ.

ເພື່ອໃຫ້ເບິ່ງບາງຂໍ້ເທັດຈິງທີ່ມີຢູ່ ສຳ ລັບການ ນຳ ໃຊ້ອອກ ຄຳ ສັ່ງ.

$ ansible localhost -m setup

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

$ ansible localhost -m setup -a "filter=*ipv4"

ໃນ Ansible, ເອກະສານການຕັ້ງຄ່າແມ່ນເອກະສານ ໜຶ່ງ ທີ່ມີການຕັ້ງຄ່າພາລາມິເຕີທີ່ແຕກຕ່າງກັນເຊິ່ງ ກຳ ນົດວ່າ Ansible ເຮັດວຽກແນວໃດ. ເອກະສານການຕັ້ງຄ່າເລີ່ມຕົ້ນແມ່ນໄຟລ໌ ansible.cfg ທີ່ຕັ້ງຢູ່ໃນ/etc/ansible/directory.

ທ່ານສາມາດເບິ່ງເອກະສານການຕັ້ງຄ່າໂດຍການແລ່ນ:

$ cat /etc/ansible/ansible.cfg

ຂະນະທີ່ທ່ານສາມາດສັງເກດເຫັນ, ຕົວ ກຳ ນົດການຫຼາຍຢ່າງລວມມີ: ເສັ້ນທາງສາງແລະເອກະສານຫ້ອງສະ ໝຸດ, ຜູ້ໃຊ້ sudo, ຕົວກັ່ນຕອງປັ,ກອິນ, ໂມດູນແລະອື່ນໆ.

ນອກຈາກນັ້ນ, ທ່ານຍັງສາມາດມີເອກະສານການຕັ້ງຄ່າຫລາຍຢ່າງເຮັດວຽກກັບ Ansible ນອກຈາກແຟ້ມ config ຕັ້ງແຕ່ຕອນຕົ້ນຂອງທ່ານ.

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