一、概述
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/x86_64/e/epel-release-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
|
[root@node03 ~]
Accepted Keys:
minion01
|
注:salt-key常用命令
-a #添加指定id
-A #添加全部
-R #拒绝全部
-d #删除指定id
-D #删除全部
测试:
1
2
3
|
[root@node03 ~]
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
相关推荐
- 可以通过命令`salt '*' test.ping`或`salt '*' network.ip_addrs`来测试`salt-master`与所有已认证`minion`之间的连通性。 #### 六、高级配置与使用技巧 - **文件管理**:通过配置文件`/etc/salt/minion`中的`...
这部分内容提供了如何调用 SaltSSH 命令的指导,包括如何执行远程命令、传递参数等。 以上内容概括了《Salt 手册》中涉及的主要知识点和技术细节,为读者提供了全面而深入的理解 Salt 的机会。无论是初学者还是...
3. **性能调优**:根据实际使用情况调整配置参数,优化系统性能。 4. **备份策略**:制定合理的备份策略,防止数据丢失。 #### 七、注意事项 - 在安装过程中,请严格遵循官方文档中的指导步骤。 - 对于不熟悉的...
3. **自定义配置**:在部署过程中,可以通过传递参数来定制 Salt 的配置,比如指定 Salt Master 的地址、Minion ID 等。 4. **持续集成友好**:由于 salt-bootstrap 脚本可以集成到 CI/CD 工具中,如 Jenkins、...
你可以根据需要调整参数,例如指定安装路径。 4. **编译和安装**:使用`make`命令进行编译,然后使用`sudo make install`进行安装。注意,没有`sudo`权限可能无法完成安装。 5. **配置 Salt Master 和 Minion**:...
- **云配置文件**:定义了在特定云提供商上创建实例的参数,如实例类型、镜像、安全组等。 - **映像(Images)和快照(Snapshots)**:云服务器的操作系统镜像或快照,用于创建新实例。 - **提供者配置**:在`/etc/...
在实际使用过程中,`pytest-salt`提供了一些有用的参数,比如`--salt-conf`用于指定`salt`的配置文件,`--salt-run`可以运行单个`salt`执行器,以及`--salt-key`用于处理`salt`的密钥管理等。这些参数增强了`pytest-...
用户可以根据自己的设备和喜好调整音频输出参数,如均衡器、环绕声、音场等,实现个性化的听觉享受。这些设置可以帮助优化音质,对于音乐发烧友来说,可以挖掘出设备的更多潜力,让每一首歌曲都能呈现出最佳的听感。...
它允许用户利用pytest的强大特性,如断言重写、参数化、 fixture和标记,来编写针对Salt配置的测试用例。通过pytest-salt,测试可以直接在 Salt Minion 上运行,或者模拟执行以减少对实际环境的影响。 在解压...
注意:此公式可能使用formhelper模块,这是一个非常有用的Salt执行模块,尚无法在上游使用。 请考虑从手动检索它,并将其提供给Salt安装。 阅读以了解如何实现。 查看较旧的发行版(分支)以获得尚未使用formhelper...
在JavaScript中,有时我们需要对URL中的参数进行加密和解密,以确保数据的安全性,防止敏感信息被轻易读取。本文提供的代码片段就是用于实现这个目的的一个示例。让我们深入了解一下这段代码的工作原理和相关知识点...
盐度是海洋学中的一个重要参数,它描述了海水中溶解盐分的浓度。在本压缩包"salt_jisuan.zip"中,包含了一个名为"salt_jisuan"的小程序,这个程序专门用于计算海水的盐度场。对于初学者而言,这是一个非常实用的学习...
"n6se"可能是指这个项目的某个特定参数设置或者定制的边缘检测方法,但没有更具体的信息,无法详细解释其含义。 总的来说,这个项目可能包括以下步骤: 1. 应用高斯滤波器去除图像中的增强型Salt & Pepper噪声。 2....
`malloc(size_t size)`函数接收一个参数`size`,表示所需内存的字节数,并返回一个指向分配内存块的指针。如果内存分配成功,它将返回非空指针,否则返回NULL。 使用malloc需要注意以下几点: 1. **类型转换**:...
具体参数包括文件的名称、路径、是否强制覆盖已存在的文件、以及文件的来源。这里的文件来源使用了salt://协议,表示从SaltStack的文件服务器中获取文件。通过这种方式,可以确保部署过程中使用正确的文件版本,并在...
在IT领域,图像处理是一个非常重要的分支,尤其是在计算机视觉、机器学习和数据分析中。...同时,这也可以作为进一步学习图像处理和噪声去除技术的起点,例如研究如何优化滤波器参数,以适应不同场景和噪声类型。
例如,我们可以只传递 `salt` 参数,或者同时传递 `salt` 和 `more`。这种方法的多态性允许我们在不同场景下以不同方式调用同一方法,而无需创建多个版本的方法。 在Python中,多态性不仅限于方法参数,还包括其他...
5. 配置服务:编辑Master和Minion的配置文件,如`/etc/salt/master`和`/etc/salt/minion`,根据需求设置相关参数。 6. 启动服务:使用`sudo systemctl start salt-master`和`sudo systemctl start salt-minion`启动...
盐窗安装程序(Salt Windows Installer)是用于自动化构建 Salt 在 Windows 操作系统上安装过程的工具。这个项目的目标是简化 SaltStack 的部署,使得在 Windows 环境中配置和管理服务器变得更加便捷。SaltStack 是...
用户可以根据自己的项目需求,对模板中的配置参数进行修改,以适应不同的外设接口和数据传输要求。 总结,STM32F103的DMA功能是提高系统性能的关键,通过合理配置和使用,可以显著优化数据传输过程,减轻CPU负担。...