saltstack概述
<代码>在生产环境中,服务器往往不止一两台,一般都是成千上万台服务器。这对运维人员来说管理难度太大了,而saltstack是一个新的基础平台管理工具,可以支持管理上万台服务器规模,数秒钟即可完成数据传递,是现在用的比较多的自动化运维工具之一。 盐是一个基础平台管理工具.SaltStack采用C/S模式,服务器端就是盐的主人,客户端就是奴才,奴才与主之间通过ZeroMQ消息队列通信部分监听4505年和4506年端口,4505为大师和奴才认证通信端口,4506为大师用来发送命令或者接收奴才的命令执行返回信息。代码>
saltstack介绍
1,基于python语言开发的
2,轻量级管理工具,批量执行命令
3,常用模板
名称 含义 包裹 包,有增删更新 文件 用于管理文件,包括同步文件,设置文件权限和所属用户组,删除文件等操作 cmd 在宠物上执行命令或者脚本 使用 管理系统账户操作 服务 管理系统服务操作 cron 管理crontab任务4, saltstack数据系统
-
<李>
谷物(静态数据)
李> <李>支柱(动态数据)李>saltstack三大功能
-
<李>
远程执行
李> <李>配置管理
李> <李>云管理李>
saltstack工作原理
<代码> SaltStack客户端(宠物)在启动时,会自动生成一套密钥,包含私钥和公之钥。后将公钥发送给服务器端,服务器端验证并接受公钥,以此来建立可靠且加密的通信连接。同时通过消息队列ZeroMQ在客户端与服务端之间建立消息发布连接。代码>
-
<李>
奴才是SaltStack需要管理的客户端安装组件,会主动去连接主端,并从主端得到资源状态信息,同步资源管理信息。
李> <李>主作为控制中心运行在主机服务器上,负责盐命令运行和资源状态的管理,掌握上执行某条指令通过队列下发到各个奴才去执行,并返回结果。
李> <李> ZeroMQ是一款开源的消息队列软件,用于在奴才端与主端建立系统通信桥梁。李>saltstack优缺点
-
<李>优点李>
<代码>速度快,基于消息队列+线程,跑完多台设备,都是毫秒级别的;非常灵活,源码是python,方便理解和自定义模块(因为python相对于其他的perl、ruby等还是很好理解的) 命令简单,功能强大。代码>
-
<李>缺点李>
<代码>部署奴才端较为不便。代码>
Saltstack重要组件
-
<李>谷物李>
<代码>颗粒是在奴才(客户端)启动时收集到的一些信息,比如操作系统类型,网卡ip等静态信息。 谷物的信息并不是动态的,并不会时时变更,它只是在奴才启动时收集到的。代码>
-
<李> 李>支柱
<代码>支柱和谷物不一样,是在掌握上定义的,并且是针对奴才定义的一些信息。像一些比较重要的数据(密码)可以存在柱子里,还可以定义变量等。代码>
-
<李> 李>状态
<代码>状态是saltstack的最核心的功能,通过预先指定好的sls文件对被控主机进行管理(包括:包,网络配置,系统服务,系统用户等)代码>
Saltstack常用命令
-
<李>拷贝文件到客户端李>
<代码类=" language-bash ">盐的client2 cp.get_file盐:# apache。sls/tmp/cp.txt 代码>
-
<李>拷贝目录到客户端李>
<代码类=" language-bash ">盐的client2 cp.get_dir盐:#测试/tmp 代码>
-
<李>显示存活的客户端李>
<代码类=" language-bash ">抢购食盐manage.up 代码>
-
<李>命令下执行服务端的脚本李>
<代码类=" language-bash "> #编辑脚本 vim/电脑/盐/测试/shell.sh # !/bin/sh 回声“盐服务器运行shell脚本> #分别为三台机器添加epel源,本地有官方源 yum安装- y epel-release #安装epel源 #服务器安装 百胜是安装salt-master自动运维工具-saltstack安装使用(实例演示! ! !)