Salt介绍

Salt是一个基础平台管理工具

Salt是一个配置管理系统,能够维护预定义状态的远程节点

Salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据

Salt核心功能

使命令发送到远程系统是并行的而不是串行的

使用安全加密的协议

使用最小最快的网络载荷

提供简单的编程接口

Salt有点

Saltstack是用python语音编写 相当于设备是轻量级别的

Saltstack通讯采用ZEROMQ实现使得它很快速

Saltstack是开源的 通过python可以自己写模块

Salt端口说明

Salt-master启动时会启动两个端口

4505:为salt的消息发布专用端口

4506:为客户端与服务端通信的端口

由于SaltStack是一种基于C/S架构的服务模式,可以简单地理解为如果我们想使用SaltStack就需要在现有的环境下引入与维护一套C/S架构。在SaltStack架构中服务器端叫作Master,客户端叫作Minion,我们理解的传统C/S架构中,客户端发送请求给服务器端,服务器端接收到请求并且处理完成后再返回给户端。在SaltStack架构中不仅有传统的C/S架构服务模式,而且有消息队列中的发布与订阅(pub/sub)模式。这使得SaltStack应用场景更加丰富。目前在实际环境中一般使用SaltStack的C/S架构进行配置管理。

在Master和Minion端都是以守护进程的模式运行,一直监听配置文件里面定义的ret_port(接受

minion请求)和publish_port(发布消息)的端口。当Minion运行时会自动连接到配置文件里面定义的

Master地址ret_port端口进行连接认证。默认客户端请求id是socket.getfqdn()取到的值,也可以在

Minion启动之前修改Minion的id值。

 

参考的技术网站

http://docs.saltstack.cn/

http://www.saltstack.cn/

salt功能模块

  • 远程执行
  • 配置管理
  • 云管理

环境说明

角色        主机名             IP

salt-server   hzbj-salt-020         192.168.56.20

tomcat-A    hzbj-tomcat-021         192.168.56.21

tomcat-B    hzbj-tomcat-022         192.168.56.22

一 安装EPEL

由于目前RHEL官网yum源没有Saltstack的安装包,因此先安装EPEL作为部署Saltstack的默认源

[root@hzbj-salt- ~]# rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm

二 安装saltstack主服务器

[root@hzbj-salt- ~]# yum -y install salt-master
[root@hzbj-salt- ~]# chkconfig salt-master on
[root@hzbj-salt- ~]# service salt-master start

三 被控制端安装(minion端)

[root@hzbj-tomcat- ~]# yum -y install salt-minion
[root@hzbj-tomcat- ~]# chkconfig salt-minion on
[root@hzbj-tomcat- ~]# service salt-minion start

四 saltstack防火墙配置

如果服务器开启了防火墙 需要开启端口 在主控端添加TCP 4505 4506的规则,而在被控端无需配置防火墙,原理是

被控端直接与主控端的zeromq建立长链接,接收广播到的任务信息 并执行,具体操作是添加两条iptables规则

[root@hzbj-salt- ~]# iptables -I INPUT -m state --state new -m tcp --dport  -j ACCEPT
[root@hzbj-salt- ~]# iptables -I INPUT -m state --state new -m tcp --dport -j ACCEPT

五 saltstack配置及安装校验

Saltstack分两种角色,一种为master(主控端),另一种是minion(被控端),安装完毕后需要对两种

角色的配置文件进行修改,下面具体说明。

a) master主控制端配置

更新主控制端关键项配置:

[root@hzbj-salt- ~]# vim /etc/salt/master
#绑定Master通信IP
interface: 192.168.56.20
#自动认证 你也可以选择不用开启
auto_accept: True
#指定saltstack文件根目录位置
file_roots:
base:
- /srv/salt

b)重启saltstack 服务器

[root@hzbj-salt- ~]# service salt-master restart

c)minion被控端配置

#/etc/salt/minion
#指定master主机IP地址
master: 192.168.56.20
#修改被控端主句识别id,建议使用操作系统主机名来配置
id: hzbj-tomcat-
其它主机也是这样配置

d)重启minion端

service salt-minion restart

e)校验安装结果

通过test模块的ping方法,可以确认指定被控端设备与主控端是否建立信任关系及连通性是否正常,探测所有被控端采用‘*’来代替

[root@hzbj-salt- ~]# salt '*' test.ping
hzbj-tomcat-:
True
hzbj-tomcat-:
True

六 master和minion认证过程
(1)、minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private
key)和 minion.pub(public key),

然后将 minion.pub发送给master。
(2)、master在接收到minion的public key后,通过salt-key命令accept minion public
key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id

命名的 public
key,然后master就能对minion发送指令了。

七 Master与Minion的连接
(1)、SaltStack
master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信

的端口。如果使用lsof
查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。

提示  当/etc/salt/master没有配置auto_accept: True时,需要通过salt-key命令来进行证书认证操作,具体操心如下:

  • salt-key -L, 显示已经或未认证的被控端id,Accepted Keys为已经认证清单,Unaccepted Keys为未认证清单;
  • salt-key -D,删除所有认证主机ID证书
  • salt-key -d id,删除单个id证书
  • salt-key -A,接受所有id证书请求
  • salt-key -a id,接受单个id证书请求

Saltstack 服务器基本安装的更多相关文章

  1. 自动化运维工具之SaltStack简介与安装

    1.SaltStack简介 官方网址:http://www.saltstack.com官方文档:http://docs.saltstack.comGitHub:https:github.com/sal ...

  2. saltstack 服务器批量管理

    学习saltstack 服务器批量管理 1.saltstack 简介 SaltStack是一个开源的.新的基础平台管理工具,使用Python语言开发,同时提供Rest API方便二次开发以及和其他运维 ...

  3. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  4. 如何在一台服务器上安装两个mysql或者更多

    如何在一台服务器上安装两个mysql 1       前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2       环境 mysql ...

  5. 我为什么很烦在DB服务器上安装杀毒软件

    常见的数据库连接问题无外乎是在数据库服务器本地可以连接SQL Server,但通过其他服务器就不可以连接.但这次我却碰到了相反的情况,在服务器本地无法通过IP/实例名连接,但从其他服务器却可以.而且每 ...

  6. windows xp 连接USB网络打印机服务器(通用所有usb网络打印机服务器的安装)

    usb网络打印机服务器是HP1101U 打印机是 hp1108 需要准备的其他东西:1.HP1108的驱动 首先,接好线,保证usb hp1101u能正常访问,这款USB一旦接入了网络,会分配一个ip ...

  7. FTP服务器的安装和配置

    FTP服务器的安装和配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本来是想出一个源码安装ftp的教程,但是想想还是算了,如果你自学python有个10天的话你自己就能写一个f ...

  8. 在Mac上关于tomcat服务器的安装、配置、启动、部署web详细流程

    之前在Mac上通过安装mamp来搭建PHP环境服务器,但是对于java来说,目前还是没有找到类似mamp这样强大的软件来构建及管理java环境服务器,所以目前也是通过命令行来进行tomcat服务器的安 ...

  9. 【转载】Linux NFS服务器的安装与配置

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

随机推荐

  1. gmic全球移动互联网大会 全球九站已开启!

    由长城会主办的全球移动互联网大会( 简称GMIC)已成长为世界范围内最具影响力的辐射并连结东西半球的移动互联网商务平台,是最大规模的移动互联网行业盛会. 2017gmic全球移动互联网大会北京站将于2 ...

  2. Flashbuilder 破解方式 4.6 +4.7(网络资源整理)

    Fb4.6 破解方式 安装完成后在安装目录下依次修改下列3个文件: (1).eclipse\plugins\com.adobe.flexbuilder.project_4.6.0.328916\MET ...

  3. PHP短信发送服务 youe短信企业服务

    /** * 通用短信平台HTTP接口POST方式发送短信实例 * 返回字符串 * 一般情况下调用此方法 */ function postSendMessage($msgContents,$phoneL ...

  4. Mac终端命令收集

    一.利用命令行执行文件 cd到要执行文件的文件夹 输入python xx.py   命令即可(xx表示要执行的文件名称)

  5. Python subprocess + timeout的命令执行

    Popen对象 poll() 判断是否执行完毕,执行完毕返回0,未执行完毕返回None terminate() 终止进程发送SIGTERM信号 raise 自定义返回错误 import time im ...

  6. for i in xrange(0,5)使用过程中遇到的问题

    文件中共有4行内容. fd = open("C:\Users\william\Desktop\dup_file - Copy (2).txt")for i in xrange(0, ...

  7. chrome手动添加拓展

    https://www.crx4chrome.com/crx/978/ Free Download Postman REST Client CRX 0.8.4.19 for ------------- ...

  8. JPA 系列教程 异常 集锦

    异常1.hibernate升级到3.5版本 异常信息摘要: Associations marked as mappedBy must not define database mappings like ...

  9. Python基础篇-day11 - 协程

    本节主要内容: 1.Gevent协程2.Select\Poll\Epoll异步IO与事件驱动3.RabbitMQ队列 1.Gevent协程 1.1协程的好处 无需线程上下文切换的开销无需原子操作锁定及 ...

  10. servlet之过滤器(转载)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.Filter 1.过滤器的概念 Java中的Filter 并不是一个标准的Servlet ...