龙空技术网

自动化运维之saltstack入坑指南

波波说运维 945

前言:

现在看官们对“centos7saltstack”可能比较讲究,咱们都想要知道一些“centos7saltstack”的相关内容。那么小编在网上搜集了一些有关“centos7saltstack””的相关资讯,希望看官们能喜欢,我们快快来了解一下吧!

概述

Ansible、SaltStack、Puppet都是目前比较受用户欢迎的自动化化运维工具,其中Ansible和SaltStack使用python编写,具有良好的可移植性。Puppet的使用脚本语法复杂,且可移植性比较差,目前的使用者慢慢变少。

salt灵活性强大,可以进行大规模部署,也能进行小规模的系统部署。salt的设计架构适用于任意数量的服务器,从少量本地网络系统到跨越数个数据中心,拓扑架构都是c/s模型,配置简单。

不管是几台、几百台、几千台服务器,都可以使用salt在一个中心节点上进行管控,灵活定位任意服务器子集来运行命令。 

官网:

一、什么是saltstack

The backbone of Salt is the remote execution engine, which creates a high-speed, secure and bi-directional communication net for groups of systems. On top of this communication system, Salt provides an extremely fast, flexible, and easy-to-use configuration management system called Salt States.

saltstack是基于Python开发的C/S架构的一款批量管理工具,底层采用动态的连接总线(ZeroMQ消息队列pub/sub方式通信),使用ssl证书签发的方式进行认证管理,使其可以用于编配, 远程执行, 配置管理等等。

部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。号称世界上最快的消息队列ZeroMQ使得saltstack非常快速的管理大量服务器,采用RSA Key方式确认身份,传输采用AES加密,安全性也非常有保障。

二、SaltStack功能

远程执行:就是在管理节点上实现在上百台、上千台机器上同时执行一个命令。

配置管理:也可以称之为状态管理,你可以描述一个状态。例如,某台机器要安装Nginx软件包、Nginx必须是启动的状态、Nginx有一个配置文件(内容和某个地方的一样)。你用一种描述语法描述出来后交给SaltStack,SaltStack就可以帮你实现,而不用你手动进行Nginx软件包的安装、配置文件的修改、启动等。

云管理:SaltStack有一个组件叫作salt-cloud,它可以帮你自动化的进行云主机的创建和管理,支持很多公有云或私有云,例如AWS、阿里云、HP云、OpenStack、CloudStack等。

事件驱动:事件驱动基础设施是SaltStack最强大也是最神秘的功能,前面的远程执行和配置管理是最基础的的,事件驱动是指SaltStack在日常运行中可以产生和捕捉事件,并根据捕捉到的事件触发对应的操作。

三、saltstack vs ansible

Ansible和SaltStack都是的目前最流行的自动化运维工具,能满足企业IT系统的自动化运维管理。这两个工具都是用python开发的,可以部署到不同的系统环境中和具有良好的二次开发特性。在执行的命令的时候,Ansible和SaltStack都支持Ad-hoc操作模式,也可以支持将命令写入yaml格式文件中再批量执行。在处理返回结果方面,Ansible和SaltStack的返回结果格式都是JSON格式,比较易懂和方便解析。

两者区别如下:

四、SaltStack的四种运行方式

Local:在本地运行或者说单台使用SaltStack

Minion/Master: 传统的客户端/服务器端(C/S)架构

Syndic: 使用代理实现架构扩展,用于管理更多的节点

Salt SSH: 无须安装客户端,直接通过SSH通信

五、服务架构

saltstack是基于C/S服务模式,在该架构中,服务器端Master,客户端Minion。在saltstack架构中,不仅有传统的C/S服务模式,而且有消息队列中的发布与订阅(pub/sub)服务模式。目前一般用其C/S架构做批量管理。

minion与master通信模式如下图:

在master和minion端都是以守护进程的模式运行。SaltStack master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof 查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。整个通信过程可以用debug查看(salt-master –l debug)。

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

标签: #centos7saltstack