Ansible学习笔记1

公司的服务器越来越多,维护一些简单的事情都会变得很繁琐。用Shell脚本来管理少量服务器效率还行,服务器多了,Shell脚本无法实现高效率运维。这种情况下,我们需要引入自动化运维工具,对多台服务器实现高效运维。

配置服务器对所有的服务器进行管理。 趋势:自动化运维。

假设要去1000台服务器上做一个操作(如nginx服务器修改配置文件里的某一个参数),下面两种方法缺点明显:

1)按传统的方法,一台连着一台服务器的ssh上去手工操作;

2)写Shell脚本来做:

管理机器的平台不一致,脚本可能不具备通用性。(公司不是统一的centos7.6、ubuntu、windows等操作系统,管理起来就有问题。)

传密码麻烦。

效率低下,循环1000次也需要一个一个地完成,如果用&符号放到后台执行,则会产生1000个进程。

如果工作中有几台服务器也可以来使用这个思想。

所谓的自动化运维,将日常IT运维中大量的重复性工作,小到简单的日常检查、配置变更和软件安装,大到整个变更流程的组织调度,由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现“零延时”的IT运维。

假如管理多台服务器,主要关注以下几个方面:

1)管理机与被管理机的连接(管理机如何将管理命令发送给被管理机。)

2)服务器的信息收集(当你要做的事情在不同的OS上有所不同,你需要收集信息,并将其区分开。)

3)服务器分组;

4)管理内容的主要分类:28000多个模块。

1)文件目录管理;

2)用户和组管理;

3)cron时间任务管理;

4)yum源配置与通过yum管理软件包;

5)服务管理;

6)远程执行脚本;

7)远程执行命令;

只要学习这么多,几乎都可以解决我们的日常的所有问题。

常见的开源自动化工具:

1)puppet(拓展)

基于ruby语言,成熟稳定。适用于大型架构,相对于ansible和saltstack会复杂些。

2)saltstack(拓展)

基于python语言,相对简单,大并发能力比ansible要好,需要维护被管理端的服务。如果服务断开,连接就会出问题。

速度快,效率高。zeromq协议 消息队列。管理机器多。

3)ansible

基于python语言。简单快捷,被管理端不需要启动服务。直接走ssh服务,需要验证所以机器多的话速度会比较慢。

搭建简单快捷、连接管理简单。市场占用率是最高的。

缺点:管理机器特别多,效率较低。

你可能感兴趣的:(Ansible,ansible,linux)