SaltStack - Python API
Salt 提供对其所有命令的编程访问。Salt 为 Salt 系统的每个部分提供不同的模块。让我们在本章中学习python API的基础知识以及如何运行基本的salt命令。
配置
salt.config模块用于访问Salt配置详细信息。
import salt.config opts = salt.config.client_config('/etc/salt/master')
这里,client_config读取salt配置文件并以字典形式返回配置详细信息。
加载器
salt.loader模块用于加载Salt中的每个模块,例如grains,minions等。
import salt.loader opts = salt.config.minion_config('/etc/salt/minion') grains = salt.loader.grains(opts)
这里,grains读取Salt系统中grains的详细信息并返回。
客户端模块
salt.client模块用于以编程方式执行salt,salt-call和salt-SSH命令。</p>
最重要的python类如下−
- salt.client.LocalClient
- salt.client.Caller
- salt.client.ssh.client.SSHClient
大多数客户端模块提供的主要功能是cmd。该函数包装 CLI 选项并执行它,它类似于命令行并将结果返回为 python 数据结构。
LocalClient
LocalClient 用于从 master 向 salt minions 发送命令并将结果返回给 master。
import salt.client local = salt.client.LocalClient() local.cmd('*', 'test.ping')
它将产生以下输出 −
{'minion1': True, 'minion2': True }
Caller
Caller 用于以编程方式运行 salt-call 并返回结果。
import salt.client caller = salt.client.Caller() caller.cmd('test.ping')
它将产生以下 输出 −
True
SSHClient
SSHCient 用于以编程方式运行 salt-ssh 并返回结果。
import salt.client.ssh.client ssh = salt.client.ssh.client.SSHClient() ssh.cmd('*', 'test.ping')
它将产生以下输出 −
{'minion1': True, 'minion2': True }
CloudClient
salt.cloud 模块用于以编程方式执行 salt-cloud 命令。
client = salt.cloud.CloudClient(path = '/etc/salt/cloud')
Cloud 模块提供创建虚拟机 (create)、销毁虚拟机 (destroy)、列出云提供商提供的映像 (list_images)、列出云提供商的位置 (list_locations)、列出云提供商的机器大小 (list_sizes) 等功能。