Salt2018.3.0与Salt2019.2.0对比测试
Salt2019.2.0新特性
ANSIBLE PLAYBOOK STATE AND EXECUTION MODULES
2019.2.0版本中还增加了运行playbooks的功能。 这包括一个ansible playbooks状态模块,它可以在目标主机上用来运行ansible playbooks,或者用在编排state runner中。
NEW DOCKER PROXY MINION
现在可以使用新的docker proxy minion将Docker容器视为实际的minions,而无需在容器中安装salt。
NETWORK AUTOMATION - 网络自动化
从此版本开始,Salt为各种网络操作系统提供了更广泛的支持,以及配置变更或命令执行的功能。
NETMIKO
NETMIKO=Network + Paramiko
Netmiko是一个简化Paramiko SSH与网络设备连接的多供应商库,现已正式集成到Salt中。 现在可以通过netmiko代理模块或直接从任何Salt Minions使用它。
新添加的netmiko执行模块的功能如下:
- napalm.netmiko_commands: 通过Netmiko执行一个或多个要在远程设备上执行的命令,并将输出作为文本返回。
- napalm.netmiko_config: 通过Netmiko在远程设备上加载一个配置命令的列表。 这些命令既可以从本地,也可以从远程路径加载,通过Salt的模板渲染pipeline传递(默认情况下使用Jinja作为模板渲染引擎)。
ARISTA
Arista交换机现在可以在pyeapi代理模块下进行管理,并通过pyeapi执行模块执行RPC请求。
CONNECTION RE-ESTABLISHMENT ON DEMAND
从此版本开始,在NAPALM Proxy Minion下运行时执行的任何NAPALM命令都支持force_reconnect魔术参数。
Proxy Minions通常在Minion启动时与远程网络设备建立连接,并且该连接将永久使用。
CONFIGURATION SAVE FEATURES
net.save_config函数可用于将受管设备的配置保存到文件中。 对于State子系统,添加了netconfig.saved函数,该函数在管理可以保存网络设备配置的目标文件时提供完整的工具列表。
TERRAFORM SALT-SSH ROSTER
现在可以使用terraform-provider-salt定义的terraform资源动态生成Salt-SSH名册。
这允许结合使用terraform和Salt-SSH来监视和配置主机。
GRAINS DICTIONARY PASSED INTO CUSTOM GRAINS
从这个版本开始,如果在使用自定义grains函数时接受一个名为grains的变量,那么已经编译过的grains的Grains字典将被传入。
由于grains在被渲染时的顺序是不确定的,唯一可以确定且可以被传入的是core.py grains,因为这些是首先编译的。
MORE PRECISE VIRTUAL GRAIN
在嵌套虚拟化环境(例如VM中的systemd-nspawn容器)中运行Salt并且安装了virt-what时,此版本提高了virtual grain的准确性。
CONFIGURABLE MODULE ENVIRONMENT
Salt模块(状态,执行模块,returners等)现在可以在运行shell命令时应用自定义环境变量。 这可以通过在Grains或Pillar中设置系统环境键值对来配置。
FILE.PATCH STATE REWRITTEN
file.patch状态已被重写并补充了几个新功能:
- 补丁源现在可以是远程文件,而不仅仅是salt://URL
- 现在支持多文件的修补程序
- 补丁文件也可以支持模板化
此外,不再需要指定patched file的哈希值。
SALT-API
以前,Microsoft Windows平台不支持salt-api。 现在它支持了! salt-api为正在运行的Salt系统提供RESTful接口。 它允许通过REST API访问minions、runners和jobs以及通过正在运行的Salt系统的执行execution modules 和 runners,返回JSON格式的输出结果。
安装部署
| Salt2018.3.0 | Salt2019.2.0 |
---|---|---|
安装方式 | 编译安装 | Yum安装 |
安装目录 | /usr/local/salt_2018.3/ | /usr/bin/ |
配置目录 | /etc/salt/ | /etc/salt/ |
test.ping 测试(单位:秒)
系统版本 | CPU | 内存 | 版本\客户端数量 | 10 | 100 | 300 | 500 |
---|---|---|---|---|---|---|---|
CentOS7.2 | 8 | 15G | Salt2018.3.0 | 1.003 | 1.963 | 2.324 | 2.875 |
CentOS6.8 | 8 | 8G | Salt2019.2.0 | 0.804 | 1.603 | 1.898 | 2.449 |
cmd.run 'uptime' 测试(单位:秒)
系统版本 | CPU | 内存 | 版本\客户端数量 | 10 | 100 | 300 | 500 |
---|---|---|---|---|---|---|---|
系统版本 | CPU | 内存 | 版本\客户端数量 | 10 | 100 | 300 | 500 |
CentOS7.2 | 8 | 15G | Salt2018.3.0 | 1.103 | 1.996 | 2.414 | 2.874 |
CentOS6.8 | 8 | 8G | Salt2019.2.0 | 0.840 | 1.083 | 1.926 | 2.594 |
文件批量分发测试(单位:秒)
系统版本 | CPU | 内存 | 版本\客户端数量 | 10 | 100 | 300 | 500 |
---|---|---|---|---|---|---|---|
CentOS7.2 | 8 | 15G | Salt2018.3.0 | 6.092 | 16.092 | 21.894 | 45.035 |
CentOS6.8 | 8 | 8G | Salt2019.2.0 | 5.180 | 13.803 | 18.138 | 39.335 |