ວິທີການ ກຳ ນົດຂໍ້ ກຳ ນົດທີ່ສາມາດຄວບຄຸມໄດ້ແລະ ດຳ ເນີນງານ ad-hoc Commands - ພາກທີ 3


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

ຕັ້ງຄ່າການຢືນຢັນ SSH ທີ່ບໍ່ຖືກຕ້ອງຕາມລະຫັດທີ່ສາມາດຄວບຄຸມໄດ້

ໃນຖານະເປັນບົດບັນຍາຍກ່ຽວກັບຫົວຂໍ້ສຸດທ້າຍຂອງພວກເຮົາ, ການຈັດການກັບເຈົ້າພາບທີ່ຢູ່ຫ່າງໄກສອກຫຼີກກັບ Ansible ຮຽກຮ້ອງໃຫ້ຕັ້ງການກວດສອບລະຫັດຜ່ານ SSH ທີ່ບໍ່ຖືກຕ້ອງລະຫວ່າງລະບົບຂໍ້ ກຳ ນົດຄວບຄຸມ Ansible ແລະໂຮດທີ່ຖືກຈັດການ. ນີ້ກ່ຽວຂ້ອງກັບການຜະລິດຄູ່ ສຳ ຄັນ (ສາທາລະນະແລະເອກະຊົນ SSH key pair) ຢູ່ໃນ Ansode Control node ແລະ ສຳ ເນົາ Public key ໃຫ້ກັບທຸກເຈົ້າຂອງທີ່ຢູ່ຫ່າງໄກສອກຫຼີກ. ນີ້ຈະເປັນບາດກ້າວທີ່ ສຳ ຄັນທີ່ຈະກ້າວໄປຂ້າງ ໜ້າ ແລະຈະເຮັດໃຫ້ວຽກຂອງທ່ານງ່າຍຂຶ້ນຫຼາຍ.

ຕັ້ງຄ່າຄ່າສິດທິພິເສດໃນ Nodes ທີ່ຖືກຈັດການ

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

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

ພິຈາລະນາປື້ມຫຼິ້ນ httpd.yml ທີ່ຕິດຕັ້ງແລະເລີ່ມ Apache webserver ຕາມທີ່ສະແດງ:

---
- name: install and start Apache webserver
  hosts: webservers

  tasks:
       - name: install httpd
         yum: name=httpd  state=latest
         become: yes
       - name: check httpd status
         service: name=httpd state=started

ຄຳ ສັ່ງ <ກາຍ> ກາຍເປັນ: ແມ່ນແລ້ວ ຄຳ ສັ່ງແນະ ນຳ ໃຫ້ທ່ານສາມາດປະຕິບັດ ຄຳ ສັ່ງໃຫ້ເປັນຜູ້ ນຳ ໃຊ້ຮາກໃນໂຮດຫ່າງໄກສອກຫຼີກ.

ຄຳ ສັ່ງອີກອັນ ໜຶ່ງ ທີ່ທ່ານສາມາດ ນຳ ໃຊ້ເພື່ອກາຍເປັນຜູ້ ນຳ ໃຊ້ຄົນອື່ນແມ່ນຜູ້ທີ່ກາຍມາເປັນຜູ້ ນຳ ໃຊ້. ນີ້ອະນຸຍາດໃຫ້ທ່ານປ່ຽນກັບຜູ້ໃຊ້ sudo ໃນໂຮດຫ່າງໄກສອກຫຼີກເມື່ອເຂົ້າສູ່ລະບົບແລະບໍ່ແມ່ນຜູ້ໃຊ້ທີ່ທ່ານເຂົ້າໃຊ້.

ຍົກຕົວຢ່າງ, ເພື່ອ ດຳ ເນີນການ ຄຳ ສັ່ງທີ່ເປັນ tecmint user ໃນໄລຍະໄກໃຊ້ ຄຳ ສັ່ງທີ່ໄດ້ສະແດງໄວ້.

- name: Run a command as the apache user
  command: somecommand
  become: yes
  become_user: tecmint

ຄຳ ສັ່ງແນະ ນຳ ນີ້ຈະ override ວິທີການທີ່ ກຳ ນົດໄວ້ໃນແຟ້ມ ansible.cfg ເຊິ່ງມັກຈະຕັ້ງຄ່າ sudo.

ສິ່ງເຫຼົ່ານີ້ຖືກໃຊ້ໃນລະດັບການຫຼີ້ນຫລືລະດັບ ໜ້າ ວຽກ, ຕົວຢ່າງເຊັ່ນເມື່ອທ່ານຕ້ອງການປ່ຽນເປັນຜູ້ໃຊ້ເມື່ອຫອຍໂຕຖືກຕັ້ງເປັນ nologin.

ຍົກຕົວຢ່າງ,

- name: Run a command as nobody
  command: somecommand
  become: true
  become_method: su
  become_user: nobody
  become_flags: '-s /bin/sh'

ຕົວເລືອກເສັ້ນຄໍາສັ່ງໃນການຍົກລະດັບສິດທິພິເສດ

ລອງພິຈາລະນາເບິ່ງບາງຕົວເລືອກ ຄຳ ສັ່ງທີ່ທ່ານສາມາດໃຊ້ເພື່ອຍົກລະດັບສິດທິພິເສດຂອງທ່ານໃນເວລາທີ່ໃຊ້ ຄຳ ສັ່ງ:

  • --ask-become-pass , -K - ສິ່ງນີ້ກະຕຸ້ນທ່ານໃຫ້ລະຫັດລັບຂອງຜູ້ໃຊ້ sudo ໃນລະບົບຫ່າງໄກສອກຫຼີກທີ່ທ່ານ ກຳ ລັງພະຍາຍາມເຊື່ອມຕໍ່.

$ ansible-playbook myplaybook.yml --ask-become-pass

  • - ຜົນໄດ້ຮັບ , -b - ນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດປະຕິບັດ ໜ້າ ທີ່ເປັນຜູ້ ນຳ ໃຊ້ຮາກໂດຍບໍ່ຕ້ອງມີການລະຫັດລັບ.

$ ansible-playbook myplaybook.yml --become 

  • --become-user = BECOME_USER - ມັນຊ່ວຍໃຫ້ທ່ານສາມາດປະຕິບັດ ໜ້າ ທີ່ເປັນຜູ້ໃຊ້ຄົນອື່ນໄດ້.

$ ansible-playbook myplaybook.yml --become-user=tecmint

ເຮັດໃຫ້ການຕັ້ງຄ່າການເຮັດວຽກທີ່ຖືກຕ້ອງໂດຍໃຊ້ ຄຳ ສັ່ງ Ad-Hoc Ansible

ບາງຄັ້ງ, ທ່ານອາດຈະຕ້ອງການທີ່ຈະປະຕິບັດວຽກງານທີ່ລວດໄວແລະງ່າຍດາຍໃນບັນດາຜູ້ໃຫ້ບໍລິການຫ່າງໄກສອກຫຼີກຫຼືເຄື່ອງແມ່ຂ່າຍໃນ Ansible ໂດຍບໍ່ຈໍາເປັນຕ້ອງສ້າງປື້ມຫຼີ້ນ. ໃນກໍລະນີດັ່ງກ່າວ, ທ່ານຕ້ອງການໃຊ້ ຄຳ ສັ່ງ ad-hoc.

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

ໃນບົດສອນນີ້, ພວກເຮົາຄົ້ນຫາ ຄຳ ຮ້ອງສະ ໝັກ ຕ່າງໆຂອງ Ansible Ad-Hoc ຕ່າງໆ. ພວກເຮົາຈະ ນຳ ໃຊ້ເອກະສານສາງຢູ່ດ້ານລຸ່ມເພື່ອການສາທິດ.

[webservers]
173.82.115.165

[database_servers]
173.82.202.239

ການ ນຳ ໃຊ້ຂັ້ນພື້ນຖານທີ່ສຸດຂອງ ຄຳ ສັ່ງ Ansible-Adhoc ແມ່ນການ ນຳ ໃຊ້ໂຮດຫລືກຸ່ມເຈົ້າພາບ.

# ansible -m ping all

ໃນ ຄຳ ສັ່ງຂ້າງເທິງ, ພາລາມິເຕີ -m ແມ່ນຕົວເລືອກໂມດູນ. Ping ແມ່ນຄໍາສັ່ງ adhoc ແລະຕົວກໍານົດການທີສອງແມ່ນຕົວແທນທັງຫມົດຂອງເຈົ້າພາບໃນເອກະສານສາງ. ຜົນໄດ້ຮັບຂອງຄໍາສັ່ງແມ່ນສະແດງຢູ່ດ້ານລຸ່ມ:

ເພື່ອ ping, ກຸ່ມສະເພາະຂອງເຈົ້າພາບ, ແທນຕົວ ກຳ ນົດ 'ທັງ ໝົດ' ດ້ວຍຊື່ຂອງກຸ່ມ. ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ພວກເຮົາ ກຳ ລັງທົດສອບການເຊື່ອມຕໍ່ກັບເຈົ້າພາບທີ່ຢູ່ພາຍໃຕ້ກຸ່ມ webservers.

# ansible -m ping webservers

ນອກຈາກນັ້ນ, ທ່ານສາມາດໃຊ້ຄຸນລັກສະນະ -a ເພື່ອລະບຸ ຄຳ ສັ່ງ Linux ປົກກະຕິໃນເຄື່ອງ ໝາຍ ວົງຢືມຄູ່. ຕົວຢ່າງ, ເພື່ອກວດສອບລະບົບເວລາຂອງລະບົບໄລຍະໄກ, ດຳ ເນີນການ:

# ansible -a "uptime" all

ເພື່ອກວດກາເບິ່ງການໃຊ້ disk ຂອງໂຮດຫ່າງໄກສອກຫຼີກ.

# ansible -a "df -Th" all

ມັນມີຫລາຍຮ້ອຍໂມດູນທີ່ເຈົ້າສາມາດໃຊ້ກັບ ຄຳ ສັ່ງ Adhoc. ເພື່ອເບິ່ງບັນຊີລາຍຊື່ທັງ ໝົດ ຂອງໂມດູນທີ່ມີ ຄຳ ອະທິບາຍຂອງມັນ, ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້.

# ansible-doc -l

ເພື່ອເບິ່ງຂໍ້ມູນລະອຽດກ່ຽວກັບໂມດູນສະເພາະ, ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງ.

# ansible-doc module_name

ຕົວຢ່າງ, ເພື່ອຄົ້ນຫາລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບໂມດູນ yum ທີ່ແລ່ນ:

# ansible-doc yum

ຄໍາສັ່ງ adhoc ທີ່ຕອບໄດ້ສາມາດຖືກນໍາໃຊ້ສໍາລັບການຕິດຕັ້ງແລະກໍາຈັດແພກເກດໂດຍໃຊ້ yum ແລະຜູ້ຈັດການຊຸດ apt.

ການຕິດຕັ້ງ server web server ໃນ CentOS 7 host ພາຍໃຕ້ກຸ່ມ webservers ໃນເອກະສານສາງແລ່ນ ຄຳ ສັ່ງ:

# ansible webservers -m yum -a "name=httpd  state=present"

ເພື່ອພິສູດການຕິດຕັ້ງຂອງເວັບເຊີຟເວີ Apache, ເຂົ້າສູ່ລະບົບລູກຄ້າຫ່າງໄກສອກຫຼີກແລະແລ່ນ.

# rpm -qa | grep httpd

ເພື່ອຖອນການຕິດຕັ້ງ Apache, ປ່ຽນແປງສະຖານະການງ່າຍດາຍຕັ້ງແຕ່ປະຈຸບັນຈົນບໍ່ມີ.

# ansible webservers -m yum -a "name=httpd  state=absent"

ອີກເທື່ອຫນຶ່ງ, ເພື່ອຢືນຢັນການໂຍກຍ້າຍຂອງ httpd run.

# rpm -qa | grep httpd

ດັ່ງທີ່ໄດ້ສັງເກດເຫັນ, ແພັກເກດເຊີຟເວີເວັບຂອງ Apache ໄດ້ຖືກລຶບລ້າງແລ້ວ.

ເມື່ອສ້າງຜູ້ໃຊ້, ໂມດູນ ‘ຜູ້ໃຊ້’ ເຂົ້າມາໃຊ້ໄດ້ງ່າຍ. ເພື່ອສ້າງຊື່ຜູ້ໃຊ້ ໃໝ່ ທີ່ມີລະຫັດຜ່ານໃນລະບົບ database_server ຂອງລູກຄ້າ, ໃຫ້ອອກ ຄຳ ສັ່ງ.

# ansible database_server -m user -a "name=james password=redhat"

ເພື່ອຢືນຢັນການສ້າງຜູ້ໃຊ້ ໃໝ່, ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງ:

# ansible database_servers -a "id james"

ເພື່ອ ກຳ ຈັດຜູ້ໃຊ້, ດຳ ເນີນການ ຄຳ ສັ່ງ:

# ansible database_servers -m user -a "name=james state=absent"

ຖ້າທ່ານ ກຳ ລັງໃຊ້ງານ Ansible ໃນຖານະຜູ້ໃຊ້ປົກກະຕິ, Ansible ໃຫ້ການຍົກລະດັບສິດທິພິເສດໃນໂຮດຫ່າງໄກສອກຫຼີກໂດຍໃຊ້ຕົວເລືອກ - ຜົນໄດ້ຮັບ ເພື່ອໄດ້ຮັບສິດທິພິເສດຮາກແລະ -k ເພື່ອກະຕຸ້ນລະຫັດລັບ.

ຍົກຕົວຢ່າງ, ເພື່ອ ດຳ ເນີນ ຄຳ ສັ່ງ Ansible adhoc 'netstat -pnltu' ດ້ວຍຕົວເລືອກທີ່ມີສິດທິພິເສດ - -become ແລະຕົວເລືອກ -K ເພື່ອກະຕຸ້ນໃຫ້ລະຫັດລັບຂອງຜູ້ໃຊ້ຮາກ ດຳ ເນີນການ ຄຳ ສັ່ງ .

$ ansible webservers -m shell -a 'netstat -pnltu' --become -K

ເພື່ອກາຍເປັນຜູ້ໃຊ້ອື່ນນອກ ເໜືອ ຈາກຮາກ, ໃຫ້ໃຊ້ຄຸນລັກສະນະ --become-user .

ຍົກຕົວຢ່າງການ ດຳ ເນີນການ 'df -h' ໃນຖານະເປັນຜູ້ໃຊ້ tecmint ໃນບັນດາເຈົ້າພາບທີ່ຢູ່ຫ່າງໄກສອກຫຼີກແລະກະຕຸ້ນການແລ່ນລະຫັດຜ່ານ:

$ ansible all -m shell -a 'df -Th' --become-user tecmint -K

ຂໍ້ເທັດຈິງ ໝາຍ ເຖິງຂໍ້ມູນລະອຽດກ່ຽວກັບລະບົບ. ນີ້ປະກອບມີຂໍ້ມູນກ່ຽວກັບທີ່ຢູ່ IP, ສະຖາປັດຕະຍະ ກຳ ຂອງລະບົບ, ໜ່ວຍ ຄວາມ ຈຳ ແລະ CPU ເພື່ອກ່າວເຖິງສອງສາມຢ່າງ.

ເພື່ອດຶງເອົາຂໍ້ມູນກ່ຽວກັບເຈົ້າພາບຫ່າງໄກສອກຫຼີກ, ດໍາເນີນການຄໍາສັ່ງ:

$ ansible all -m setup 

Ansible ໃຊ້ ສຳ ເນົາໂມດູນເພື່ອຄັດລອກໄຟລ໌ທີ່ມີຄວາມປອດໄພຈາກການຄວບຄຸມ Ansible ກັບຫລາຍໆໂຮດຫ່າງໄກສອກຫຼີກ.

ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງການປະຕິບັດການ ສຳ ເນົາ:

# ansible webservers -m copy -a "src=/var/log/secure dest=/tmp/"

ຄຳ ສັ່ງ ສຳ ເນົາເອກະສານ/var/log/ປອດໄພຢູ່ໃນ Ansode Control node ໃຫ້ກັບໂຮດຫ່າງໄກສອກຫຼີກໃນກຸ່ມ webservers ໃນ/ປາຍທາງ tmp.

ທ່ານສາມາດໃຊ້ໂມດູນແຟ້ມເອກະສານເພື່ອປ່ຽນສິດອະນຸຍາດແລະຄວາມເປັນເຈົ້າຂອງໄຟລ໌.

# ansible webservers -m file -a "dest=/tmp/secure mode=600"

ນອກຈາກນັ້ນ, ທ່ານສາມາດເພີ່ມການໂຕ້ຖຽງກັບເຈົ້າຂອງແລະກຸ່ມດັ່ງທີ່ສະແດງ:

# ansible webservers -m file -a "dest=/tmp/secure mode=600 owner=tecmint group=tecmint"

ທ່ານຍັງສາມາດສ້າງໄດເລກະທໍລີ, ໃນລັກສະນະຄ້າຍຄືກັບ mkdir -p ດັ່ງທີ່ສະແດງ.

$ ansible webservers -m file -a "dest=/path/to/directory mode=755 owner=tecmint group=tecmint state=directory"

ຍົກຕົວຢ່າງ,

$ ansible webservers -m file -a "dest=/home/tecmint/data mode=755 owner=tecmint group=tecmint state=directory"

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