自动化运维
自动化运维工具 需求:成百上千台机器,批量地执行某些命令、批量地升级某个服务。 Shell、expect脚本就可以实现自动化,但是需要我们自己手动编写脚本,效率低下、学习和维护成本很高。 主流自动化运维工具:Puppet、Saltstack、Ansible等。 Puppet 关于Puppet的介绍文章: https://blog.51cto.com/ixdba/1149055 Puppet是开源的基于Ruby的系统配置管理工具,基于C/S的部署架构。是一个为实现数据中心自动化管理而设计的配置管理软件,它使用跨平台语言规范,管理配置文件、用户、软件包、系统服务等。客户端默认每隔半小时会和服务器通信一次,确认是否有更新。当然也可以配置主动触发来强制客户端更新。这样就把日常的系统管理任务代码化了,代码化的好处是可以分享,保存,避免重复劳动,也可以快速恢复以及快速的大规模部署服务器。 Saltstack Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具。C/S架构,由Master和Minion构成,通过ZeroMQ进行通信。Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口;salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接