SaltStack是基于Python开发的一套C/S架构配置管理工具(功能不仅仅是配置管理,如使用salt-cloud配置AWS EC2实例),它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理。
号称世界上最快的消息队列ZeroMQ使得SaltStack能快速在成千上万台机器上进行各种操作,而且采用RSA Key方式确认身份,传输采用AES加密,这使得它的安全性得到了保障。
SaltStack经常被描述为Func加强版+Puppet精简版。
为什么选择SaltStack?目前市场上主流的开源自动化配置管理工具有puppet、chef、ansible、saltstack等等。到底选择那个比较好?可以从以下几方面考虑:
语言的选择(puppet/chef vs ansible/saltstack)Puppet、Chef基于Ruby开发,ansible、saltstack基于python开发的
运维开发语言热衷于python(后期可做二次开发),排除Puppet、Chef
速度的选择 (ansible vs saltstack)ansible基于ssh协议传输数据,SaltStack使用消息队列zeroMQ传输数据。从网上数据来看,SaltStack比ansible快大约40倍。
对比ansible,Saltstack缺点是需要安装客户端。为了速度建议选择SaltStack
SaltStack github地址:https://github.com/saltstack/salt
SaltStack官网文档地址:https://docs.saltstack.com
SaltStack架构在SaltsStack架构中服务端叫作Master,客户端叫作Minion,都是以守护进程的模式运行,一直监听配置文件中定义的ret_port(saltstack客户端与服务端通信的端口,负责接收客户端发送过来的结果,默认4506端口)和publish_port(saltstack的消息发布系统,默认4505端口)的端口。当Minion运行时会自动连接到配置文件中定义的Master地址ret_port端口进行连接认证。
Master:控制中心,salt命令运行和资源状态管理 Minion : 需要管理的客户端机器,会主动去连接Mater端,并从Master端得到资源状态 信息,同步资源管理信息 States:配置管理的指令集 Modules:在命令行中和配置文件中使用的指令模块,可以在命令行中运行 Grains:minion端的变量,静态的 Pillar:minion端的变量,动态的比较私密的变量,可以通过配置文件实现同步minions定义 highstate:为minion端下发永久添加状态,从sls配置文件读取.即同步状态配置 salt_schedule:会自动保持客户端配置 SaltStack安装配置默认以CentOS6为例,采用yum安装,还有其它安装方式,如pip、源码、salt-bootstrap
EPEL源配置 rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-6.noarch.rpm 安装、配置管理端(master) yum -y install salt-master service salt-master start注:需要iptables开启master端4505、4506端口
安装被管理端(minion) yum -y install salt-minion sed -i 's@#master:.*@master: master_ipaddress@' /etc/salt/minion #master_ipaddress为管理端IP echo 10.252.137.141 /etc/salt/minion_id #个人习惯使用IP,默认主机名 service salt-minion start Master与Minion认证

闽公网安备 35020602001684号