说实在的,要是时光倒流到三年前,我肯定抱着服务器哭爹喊娘喊救命。那时候我在一家刚破B轮的电商公司当“服务器老妈子”——哦不对,正经叫运维工程师,管着后台二十多台云服务器。
每到大促前半个月?我基本是睡在公司行军床+抱着键盘当枕头的状态:服务器扩容一台台搭环境(PHP、Nginx、MySQL、Redis、还有他们开发搞的一堆插件,一个漏装就得挠头拍大腿重来);监控告警规则挨个敲命令敲到手抖腱鞘炎;日常巡检CPU内存磁盘,二十台下来眼睛都快成二维码扫不过来了;最崩溃的是双十一当天!凌晨1点某个偏远小服务器的防火墙规则被新来的测试手滑删了,我连滚带爬从行军床弹起来,挨个登机器排查加规则,忙完一看购物车都清空了80%心仪的鞋!
后来公司HR找我谈话,不是涨薪哦,是问我要不要转去客服部“锻炼心态缓解压力”——开玩笑!我堂堂运维界的“救火英雄(哦不对救火狗熊)”,怎么能丢这个脸!咬咬牙痛定思痛,开始死磕服务器自动化运维配置,死磕了三个月?不对,半个月就入门上手出效果了!双十一彻底告别行军床,抱着猫窝在沙发上刷剧嗑瓜子,告警全靠机器人自己处理,扩容缩容一键搞定,老板都给我递烟拍肩膀说“明年给你配个漂亮的实习生打下手”(虽然最后实习生是男的还只会玩王者,但还是爽到飞起)!
很多刚入门的小白或者和我以前一样只会敲命令堆技术的老运维,一听到服务器自动化运维配置就头大:“啊!会不会要学很多编程语言?会不会要搭很多复杂的架构?会不会比以前手动改规则还累?”
过来人拍胸脯告诉你:NO NO NO!真的没那么难!咱把服务器自动化运维配置比作一个“全能保姆团”就懂了:
你看!有了这个全能保姆团,咱是不是就从“老妈子救火狗熊”变成了“甩手掌柜技术总监预备役”?土味正能量必须加一句:服务器自动化运维配置搞起来,升职加薪抱猫抱狗抱小孩(抱实习生也勉强可以)不是梦!
光说不练假把式!今天我就给大家演示一下入门级的服务器自动化运维配置——用Ansible给三台测试服务器统一装个Nginx,就这么简单!保证你看完就能上手!
大管家不能随便飘对吧?得找一台你最常用的、配置不用太高的服务器当“主控机”,其他的测试服务器当“被控机”。假设我主控机的IP是192.168.1.100,三台被控机的IP分别是192.168.1.101、192.168.1.102、192.168.1.103。
先在主控机上安装Ansible:我用的是CentOS系统,敲以下命令就行:
```bash sudo yum install epel-release -y sudo yum install ansible -y ```要是用Ubuntu系统?敲这个:
```bash sudo apt update sudo apt install ansible -y ```安装完之后,咱们检查一下大管家有没有睡醒:
```bash ansible --version ```要是能看到版本号,比如ansible 2.9.27之类的,就说明大管家已经就位了!土味正能量又来:大管家一醒,手动操作停一停!
大管家不知道要管谁对吧?咱们得给它列个清单。清单的默认位置是/etc/ansible/hosts,咱们用vim编辑器打开它:
```bash sudo vim /etc/ansible/hosts ```在文件的最后面加这么几行:
```ini [test_servers] 192.168.1.101 192.168.1.102 192.168.1.103 ```
[test_servers]是咱们给这三台被控机起的组名,以后大管家喊这个组名就能同时管三台机器啦!加完之后按ESC键,输入:wq保存退出!
大管家要是进不了被控机的门,列多少清单都没用对吧?咱们得给主控机配个“万能钥匙”(也就是SSH免密登录)。先在主控机上生成一对钥匙:
```bash ssh-keygen -t rsa ```然后一路按回车键就行,不用设置密码!生成完之后,把公钥(也就是万能钥匙的“锁头配套件”)发到三台被控机上:
```bash ssh-copy-id root@192.168.1.101 ssh-copy-id root@192.168.1.102 ssh-copy-id root@192.168.1.103 ```这里会让你输入三台被控机的root密码,输入完之后,大管家就能自由进出啦!咱们可以测试一下:
```bash ansible test_servers -m ping ```要是三台机器都返回pong,就说明认亲成功!土味正能量三连发:万能钥匙配一配,免密登录爽歪歪!
认亲成功了,清单也列了,咱们得给大管家派活了!今天的活就是给三台被控机统一装个Nginx。咱们在主控机的/root目录下创建一个工作任务书,比如叫install_nginx.yml:
```bash sudo vim /root/install_nginx.yml ```然后把以下内容复制进去:
```yaml - name: 给三台测试服务器统一装Nginx hosts: test_servers become: yes 意思是用root权限执行任务 tasks: - name: 更新yum源(CentOS系统) yum: name: epel-release state: latest - name: 安装Nginx yum: name: nginx state: latest - name: 启动Nginx service: name: nginx state: started enabled: yes 意思是开机自启 ```要是用Ubuntu系统?把里面的yum改成apt就行!加完之后按ESC键,输入:wq保存退出!
现在咱们可以让大管家干活啦!敲以下命令:
```bash ansible-playbook /root/install_nginx.yml ```然后你就看着屏幕上的花花绿绿的输出就行,要是最后显示所有任务都是changed或者ok,就说明任务完成了!咱们可以在浏览器里输入三台被控机的IP地址,要是能看到Nginx的欢迎页面,就说明入门级的服务器自动化运维配置成功啦!
很多人觉得服务器自动化运维配置是大厂才用的东西,小公司小团队根本不需要——过来人告诉你这完全是错误的!小公司小团队人手少任务重,更需要服务器自动化运维配置来提高效率!
我当时死磕服务器自动化运维配置的时候,也走了很多弯路:一会儿贪多学Ansible又学SaltStack又学Puppet,一会儿又想直接搭K8s结果搞了三天三夜都没搭起来——后来才明白,适合自己的才是最好的!入门先学Ansible+Prometheus+Grafana就行,服务器多了再慢慢上Docker+K8s!
土味正能量终极版:服务器自动化运维配置搞起来,生活事业双丰收!不要再当老妈子救火狗熊,要当甩手掌柜技术总监!
好了,今天的分享就到这里啦!要是大家有什么关于服务器自动化运维配置的问题,欢迎在评论区留言哦!我会一一回复的!爱你们呦!(手动比心)
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图