设为首页 收藏本站
查看: 1562|回复: 1

[经验分享] 运维工具SaltStack之一安装部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-10 15:08:21 | 显示全部楼层 |阅读模式
一、概述
salt是一个异构平台基础设置管理工具,使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System。

二、基本原理
采用C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信。minion上线后先与master端联系,把自己的pub key发过去,接受该minion-key后,也就是master与minion已经互信master可以发送任何指令让minion执行了。同时SaltStack也支持SSH的方式无需安装Agent,通过SSH实现管理。   
实现步骤:
1.Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc
2.salt命令,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jodid,根据jobid获取命令执行结果。
3.master接收到命令后,将要执行的命令发送给客户端minion。
4.minion从消息总线上接收到要处理的命令,交给minion._handle_aes处理
5.minion._handle_aes发起一个本地线程调用cmdmod执行ls命令。线程执行完ls后,调用minion._return_pub方法,将执行结果通过消息总线返回给master
6.master接收到客户端返回的结果,调用master._handle_aes方法,将结果写的文件中
7.salt.client.LocalClient.cmd_cli通过轮询获取Job执行结果,将结果输出到终端。

参考链接:
官方站点:http://www.saltstack.com/
官方文档:http://docs.saltstack.com/
中文站点:http://www.saltstack.cn/
中文手册:http://docs.saltstack.cn/

三、安装部署
环境准备:
操作系统:centos 7.2
配置EPEL源:# rpm -Uvh http://mirrors.zju.edu.cn/epel/7 ... ease-7-9.noarch.rpm
Master端:192.168.2.5
Minion端:192.168.2.71
        Master端安装# yum install salt-master -y
Minion端安装# yum install salt-minion -y
注:安装完之后,Master配置文件在/etc/salt/master,minion配置文件在/etc/salt/minion,默认初始安装配置文件都是被注释,可自定义。
SaltStack常用的目录结构:
/var/cache/salt/master/minions/  #存放minions的缓存数据
/srv/salt             #存放salt的sls文件,默认没有,需新建
/srv/pillar            #存放pillar配置文件,默认没有,需新建
/etc/salt             #存放salt的自身配置文件
/var/log/salt           #存放salt的日志目录

四、配置Minion端与Master通信,并简单测试。
1.打开Master端的自动签发证书,默认是关闭的,如果不打开minion启动时会报如下错误:
1
2
3
3月 08 14:47:46 node02 salt-minion[2736]: [WARNING ] ** Restarting minion **
3月 08 14:54:56 node02 salt-minion[2736]: [ERROR   ] Attempt to authenticate with the salt master failed
3月 08 14:59:07 node02 salt-minion[2736]: [ERROR   ] The Salt Master has cached the public key for thi...cate




修改Master端配置文件如下:/etc/salt/master
修改:#auto_accept: False
为:auto_accept: True
# systemctl restart salt-master.service  #重启Master端
2.修改Minion端配置文件如下:/etc/salt/minion
修改:#master: salt
master: 192.168.2.5  #指向主Master端
修改:#id: salt
id: minion01  #本端Minion id号
# systemctl restart salt-minion.service  #重启Minion端

这时Master查看salt-key,minion01客户端自动添加到签发列表中
1
2
3
[iyunv@node03 ~]# salt-key     #查看所有端key
Accepted Keys:
minion01




注:salt-key常用命令
-a          #添加指定id
        -A          #添加全部   
        -R          #拒绝全部
        -d          #删除指定id
        -D          #删除全部

    测试:
1
2
3
    [iyunv@node03 ~]# salt 'minion01' cmd.run 'uname -r'  #命令含义已经用法后续介绍
minion01:
    3.10.0-327.el7.x86_64




###################Master端和Minion端常用配置参数说明#####################
Master端常用的配置参数说明:
interface:指定bind的地址,默认为0.0.0.0
publish_port:指定发布端口,默认为4505
ret_port:指定结果返回端口,与minion配置文件中的master_port对应,默认为4506
uesr:指定master进程的运行用户,如果调整,则需要调整部分目录的权限,默认权限为root
timeout:指定timeout时间,如果minion规模庞大或络状况不好,建议增该值,默认5s
keep_jobs:默认情况下,minion会执行结果会返回master,master会缓存到本地的cachedir目录,该参数指定缓存多长时间,以供查看之前的执行结果,会占用磁盘空间,默认为24h
job_cache:master是否缓存执行结构,如果规模庞大(超过5000台),建议使用其他方式来存储jobs,关闭本选项,默认为True
file_recv:是否允许minion传送文件到master上,默认是Flase
file_roots:指定file server目录,默认为:
file_roots:   
    base:   
        - /srv/salt
pillar_roots:指定pillar目录,默认为:
pillar_roots:     
    base:     
        - /srv/pillar
log_level:执行日志级别,支持的日志级别由'garbage', 'trace', 'debug', info', 'warning', 'error', ‘critical ’ ,默认为’warning’

Minion端常用的配置参数说明:
master:指定master主机,默认为salt
mastar_port:指定认证和执行结果发送到master的哪个端口,与master配置文件中的ret_port对应,默认为4506
id:指定minion的标识,Salt内部使用id作为标识,唯一标识符,默认为主机名
user:指定运行minion的用户,由于安装包,启动服务等操作需要特殊用户,推荐使用root,默认为root
cache_jobs:minion是否缓存执行结果,默认为False
backuo_mode:在文件操作(file.managed或file.recurse)时,如果文件发送更改,指定备份目录,当前有效的值为minion,备份在cachedir/file_backups目录下,以原始文件名称加时间戳来命名,默认为Disabled
providers:指定模块对应的providers,如果RHRL系列中,pkg对应的providers是yumpkg5
renderer:指定配置管理系统中的渲染器,默认值为:yaml_jinja
file_client:指定file client默认去哪里(remotr或local)寻找文件,默认值为remote
loglevel:指定日志级别,默认为warnning
tcp_keepalive:minion是否与master保持keepalive检查,zeromq3一下版本存在keepalive bug,会导致某些情况下链接异常后minion无法重连master,建议有条件的话吧zeromq3以上版本,默认为True



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-350625-1-1.html 上篇帖子: salt_zabbix接口规范文档 下篇帖子: 运维工具SaltStack之一安装部署
累计签到:20 天
连续签到:1 天
发表于 2017-3-17 19:23:17 | 显示全部楼层
感谢分享~~正想学学salt

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表