ວິທີການສ້າງເຄື່ອງຫຼີ້ນແລະປື້ມຫຼີ້ນທີ່ສາມາດຕອບໄດ້ - ສ່ວນທີ 5
ໃນພາກທີ 5 ຂອງຊຸດ Ansible ນີ້, ພວກເຮົາຈະອະທິບາຍວິທີການສ້າງ Anss Plays ແລະ Playbook ໂດຍໃຊ້ໂມດູນ Ansible.
ເຮືອທີ່ມີ ຄຳ ຕອບພ້ອມດ້ວຍສະຄິບແບບ ລຳ ເຊທີ່ເອີ້ນວ່າໂມດູນທີ່ຖືກ ນຳ ໃຊ້ໃນປື້ມຫຼີ້ນ ສຳ ລັບການປະຕິບັດວຽກງານພິເສດກ່ຽວກັບຂໍ້ຫ່າງໄກ.
ໂມດູນແມ່ນມີປະໂຫຍດ ສຳ ລັບວຽກງານອັດຕະໂນມັດເຊັ່ນການຈັດການແພັກເກັດ, ການຈັດເກັບເອກະສານແລະການຄັດລອກແຟ້ມເອກະສານເພື່ອກ່າວເຖິງສອງສາມຢ່າງ. ພວກເຂົາເຈົ້າອະນຸຍາດໃຫ້ທ່ານສາມາດ tweaks ໃນເອກະສານການຕັ້ງຄ່າແລະຈັດການອຸປະກອນຕ່າງໆເຊັ່ນ: routers, switch, load balancers, firewalls ແລະເຈົ້າຂອງອຸປະກອນອື່ນໆ.
ຈຸດປະສົງຂອງ subtopic ນີ້ແມ່ນເພື່ອໃຫ້ທ່ານເບິ່ງພາບລວມຂອງວຽກງານຕ່າງໆທີ່ສາມາດເຮັດໄດ້ໂດຍໂມດູນ Ansible:
ການຄຸ້ມຄອງການຫຸ້ມຫໍ່ໃນ Linux
ການຄຸ້ມຄອງແພັກເກັດແມ່ນ ໜຶ່ງ ໃນ ໜ້າ ວຽກທີ່ ຈຳ ເປັນແລະເລື້ອຍໆທີ່ປະຕິບັດໂດຍຜູ້ບໍລິຫານລະບົບ. ເຮືອທີ່ຕອບໄດ້ພ້ອມດ້ວຍໂມດູນທີ່ຊ່ວຍໃຫ້ທ່ານປະຕິບັດວຽກງານການຈັດການຊຸດທັງໃນລະບົບ RedHat ແລະ Debian.
ພວກເຂົາຂ້ອນຂ້າງງ່າຍທີ່ຈະຄາດເດົາ. ມີໂມດູນທີ່ ເໝາະ ສົມ ສຳ ລັບການຈັດການແພັກເກັດ APT ສຳ ລັບ Debian based, ໂມດູນ yum ເກົ່າ ສຳ ລັບການຈັດການຊຸດ YUM ແລະໂມດູນ dnf ທີ່ກ່ຽວຂ້ອງກັບການແຈກຈ່າຍ RHEL ທີ່ ໃໝ່ ກວ່າ.
ຂ້າງລຸ່ມນີ້ແມ່ນບາງຕົວຢ່າງຂອງວິທີທີ່ໂມດູນສາມາດຖືກ ນຳ ໃຊ້ໃນປື້ມຫຼີ້ນ:
--- - name: install Apache webserver hosts: webservers tasks: - name: install httpd dnf: name: httpd State: latest
--- - name: install Apache webserver hosts: databases tasks: - name: install Apache webserver apt: name: apache2 State: latest
ໂມດູນການບໍລິການ
ໂມດູນການໃຫ້ບໍລິການຊ່ວຍໃຫ້ຜູ້ເບິ່ງແຍງລະບົບເລີ່ມຕົ້ນ, ຢຸດ, ປັບປຸງ, ຍົກລະດັບແລະໂຫຼດບໍລິການໃນລະບົບ.
--- - name: Start service httpd, if not started service: name: httpd state: started
--- - name: Stop service httpd service: name: httpd state: stopped
--- - name: Restart network service for interface eth0 service: name: network state: restarted args: enp2s0
ໂມດູນ ສຳ ເນົາ
ດັ່ງທີ່ຊື່ແນະ ນຳ, ສຳ ເນົາເອກະສານ ສຳ ເນົາແບບໂມດູນຈາກສະຖານທີ່ ໜຶ່ງ ໃນເຄື່ອງຫ່າງໄກສອກຫຼີກໄປຫາສະຖານທີ່ອື່ນໃນເຄື່ອງດຽວກັນ.
--- - name: Copy file with owner and permissions copy: src: /etc/files/tecmint.conf dest: /srv/tecmint.conf owner: tecmint group: tecmint mode: '0644'
ປື້ມບັນທຶກ ສຳ ເນົາເອກະສານ config tecmint.conf ຈາກ/etc/files/directory ຫາ/srv/directory ໃນຖານະຜູ້ໃຊ້ tecmint ມີສິດ 0644.
ການອະນຸຍາດຍັງສາມາດເປັນຕົວແທນໂດຍໃຊ້ຕົວແທນສັນຍາລັກດັ່ງທີ່ສະແດງຢູ່ໃນເສັ້ນສຸດທ້າຍ.
--- - name: Copy file with owner and permissions copy: src: /etc/files/tecmint.conf dest: /srv/tecmint.conf owner: tecmint group: tecmint mode: u=rw, g=r, o=r
ການອະນຸຍາດໃນຕົວຢ່າງທີ່ຜ່ານມາສາມາດເປັນຕົວແທນດັ່ງທີ່ສະແດງຢູ່ໃນເສັ້ນສຸດທ້າຍ, ຜູ້ໃຊ້ໄດ້ຖືກມອບ ໝາຍ ສິດອະນຸຍາດໃຫ້ອ່ານແລະຂຽນ, ກຸ່ມໄດ້ຖືກມອບ ໝາຍ ສິດອະນຸຍາດໃຫ້ຂຽນ, ແລະສ່ວນທີ່ເຫຼືອຂອງໂລກແມ່ນຖືກມອບ ໝາຍ ໃຫ້ອະນຸຍາດໃຫ້ອ່ານ.
ໂມດູນແຟ້ມເອກະສານ
ໂມດູນເອກະສານຖືກ ນຳ ໃຊ້ເພື່ອ ດຳ ເນີນການປະຕິບັດງານຂອງເອກະສານຫຼາຍຢ່າງລວມທັງການສ້າງແຟ້ມເອກະສານ & ໄດເລກະທໍລີ, ການມອບ ໝາຍ ການອະນຸຍາດເອກະສານແລະການຕັ້ງຄ່າ symlinks.
--- - name: Change file ownership, group, and permissions file: path: /etc/tecmint.conf owner: tecmint group: tecmint mode: '0644'
ການຫຼີ້ນຂ້າງເທິງນີ້ສ້າງແຟ້ມເອກະສານທີ່ເອີ້ນວ່າ tecmint.conf ໃນ/etc ການຕັ້ງຄ່າໄດເລກະທໍລີອະນຸຍາດເຖິງ 0644.
--- - name: Remove file (delete file) file: path: /etc/tecmint.conf state: absent
ສິ່ງນີ້ເອົາຫຼືລຶບ tecmint.conf.
--- - name: create a directory if it doesn’t exist file: path: /etc/mydirectory State: directory mode: '0777'
ນີ້ຈະສ້າງໄດເລກະທໍລີໃນອະນຸຍາດການຕັ້ງຄ່າໄດເລກະທໍລີ/etc ຕໍ່ 0777.
--- - name: Recursively deleting a directory file: path: /etc/tecmint.conf state: absent
ການຫຼີ້ນຂ້າງເທິງລຶບບັນດາທິດທາງ.
ໂມດູນ Lineinfile
ໂມດູນ lineinfile ແມ່ນມີປະໂຫຍດເມື່ອທ່ານຕ້ອງການປ່ຽນເສັ້ນດຽວໃນເອກະສານ. ມັນສາມາດທົດແທນສາຍທີ່ມີຢູ່ແລ້ວ.
--- - name: Ensure SELinux is set to enforcing mode lineinfile: path: /etc/selinux/config regexp: '^SELINUX=' line: SELINUX=disabled
ການຫຼີ້ນຂ້າງເທິງ ກຳ ນົດຄ່າ SELINUX ໃຫ້ກັບຄົນພິການ.
SELINUX=disabled
--- - name: Add a line to a file if the file does not exist, without passing regexp lineinfile: path: /etc/hosts line: 10.200.50.51 linux-console.net create: yes
ນີ້ເພີ່ມການເຂົ້າ 10.200.50.51 linux-console.net ໃສ່ແຟ້ມ/etc/hosts.
ໂມດູນຮວບຮວມ
ໂມດູນການຮວບຮວມແມ່ນໃຊ້ ສຳ ລັບການສ້າງເອກະສານເກັບມ້ຽນຂອງແຟ້ມເອກະສານດຽວຫລືຫຼາຍເອກະສານ. ມັນຄາດວ່າແຫຼ່ງຂໍ້ມູນທີ່ບີບອັດມີຢູ່ໃນສະຖານທີ່ເປົ້າ ໝາຍ. ຫຼັງຈາກເກັບຂໍ້ມູນແລ້ວ, ເອກະສານແຫຼ່ງຂໍ້ມູນສາມາດຖືກລຶບຫຼືລຶບອອກຫຼັງຈາກນັ້ນໂດຍໃຊ້ ຄຳ ສັ່ງ remove = True
.
- name: Compress directory /path/to/tecmint_dir/ into /path/to/tecmint.tgz archive: path: /path/to/tecmint_dir dest: /path/to/tecmint.tgz This compresses the /path/to/tecmint_dir directory to /path/to/tecmint.tgz
- name: Compress regular file /path/to/tecmint into /path/to/foo.gz and remove it archive: path: /path/to/tecmint dest: /path/to/tecmint.tgz remove: yes
ໃນການຫຼີ້ນຂ້າງເທິງ, ເອກະສານແຫຼ່ງ/ເສັ້ນທາງ/ຫາ/tecmint ຖືກລຶບຖິ້ມຫຼັງຈາກການຮວບຮວມ ສຳ ເລັດ.
- name: Create a bz2 archive of /path/to/tecmint archive: path: /path/to/tecmint format: bz2
ນີ້ສ້າງໄຟລ໌ທີ່ຖືກບີບອັດໃນຮູບແບບ bz2 ຈາກໄຟລ໌/path/to/tecmint.
ໂມດູນ Git
ໂມດູນຄຸ້ມຄອງການກວດສອບ git ຂອງຫໍສະ ໝຸດ ຊອບແວ.
- git: repo: 'https://foosball.example.org/path/to/repo.git' dest: /srv/checkout version: release-0.22
ໂມດູນ ຄຳ ສັ່ງ
ໜຶ່ງ ໃນໂມດູນທີ່ຖືກ ນຳ ໃຊ້ຫຼາຍທີ່ສຸດ, ໂມດູນ ຄຳ ສັ່ງເອົາຊື່ ຄຳ ສັ່ງແລະຕໍ່ມາກໍ່ມີລາຍຊື່ການໂຕ້ຖຽງ. ຄຳ ສັ່ງແມ່ນຜ່ານແບບດຽວກັນກັບທີ່ທ່ານພິມໃນ shell Linux.
- name: Executing a command using the command module command: cat helloworld.txt
--- - name: Check the remote host uptime hosts: servers tasks: - name: Execute the Uptime command over Command module register: uptimeoutput command: "uptime" - debug: var: uptimeoutput.stdout_lines
ໂມດູນຄໍາສັ່ງດຶງເອົາເວລາຂອງເຄື່ອງແມ່ຂ່າຍຫ່າງໄກສອກຫຼີກ.
ຕົວແປເພື່ອດຶງເອົາຜົນຂອງການເຮັດວຽກ ຄຳ ສັ່ງ
ໂດຍປົກກະຕິແລ້ວ, ປື້ມຫຼີ້ນຫຼີ້ນ Ansible ຖືກໃຊ້ເພື່ອຈັດຕັ້ງປະຕິບັດວຽກຕ່າງໆໃນບັນດາເຈົ້າພາບທີ່ຖືກຈັດການໂດຍບໍ່ຕ້ອງສະແດງຜົນໄດ້ຮັບໃນສາຍ ຄຳ ສັ່ງ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ມີບາງກໍລະນີທີ່ທ່ານອາດຈະຖືກຮຽກຮ້ອງໃຫ້ເກັບ ກຳ ຜົນໄດ້ຮັບຫຼືຜົນໄດ້ຮັບ. ໃນສ່ວນນີ້, ພວກເຮົາຍ່າງທ່ານຜ່ານວິທີທີ່ທ່ານສາມາດຈັບເອົາຜົນຜະລິດຂອງປື້ມຫຼີ້ນໃນຕົວແປແລະຕໍ່ມາຈະສະແດງມັນ.
ການລົງທະບຽນທີ່ຕອບຮັບໄດ້ຖືກໃຊ້ ສຳ ລັບເກັບ ກຳ ຜົນງານຂອງ ໜ້າ ວຽກແລະບັນທຶກມັນໄວ້. ຕົວປ່ຽນແປງດັ່ງກ່າວຈະມີ ໜ້າ ທີ່ຂອງ ໜ້າ ວຽກ.
ຍົກຕົວຢ່າງ, ໃຫ້ພວກເຮົາສົມມຸດວ່າທ່ານຕ້ອງການກວດສອບການໃຊ້ disk ຂອງ nodes ທີ່ຖືກຈັດການຢູ່ໃນໄດເລກະທໍລີຮາກທີ່ກ່ຽວຂ້ອງໂດຍໃຊ້ ຄຳ ສັ່ງ df -Th/
. ທ່ານຈະໃຊ້ໂມດູນ ‘ຄຳ ສັ່ງ’
ເພື່ອ ກຳ ນົດ ຄຳ ສັ່ງແລະ ‘ລົງທະບຽນ’
ເພື່ອບັນທຶກຜົນຜະລິດ std ໃນຕົວແປ.
ເພື່ອສະແດງ ຄຳ ສັ່ງ, ທ່ານຈະ ນຳ ໃຊ້ໂມດູນ
--- - hosts: all become: yes tasks: - name: Execute /boot usage on Hosts command: 'df -Th /' register: df - debug: var=df.stdout
ດຽວນີ້, ເປີດ ນຳ ໃຊ້ປື້ມຫຼິ້ນ. ໃນກໍລະນີນີ້, ພວກເຮົາໄດ້ຕັ້ງຊື່ເຄື່ອງຫຼີ້ນຫຼີ້ນຂອງພວກເຮົາ check_disk_space.yml.
# ansible-playbook check_disk_space.yml
ດັ່ງທີ່ທ່ານໄດ້ເຫັນແລ້ວ, ຜົນຜະລິດກໍ່ລ້ວນແຕ່ເຮັດໃຫ້ມັນຍາກທີ່ຈະຕິດຕາມ.
ເພື່ອຈັດວາງຜົນຜະລິດແລະເຮັດໃຫ້ງ່າຍຕໍ່ການອ່ານ, ແທນທີ່ຄ່າ stdout return ກັບ stdout_lines.
--- - hosts: all become: yes tasks: - name: Execute /boot usage on Hosts command: 'df -Th /' register: df - debug: var=df.stdout_lines
ໃຊ້ເງື່ອນໄຂໃນການຄວບຄຸມການຫຼີ້ນການປະຕິບັດ
ຄືກັນກັບພາສາການຂຽນໂປແກຼມ, ຄຳ ຖະແຫຼງທີ່ມີເງື່ອນໄຂແມ່ນຖືກ ນຳ ໃຊ້ເມື່ອມີຫລາຍກວ່າຜົນໄດ້ຮັບທີ່ເປັນໄປໄດ້. ລອງເບິ່ງບາງ ຄຳ ທີ່ໃຊ້ໃນສະພາບການທີ່ໃຊ້ກັນທົ່ວໄປໃນປື້ມຫຼີ້ນຫຼີ້ນ Ansible.
ບາງຄັ້ງ, ທ່ານອາດຈະຕ້ອງການປະຕິບັດວຽກງານກ່ຽວກັບຂໍ້ສະເພາະແລະບໍ່ແມ່ນຄົນອື່ນ. ຄຳ ສັ່ງທີ່ມີເງື່ອນໄຂໃນເວລາທີ່ ແມ່ນຂ້ອນຂ້າງງ່າຍທີ່ຈະ ນຳ ໃຊ້ແລະຈັດຕັ້ງປະຕິບັດໃນປື້ມຫຼີ້ນ. ເມື່ອໃຊ້ລະຫັດ ເມື່ອ
ປະໂຫຍກພຽງແຕ່ປະກາດສະພາບທີ່ຢູ່ຕິດກັບຂໍ້ທີ່ສະແດງໄວ້:
when: condition
ເມື່ອສະພາບການພໍໃຈ, ຫຼັງຈາກນັ້ນ, ວຽກງານດັ່ງກ່າວຈະຖືກປະຕິບັດໃນລະບົບຫ່າງໄກສອກຫຼີກ.
ໃຫ້ກວດເບິ່ງຕົວຢ່າງບາງຢ່າງ:
--- - hosts: all tasks: - name: Install Nginx on Debian apt: name=nginx state=present when: ansible_os_family == “Debian”
ການຫຼີ້ນຂ້າງເທິງຕິດຕັ້ງ Nginx webserver ໃນບັນດາເຈົ້າພາບທີ່ແລ່ນຄອບຄົວ Debian ຂອງການລົບກວນ.
ທ່ານຍັງສາມາດໃຊ້ຕົວປະຕິບັດງານ OR
ແລະ AND
ພ້ອມກັບ ຄຳ ຖະແຫຼງການທີ່ມີເງື່ອນໄຂ.
--- - hosts: all tasks: - name: Install Nginx on Debian apt: name=nginx state=present when: ansible_os_family == “Debian” and ansible_distribution_version == “18.04”
ເມື່ອ ນຳ ໃຊ້ລະບົບປະຕິບັດການ AND
, ທັງສອງ ຄຳ ຖະແຫຼງຕ້ອງມີຄວາມເພິ່ງພໍໃຈ ສຳ ລັບວຽກງານທີ່ຕ້ອງປະຕິບັດ.
ເຄື່ອງຫຼີ້ນຂ້າງເທິງຕິດຕັ້ງ Nginx ໃສ່ Nodes ທີ່ໃຊ້ OS ຂອງ Debian ຄອບຄົວເຊິ່ງເປັນລຸ້ນ 18.04. ແນ່ນອນ, ມັນຈະເປັນ Ubuntu 18.04.
ດ້ວຍຜູ້ປະຕິບັດງານ OR
, ໜ້າ ວຽກຈະຖືກປະຕິບັດຖ້າຫາກວ່າມີເງື່ອນໄຂໃດ ໜຶ່ງ ທີ່ປະຕິບັດໄດ້.
--- - hosts: all tasks: - name: Install Nginx on Debian apt: name=nginx state=present when: ansible_os_family == “Debian” or Ansible_os_family == “SUSE”
ເຄື່ອງຫຼີ້ນຂ້າງເທິງຕິດຕັ້ງ Nginx webservers ໃນທັງ Debian ຫຼືຄອບຄົວ SuSE ຂອງ OS ຫຼືທັງສອງຂອງມັນ.
ໝາຍ ເຫດ: ຕ້ອງຮັບປະກັນໃຫ້ໃຊ້ເຄື່ອງ ໝາຍ ສະ ເໝີ ພາບເທົ່າກັນ ==
ໃນເວລາທົດສອບສະພາບ.
ເງື່ອນໄຂໃນວົງ
ສະພາບການຍັງສາມາດຖືກ ນຳ ໃຊ້ໃນວົງຈອນ. ເວົ້າຕົວຢ່າງເຊັ່ນທ່ານມີບັນຊີລາຍຊື່ຂອງຫຼາຍໆຊຸດທີ່ຕ້ອງການຕິດຕັ້ງຢູ່ໃນໄລຍະໄກ.
ໃນປື້ມຫຼີ້ນຂ້າງລຸ່ມນີ້, ພວກເຮົາມີອາເລທີ່ເອີ້ນວ່າແພັກທີ່ມີບັນຊີລາຍຊື່ຂອງແພັກເກດທີ່ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງ. ບັນດາວຽກງານເຫຼົ່ານີ້ຈະໄດ້ປະຕິບັດວຽກງານ ໜຶ່ງ ຫຼັງຈາກນັ້ນຖ້າມີປະໂຫຍກທີ່ ກຳ ນົດໃຫ້ຖືກຕ້ອງ.
--- - name: Install Software packages hosts: all vars: packages: • name: nginx required: True • name: mysql required: True • name: apache required: False tasks: • name: Install “{{ item.name }}”on Debian apt: name: “{{ item.name }}” state: present When: item.required == True loop: “{{ packages }}”
ຕັ້ງຄ່າຈັດການຜິດພາດ
ບາງຄັ້ງ, ວຽກງານລົ້ມເຫຼວໃນເວລາທີ່ແລ່ນປື້ມຫຼິ້ນ. ສົມມຸດວ່າທ່ານ ກຳ ລັງເຮັດວຽກ 5 ຢູ່ໃນ 3 ເຊີບເວີດັ່ງທີ່ສະແດງຢູ່ໃນປື້ມຫຼີ້ນຂ້າງລຸ່ມ. ຖ້າມີຂໍ້ຜິດພາດເກີດຂື້ນໃນ ໜ້າ ວຽກທີ 3 (ເລີ່ມ MySQL) ໃນ server 2, Ansible ຈະຢຸດການປະຕິບັດວຽກທີ່ຍັງເຫຼືອຢູ່ເຊີຟເວີ 2 ແລະພະຍາຍາມເຮັດ ສຳ ເລັດວຽກທີ່ຍັງເຫຼືອໃນສ່ວນທີ່ເຫຼືອຂອງເຊີເວີ.
--- - name: Install Software packages hosts: server1, server2, server3 tasks: - name: Install dependencies << some code >> - name: Install MySQL database << some code >> - name: Start MySQL << some code >> - name: Install Nginx << some code >> - name: Start Nginx << some code >>
ຖ້າທ່ານຕ້ອງການຄວາມສອດຄ່ອງໃນການປະຕິບັດງານຂອງປື້ມຫຼີ້ນ, ຍົກຕົວຢ່າງ, ຢຸດການປະຕິບັດຂອງປື້ມຫຼີ້ນ, ຖ້າ ໜຶ່ງ ຂອງເຄື່ອງແມ່ຂ່າຍລົ້ມເຫລວ, ຄວນເພີ່ມທາງເລືອກ.
--- - name: Install Software packages hosts: server1, server2, server3 any_errors_fatal: true tasks:
ວິທີນີ້, ຖ້າວຽກ ໜຶ່ງ ລົ້ມເຫລວໃນເຄື່ອງແມ່ຂ່າຍດຽວ, Ansible ຈະຢຸດການປະຕິບັດງານຂອງປື້ມຫຼີ້ນທັງ ໝົດ ໃນທຸກເຊີຟເວີແລະອອກ.
ຖ້າທ່ານຢາກໃຫ້ເຄື່ອງຫຼີ້ນຫຼີ້ນບໍ່ສົນໃຈຂໍ້ຜິດພາດຕ່າງໆແລະ ດຳ ເນີນການປະຕິບັດວຽກທີ່ຍັງເຫຼືອຢູ່, ຫຼັງຈາກນັ້ນໃຫ້ໃຊ້ແບບບໍ່ສົນໃຈ: ທາງເລືອກທີ່ແທ້ຈິງ.
--- - name: Install Software packages hosts: server1, server2, server3 tasks: - name: Install dependencies << some code >> ignore_errors: True
ສ້າງ Playbook ເພື່ອ ກຳ ຫນົດລະບົບຕ່າງໆໃຫ້ເປັນສະເພາະ
ໃນພາກນີ້, ພວກເຮົາເບິ່ງທາງເລືອກເພີ່ມເຕີມບາງຢ່າງທີ່ມີຢູ່ໃນເວລາທີ່ແລ່ນປື້ມຫຼີ້ນ.
ເລີ່ມຕົ້ນດ້ວຍຕົວເລືອກການກວດສອບຫລືຕົວເລືອກການແລ່ນແຫ້ງ. ຕົວເລືອກແບບການແລ່ນແບບແຫ້ງແລ້ງຫຼືແບບເຊັກແມ່ນໃຊ້ໃນເວລາທີ່ແລ່ນປື້ມຫຼີ້ນເພື່ອກວດເບິ່ງວ່າມີຂໍ້ຜິດພາດໃດໆທີ່ຈະພົບແລະຖ້າມີການປ່ຽນແປງໃດໆທີ່ຈະເຮັດໃນບັນດາເຈົ້າຂອງທີ່ຖືກຈັດການ. ມັນ, ຢ່າງໃດກໍ່ຕາມ, ມັນບໍ່ໄດ້ເຮັດການປ່ຽນແປງໃດໆຕໍ່ກັບໄລຍະໄກ.
ຍົກຕົວຢ່າງ, ເພື່ອເຮັດໃຫ້ປື້ມຫຼີ້ນຫຼີ້ນແຫ້ງທີ່ເອີ້ນວ່າ httpd.yml
ທີ່ຕິດຕັ້ງແລະເລີ່ມຕົ້ນການເຮັດວຽກຂອງ Apache webserver:
# ansible-playbook httpd.yml --check
ທາງເລືອກອື່ນທີ່ພວກເຮົາຕ້ອງການເບິ່ງແມ່ນຕົວເລືອກ --start-at-task
. ສິ່ງນີ້ຖືກ ນຳ ໃຊ້ໃນເວລາທີ່ ກຳ ນົດຊື່ວຽກທີ່ປື້ມຫຼິ້ນຄວນເລີ່ມຕົ້ນຫຼືເລີ່ມຕົ້ນ.
ໃຫ້ຍົກຕົວຢ່າງ: ປື້ມຫຼິ້ນຂ້າງລຸ່ມນີ້ສະແດງອອກເຖິງ 2 ໜ້າ ວຽກ: ການຫຼີ້ນ ທຳ ອິດຕິດຕັ້ງເຄື່ອງແມ່ຂ່າຍເວັບ Apache ແລະຄັ້ງທີສອງຕິດຕັ້ງ htop ປະໂຫຍດ.
--- - name: Install httpd hosts: all tasks: yum: name: httpd state: Installed - name: Install htop yum: name: htop state: started
ຖ້າທ່ານຕ້ອງການຂ້າມການຕິດຕັ້ງ Apache webserver ແລະແທນທີ່ຈະຕິດຕັ້ງ htop utility run:
# ansible-playbook playbook.yml --start-at-task “Install htop”
ສຸດທ້າຍ, ທ່ານສາມາດແທັກ ໜ້າ ວຽກຫຼືບົດລະຄອນຂອງທ່ານໂດຍການເພີ່ມຕົວເລືອກ tags ໃສ່ປື້ມຫຼີ້ນຂອງທ່ານຕາມທີ່ສະແດງ. ສິ່ງນີ້ມາພ້ອມໃນເວລາທີ່ທ່ານມີປື້ມຫຼິ້ນໃຫຍ່ແລະທ່ານຕ້ອງການທີ່ຈະ ດຳ ເນີນວຽກງານສະເພາະຈາກປື້ມຫລິ້ນທັງ ໝົດ.
--- - name: Install httpd tags: Install and start hosts: all tasks: yum: name: httpd state: Installed tags: Install • service: name: httpd state: started
# ansible-playbook playbook.yml -tags "Install"
ໃນການລົບແທັກຕ່າງໆໃຫ້ໃຊ້ຕົວເລືອກ --skip-tags
ຕາມທີ່ສະແດງ.
# ansible-playbook playbook.yml --skip-tags "Install"
ໃນຫົວຂໍ້ນີ້, ພວກເຮົາໄດ້ ນຳ ທ່ານຜ່ານບັນດາໂມດູນທີ່ໃຊ້ກັນທົ່ວໄປໃນ Ansible, ວິທີການເອົາ stdout ຈາກການປະຕິບັດປື້ມຫລິ້ນ ສຳ ລັບການວິເຄາະ, ການ ນຳ ໃຊ້ເງື່ອນໄຂໃນ playbook ແລະວິທີການຈັດການຂໍ້ຜິດພາດທີ່ອາດຈະເກີດຂື້ນໃນເວລາເຮັດວຽກຕ່າງໆ. ສຸດທ້າຍ, ພວກເຮົາໄດ້ຈົດບັນທຶກການຕັ້ງຄ່າຂອງປື້ມຫຼິ້ນແລະວິທີທີ່ທ່ານສາມາດໃຊ້ຕົວເລືອກເພີ່ມເຕີມເພື່ອຕັດສິນໃຈວ່າຈະເຮັດວຽກໃດຖ້າທ່ານບໍ່ມີຈຸດປະສົງທີ່ຈະ ດຳ ເນີນການຫຼີ້ນຫຼີ້ນທັງ ໝົດ.