无需运行(代理)Minion即可管理设备和应用的Salt插件
项目描述
Salt插件,用于与网络设备交互,无需运行Minion。
安装
将此软件包安装到您想要管理设备的目录。如果您需要特定版本的Salt,请确保先安装它,否则此软件包将安装可用的最新Salt版本。
该软件包通过PyPI分发,名称为salt-sproxy。
执行
pip install salt-sproxy
文档
用法
首先,请确保您已经正确定义了Salt的Pillar Top文件,并且Pillar中包含了proxy密钥。有关更深入的解释和示例,请查看官方SaltStack文档中的这篇教程。
一旦完成这些,您就可以开始使用salt-sproxy,即使没有运行任何Proxy Minions或Salt Master。要检查,可以首先执行以下操作:
$ salt-sproxy -L a,b,c --preview-target
- a
- b
- c
语法与广泛使用的CLI命令salt非常相似,但是其底层工作方式完全不同。
salt-sproxy <目标> <函数> [<参数>]
使用示例
$ salt-sproxy cr1.thn.lon test.ping
cr1.thn.lon:
True
在salt和salt-sproxy之间最重要的区别之一是,前者知道可用的设备,这是由于Minions连接到Master的事实,因此salt已经有了目标列表。而salt-sproxy没有这个功能,因为它不需要Proxy Minions处于开启状态并连接到Master。因此,您需要提供设备列表或一个提供可用设备列表的Roster文件。
以下是一些可用的目标选择:
-E,--pcre:使用pcre正则表达式而不是shell globs来评估目标服务器。
-L,--list:使用逗号或空格分隔的服务器列表而不是shell globs来评估目标服务器。
-G,--grain:使用grain值而不是shell globs来识别目标,目标语法是grain键后跟glob表达式:"os:Arch*"。
-P,--grain-pcre:使用grain值而不是shell globs来识别目标,目标语法是grain键后跟pcre正则表达式:“os:Arch.*”。
-N,--nodegroup:使用预定义的nodegroup之一而不是shell globs来评估目标,以识别目标列表。
-R,--range:使用范围表达式而不是shell globs来评估目标,范围表达式看起来像%cluster。
要使用特定的Roster,请将Master配置文件中的proxy_roster选项配置为特定Roster,例如:
proxy_roster: ansible
以上配置下,salt-sproxy将尝试使用Ansible Roster模块来编译Roster文件(通常是/etc/salt/roster),该文件结构类似于常规的Ansible Inventory文件。此清单应仅提供设备列表。
罗列也可以动态指定,使用 -R 或 --roster 选项,例如:salt-sproxy cr1.thn.lon test.ping --roster=flat。在这个例子中,我们将使用平面罗列模块来确定与特定目标匹配的设备列表。
当您没有在主配置文件或 CLI 中指定罗列时,可以使用 salt-sproxy 来指定一个或多个设备,使用 glob 或 list 目标类型,例如:salt-sproxy cr1.thn.lon test.ping(glob)或 salt-sproxy -L cr1.thn.lon,cr2.thn.lon test.ping(分别针对设备列表 cr1.thn.lon 和 cr2.thn.lon)。
请注意,在任何情况下(无论是否有罗列),您都需要提供一个有效的 Minions 列表。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。