运维老鸟才知道:三个 Ansible 脚本玩转千台服务器

运维
今天,我就分享三个 Ansible 脚本,让你轻松驾驭千台服务器,不再被半夜的电话支配!

凌晨三点的紧急电话——运维的噩梦

如果你是运维老鸟,想必经历过这样的场景:

凌晨三点,电话狂震,惊醒的你看着屏幕上熟悉的报警信息——线上某个核心业务服务器异常!

你迷迷糊糊地爬起来,远程登录服务器,开始排查问题。服务崩溃、CPU飙高、磁盘占满……各种可能性在脑中快速闪过。但更糟糕的是,这次故障波及的不止一台服务器,而是整个集群的上千台机器!

怎么办?这就是Ansible登场的时刻!

运维的终极目标,不是“救火”,而是“让故障消失于无形”。

今天,我就分享 3 个 Ansible 脚本,让你轻松驾驭千台服务器,不再被半夜的电话支配!

10秒内检查千台服务器的关键状态

遇到故障时,第一步就是快速找到问题所在。如果有成百上千台服务器,逐台排查根本不现实。这时,用一个简单的playbook剧本,就能在10秒内一次性获取所有服务器的资源状态。比如CPU使用率、内存占用、磁盘空间等关键指标,方便又高效。你可以根据自己的需求设置相应的指标。

- name:快速检查服务器状态
hosts:all
gather_facts:no
tasks:
    -name:获取CPU、内存、磁盘使用情况
      shell:|
        echo "CPU: $(top -bn1 | grep 'Cpu' | awk '{print $2"%"}')"
        echo "MEM: $(free -m | awk '/Mem/ {print $3"MB/"$2"MB"}')"
        echo "DISK: $(df -h / | awk 'NR==2 {print $5}')"
      register:server_status

    -name:输出所有服务器状态
      debug:
        msg: "{{ inventory_hostname }} -> {{ server_status.stdout_lines }}"

执行下面的命令执行剧本的任务:

ansible-playbook check_status.yml

可以通过添加-i,如果不指定默认是读取/etc/ansible/hosts这个清单。

执行完上述命令后,会输出如下结果:

这个脚本能 一秒内连接所有服务器并执行检查,然后把结果直接输出,帮助你快速锁定问题服务器!

30秒内批量修复服务器故障

面对多台服务器同时出现服务故障,传统的逐一处理方式耗时费力。但有了Ansible,只需简单几步,就能高效完成批量重启,轻松解决运维难题。

- name:批量重启Nginx
hosts:all
tasks:
    -name:重新启动Nginx
      service:
        name:nginx
        state: restarted

编写好剧本后,通过下面的命令执行重启任务。

ansible-playbook restart_nginx.yml -i inventory

不管你有10台还是1000台服务器,一条命令全部搞定,再也不用逐台SSH登录,省时省力!

彻底杜绝半夜故障——自动化巡检与修复

不想被半夜报警声吵醒?自动化巡检与修复是不二之选!设置定时任务,每小时巡检,问题即刻修复。轻松实现,使用Ansible脚本!

- name:自动巡检并修复
hosts:all
tasks:
    -name:检查Nginx是否存活
      shell:systemctlis-activenginx
      register:nginx_status
      ignore_errors:yes

    -name:自动重启Nginx(如果检测到异常)
      service:
        name:nginx
        state:restarted
      when:nginx_status.stdout!= "active"

然后,配合crontab定时任务,让它每小时自动执行:

echo "0 * * * * ansible-playbook auto_fix.yml -i inventory" >> /etc/crontab

小结

传统SSH逐台手动管理服务器的方式早已outdated,现代运维早已拥抱Ansible等自动化工具。顶尖运维高手都在用Ansible玩转千台服务器,让运维工作更高效、更精准。真正的运维高手,靠的不是加班和熬夜,而是强大的工具和自动化能力!让Ansible成为你的“运维外挂”

责任编辑:赵宁宁 来源: 攻城狮成长日记
相关推荐

2018-12-06 09:07:59

Ansible服务器运维

2017-12-06 09:17:50

运维服务器自动化

2013-11-24 17:27:25

Facebook运维Facebook运维

2019-10-22 09:35:46

服务器微博宕机

2020-02-19 11:07:40

运维架构技术

2016-06-20 15:36:01

OpenManage大

2022-12-29 13:32:24

2016-03-30 11:53:51

Cobbler运维运维自动化

2016-07-12 10:40:35

服务器

2015-10-19 13:39:31

技术周刊

2015-10-16 06:49:03

Google集群编排数据管理

2010-09-10 18:31:42

搭建tftp服务器

2010-08-25 17:21:21

DHCP服务器

2019-09-27 08:44:46

Ansible运维DevOps

2009-09-16 11:44:26

IT运维

2016-08-16 15:21:19

服务器

2017-04-24 16:10:19

戴尔

2018-11-14 10:00:07

程序员开发技巧Git

2022-01-14 14:56:17

网络安全信息安全技术

2009-04-03 09:19:04

谷歌服务器数据中心
点赞
收藏

51CTO技术栈公众号