自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Ansible自動(dòng)化系統(tǒng)管理員的五個(gè)日常任務(wù)

運(yùn)維 系統(tǒng)運(yùn)維 自動(dòng)化
Ansible 是一個(gè)工具,它可以幫助你更輕松、更快速地完成日常任務(wù),這樣你就可以更有效地利用時(shí)間,比如學(xué)習(xí)重要的新技術(shù)。對(duì)于系統(tǒng)管理員來(lái)說(shuō),它是一個(gè)很好的工具,因?yàn)樗梢詭椭銓?shí)現(xiàn)標(biāo)準(zhǔn)化,并在日?;顒?dòng)中進(jìn)行協(xié)作。

[[390802]]

通過(guò)使用 Ansible 自動(dòng)執(zhí)行可重復(fù)的日常任務(wù),提高工作效率并避免錯(cuò)誤。

如果你討厭執(zhí)行重復(fù)性的任務(wù),那么我有一個(gè)提議給你,去學(xué)習(xí) Ansible!

Ansible 是一個(gè)工具,它可以幫助你更輕松、更快速地完成日常任務(wù),這樣你就可以更有效地利用時(shí)間,比如學(xué)習(xí)重要的新技術(shù)。對(duì)于系統(tǒng)管理員來(lái)說(shuō),它是一個(gè)很好的工具,因?yàn)樗梢詭椭銓?shí)現(xiàn)標(biāo)準(zhǔn)化,并在日?;顒?dòng)中進(jìn)行協(xié)作,包括:

  1. 安裝、配置和調(diào)配服務(wù)器和應(yīng)用程序;
  2. 定期更新和升級(jí)系統(tǒng);
  3. 監(jiān)測(cè)、減輕和排除問(wèn)題。

通常,許多這些基本的日常任務(wù)都需要手動(dòng)步驟,而根據(jù)個(gè)人的技能的不同,可能會(huì)造成不一致并導(dǎo)致配置發(fā)生漂移。這在小規(guī)模的實(shí)施中可能是可以接受的,因?yàn)槟愎芾硪慌_(tái)服務(wù)器,并且知道自己在做什么。但當(dāng)你管理數(shù)百或數(shù)千臺(tái)服務(wù)器時(shí)會(huì)發(fā)生什么?

如果不小心,這些手動(dòng)的、可重復(fù)的任務(wù)可能會(huì)因?yàn)槿藶榈腻e(cuò)誤而造成延誤和問(wèn)題,而這些錯(cuò)誤可能會(huì)影響你及你的組織的聲譽(yù)。

這就是自動(dòng)化的價(jià)值所在。而 Ansible 是自動(dòng)化這些可重復(fù)的日常任務(wù)的完美工具。

自動(dòng)化的一些原因是:

  1. 你想要一個(gè)一致和穩(wěn)定的環(huán)境。
  2. 你想要促進(jìn)標(biāo)準(zhǔn)化。
  3. 你希望減少停機(jī)時(shí)間,減少嚴(yán)重事故案例,以便可以享受生活。
  4. 你想喝杯啤酒,而不是排除故障問(wèn)題!

本文提供了一些系統(tǒng)管理員可以使用 Ansible 自動(dòng)化的日常任務(wù)的例子。我把本文中的劇本和角色放到了 GitHub 上的 系統(tǒng)管理員任務(wù)倉(cāng)庫(kù) 中,以方便你使用它們。

這些劇本的結(jié)構(gòu)是這樣的(我的注釋前面有 ==>)。

  1. [root@homebase 6_sysadmin_tasks]# tree -L 2
  2. .
  3. ├── ansible.cfg ==> 負(fù)責(zé)控制 Ansible 行為的配置文件
  4. ├── ansible.log
  5. ├── inventory
  6. ├── group_vars
  7. ├── hosts ==> 包含我的目標(biāo)服務(wù)器列表的清單文件
  8. └── host_vars
  9. ├── LICENSE
  10. ├── playbooks ==> 包含我們將在本文中使用的劇本的目錄
  11. ├── c_logs.yml
  12. ├── c_stats.yml
  13. ├── c_uptime.yml
  14. ├── inventory
  15. ├── r_cron.yml
  16. ├── r_install.yml
  17. └── r_script.yml
  18. ├── README.md
  19. ├── roles ==> 包含我們將在本文中使用的角色的目錄
  20. ├── check_logs
  21. ├── check_stats
  22. ├── check_uptime
  23. ├── install_cron
  24. ├── install_tool
  25. └── run_scr
  26. └── templates ==> 包含 jinja 模板的目錄
  27. ├── cron_output.txt.j2
  28. ├── sar.txt.j2
  29. └── scr_output.txt.j2

清單類似這樣的:

  1. [root@homebase 6_sysadmin_tasks]# cat inventory/hosts
  2. [rhel8]
  3. master ansible_ssh_host=192.168.1.12
  4. workernode1 ansible_ssh_host=192.168.1.15
  5.  
  6. [rhel8:vars]
  7. ansible_user=ansible ==> 請(qǐng)用你的 ansible 用戶名更新它

這里有五個(gè)你可以用 Ansible 自動(dòng)完成的日常系統(tǒng)管理任務(wù)。

1、檢查服務(wù)器的正常運(yùn)行時(shí)間

你需要確保你的服務(wù)器一直處于正常運(yùn)行狀態(tài)。機(jī)構(gòu)會(huì)擁有企業(yè)監(jiān)控工具來(lái)監(jiān)控服務(wù)器和應(yīng)用程序的正常運(yùn)行時(shí)間,但自動(dòng)監(jiān)控工具時(shí)常會(huì)出現(xiàn)故障,你需要登錄進(jìn)去驗(yàn)證一臺(tái)服務(wù)器的狀態(tài)。手動(dòng)驗(yàn)證每臺(tái)服務(wù)器的正常運(yùn)行時(shí)間需要花費(fèi)大量的時(shí)間。你的服務(wù)器越多,你需要花費(fèi)的時(shí)間就越長(zhǎng)。但如果有了自動(dòng)化,這種驗(yàn)證可以在幾分鐘內(nèi)完成。

使用 check_uptime 角色和 c_uptime.yml 劇本:

  1. [root@homebase 6_sysadmin_tasks]# ansible-playbook -i inventory/hosts playbooks/c_uptime.yml -k
  2. SSH password:
  3. PLAY [Check Uptime for Servers] ****************************************************************************************************************************************
  4. TASK [check_uptime : Capture timestamp] *************************************************************************************************
  5. .
  6. 截?cái)?..
  7. .
  8. PLAY RECAP *************************************************************************************************************************************************************
  9. master : ok=6 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  10. workernode1 : ok=6 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  11. [root@homebase 6_sysadmin_tasks]#

劇本的輸出是這樣的:

  1. [root@homebase 6_sysadmin_tasks]# cat /var/tmp/uptime-master-20210221004417.txt
  2. -----------------------------------------------------
  3. Uptime for master
  4. -----------------------------------------------------
  5. 00:44:17 up 44 min, 2 users, load average: 0.01, 0.09, 0.09
  6. -----------------------------------------------------
  7. [root@homebase 6_sysadmin_tasks]# cat /var/tmp/uptime-workernode1-20210221184525.txt
  8. -----------------------------------------------------
  9. Uptime for workernode1
  10. -----------------------------------------------------
  11. 18:45:26 up 44 min, 2 users, load average: 0.01, 0.01, 0.00
  12. -----------------------------------------------------

使用 Ansible,你可以用較少的努力以人類可讀的格式獲得多個(gè)服務(wù)器的狀態(tài),Jinja 模板 允許你根據(jù)自己的需要調(diào)整輸出。通過(guò)更多的自動(dòng)化,你可以按計(jì)劃運(yùn)行,并通過(guò)電子郵件發(fā)送輸出,以達(dá)到報(bào)告的目的。

2、配置額外的 cron 作業(yè)

你需要根據(jù)基礎(chǔ)設(shè)施和應(yīng)用需求定期更新服務(wù)器的計(jì)劃作業(yè)。這似乎是一項(xiàng)微不足道的工作,但必須正確且持續(xù)地完成。想象一下,如果你對(duì)數(shù)百臺(tái)生產(chǎn)服務(wù)器進(jìn)行手動(dòng)操作,這需要花費(fèi)多少時(shí)間。如果做錯(cuò)了,就會(huì)影響生產(chǎn)應(yīng)用程序,如果計(jì)劃的作業(yè)重疊,就會(huì)導(dǎo)致應(yīng)用程序停機(jī)或影響服務(wù)器性能。

使用 install_cron 角色和 r_cron.yml 劇本:

  1. [root@homebase 6_sysadmin_tasks]# ansible-playbook -i inventory/hosts playbooks/r_cron.yml -k
  2. SSH password:
  3. PLAY [Install additional cron jobs for root] ***************************************************************************************************************************
  4. .
  5. 截?cái)?..
  6. .
  7. PLAY RECAP *************************************************************************************************************************************************************
  8. master : ok=10 changed=7 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  9. workernode1 : ok=10 changed=7 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

驗(yàn)證劇本的結(jié)果:

  1. [root@homebase 6_sysadmin_tasks]# ansible -i inventory/hosts all -m shell -a "crontab -l" -k
  2. SSH password:
  3. master | CHANGED | rc=0 >>
  4. 1 2 3 4 5 /usr/bin/ls /tmp
  5. #Ansible: Iotop Monitoring
  6. 0 5,2 * * * /usr/sbin/iotop -b -n 1 >> /var/tmp/iotop.log 2>> /var/tmp/iotop.err
  7. workernode1 | CHANGED | rc=0 >>
  8. 1 2 3 4 5 /usr/bin/ls /tmp
  9. #Ansible: Iotop Monitoring
  10. 0 5,2 * * * /usr/sbin/iotop -b -n 1 >> /var/tmp/iotop.log 2>> /var/tmp/iotop.err

使用 Ansible,你可以以快速和一致的方式更新所有服務(wù)器上的 crontab 條目。你還可以使用一個(gè)簡(jiǎn)單的點(diǎn)對(duì)點(diǎn) Ansible 命令來(lái)報(bào)告更新后的 crontab 的狀態(tài),以驗(yàn)證最近應(yīng)用的變化。

3、收集服務(wù)器統(tǒng)計(jì)和 sars

在常規(guī)的故障排除過(guò)程中,為了診斷服務(wù)器性能或應(yīng)用程序問(wèn)題,你需要收集系統(tǒng)活動(dòng)報(bào)告system activity reports(sars)和服務(wù)器統(tǒng)計(jì)。在大多數(shù)情況下,服務(wù)器日志包含非常重要的信息,開(kāi)發(fā)人員或運(yùn)維團(tuán)隊(duì)需要這些信息來(lái)幫助解決影響整個(gè)環(huán)境的具體問(wèn)題。

安全團(tuán)隊(duì)在進(jìn)行調(diào)查時(shí)非常特別,大多數(shù)時(shí)候,他們希望查看多個(gè)服務(wù)器的日志。你需要找到一種簡(jiǎn)單的方法來(lái)收集這些文檔。如果你能把收集任務(wù)委托給他們就更好了。

通過(guò) check_stats 角色和 c_stats.yml 劇本來(lái)完成這個(gè)任務(wù):

  1. $ ansible-playbook -i inventory/hosts playbooks/c_stats.yml
  2.  
  3. PLAY [Check Stats/sar for Servers] ***********************************************************************************************************************************
  4.  
  5. TASK [check_stats : Get current date time] ***************************************************************************************************************************
  6. changed: [master]
  7. changed: [workernode1]
  8. .
  9. 截?cái)?..
  10. .
  11. PLAY RECAP ***********************************************************************************************************************************************************
  12. master : ok=5 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  13. workernode1 : ok=5 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

輸出看起來(lái)像這樣:

  1. $ cat /tmp/sar-workernode1-20210221214056.txt
  2. -----------------------------------------------------
  3. sar output for workernode1
  4. -----------------------------------------------------
  5. Linux 4.18.0-193.el8.x86_64 (node1) 21/02/21 _x86_64_ (2 CPU)
  6. 21:39:30 LINUX RESTART (2 CPU)
  7. -----------------------------------------------------

4、收集服務(wù)器日志

除了收集服務(wù)器統(tǒng)計(jì)和 sars 信息,你還需要不時(shí)地收集日志,尤其是當(dāng)你需要幫助調(diào)查問(wèn)題時(shí)。

通過(guò) check_logs 角色和 r_cron.yml 劇本來(lái)實(shí)現(xiàn):

  1. $ ansible-playbook -i inventory/hosts playbooks/c_logs.yml -k
  2. SSH password:
  3.  
  4. PLAY [Check Logs for Servers] ****************************************************************************************************************************************
  5. .
  6. 截?cái)?..
  7. .
  8. TASK [check_logs : Capture Timestamp] ********************************************************************************************************************************
  9. changed: [master]
  10. changed: [workernode1]
  11. PLAY RECAP ***********************************************************************************************************************************************************
  12. master : ok=6 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  13. workernode1 : ok=6 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

為了確認(rèn)輸出,打開(kāi)轉(zhuǎn)儲(chǔ)位置生成的文件。日志應(yīng)該是這樣的:

  1. $ cat /tmp/logs-workernode1-20210221214758.txt | more
  2. -----------------------------------------------------
  3. Logs gathered: /var/log/messages for workernode1
  4. -----------------------------------------------------
  5.  
  6. Feb 21 18:00:27 node1 kernel: Command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-4.18.0-193.el8.x86_64 root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel
  7. -swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet
  8. Feb 21 18:00:27 node1 kernel: Disabled fast string operations
  9. Feb 21 18:00:27 node1 kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
  10. Feb 21 18:00:27 node1 kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
  11. Feb 21 18:00:27 node1 kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
  12. Feb 21 18:00:27 node1 kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
  13. Feb 21 18:00:27 node1 kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format.

5、安裝或刪除軟件包和軟件

你需要能夠持續(xù)快速地在系統(tǒng)上安裝和更新軟件和軟件包??s短安裝或更新軟件包和軟件所需的時(shí)間,可以避免服務(wù)器和應(yīng)用程序不必要的停機(jī)時(shí)間。

通過(guò) install_tool 角色和 r_install.yml 劇本來(lái)實(shí)現(xiàn)這一點(diǎn):

  1. $ ansible-playbook -i inventory/hosts playbooks/r_install.yml -k
  2. SSH password:
  3. PLAY [Install additional tools/packages] ***********************************************************************************
  4.  
  5. TASK [install_tool : Install specified tools in the role vars] *************************************************************
  6. ok: [master] => (item=iotop)
  7. ok: [workernode1] => (item=iotop)
  8. ok: [workernode1] => (item=traceroute)
  9. ok: [master] => (item=traceroute)
  10.  
  11. PLAY RECAP *****************************************************************************************************************
  12. master : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  13. workernode1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

這個(gè)例子安裝了在 vars 文件中定義的兩個(gè)特定包和版本。使用 Ansible 自動(dòng)化,你可以比手動(dòng)安裝更快地安裝多個(gè)軟件包或軟件。你也可以使用 vars 文件來(lái)定義你要安裝的軟件包的版本。

  1. $ cat roles/install_tool/vars/main.yml
  2. ---
  3. # vars file for install_tool
  4. ins_action: absent
  5. package_list:
  6.   - iotop-0.6-16.el8.noarch
  7.   - traceroute

擁抱自動(dòng)化

要成為一名有效率的系統(tǒng)管理員,你需要接受自動(dòng)化來(lái)鼓勵(lì)團(tuán)隊(duì)內(nèi)部的標(biāo)準(zhǔn)化和協(xié)作。Ansible 使你能夠在更少的時(shí)間內(nèi)做更多的事情,這樣你就可以將時(shí)間花在更令人興奮的項(xiàng)目上,而不是做重復(fù)的任務(wù),如管理你的事件和問(wèn)題管理流程。

有了更多的空閑時(shí)間,你可以學(xué)習(xí)更多的知識(shí),讓自己可以迎接下一個(gè)職業(yè)機(jī)會(huì)的到來(lái)。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2010-10-21 16:18:18

2022-11-28 10:12:57

系統(tǒng)systemd

2022-07-11 10:08:19

系統(tǒng)管理任務(wù)自動(dòng)化

2015-07-06 09:16:51

2014-02-11 09:53:11

2013-03-30 21:59:13

系統(tǒng)管理員必備工具iftop

2018-10-10 10:37:03

2020-07-10 07:54:42

系統(tǒng)管理員技能

2018-03-22 11:23:09

2018-08-01 08:12:34

Linux管理員網(wǎng)絡(luò)管理

2010-04-12 09:33:58

系統(tǒng)管理員

2018-08-15 14:00:18

LinuxBash系統(tǒng)管理員

2013-06-26 09:29:30

系統(tǒng)管理員

2013-09-29 09:50:21

系統(tǒng)管理員Ubuntu JujuJuju

2022-02-05 08:27:51

系統(tǒng)管理員系統(tǒng)運(yùn)維

2024-08-14 14:42:00

2018-02-10 18:35:09

LinuxAnsible系統(tǒng)管理

2010-08-10 09:13:52

Unix系統(tǒng)管理員Ubuntu

2010-05-06 18:07:33

Unix命令

2010-08-11 17:11:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)