Salt提供对其所有命令的编程访问. Salt为Salt系统的每个部分提供不同的模块.让我们学习python API的基础知识以及如何在本章中运行基本的salt命令.
配置
盐.config 模块用于访问Salt配置详细信息.
import salt.config opts = salt.config. client_config('/etc/salt/master')
这里, client_config 读取salt配置文件并返回配置详细信息作为字典.
Loader
salt.loader 模块用于加载Salt中的每个模块,如grain, minions等.
import salt.loader opts = salt.config.minion_config('/etc/salt/master') grain = salt.loader.grains(opts)
这里, grain 读取谷物的细节盐系统并返回它.
客户端模块
salt.client 模块用于执行盐,盐 - 打电话和salt-SSH命令以编程方式.
最重要的python类如下 :
salt.client.LocalClient
salt.client.Caller
salt.client.ssh.client.SSHClient
大多数客户端模块提供的主要功能是 cmd .此函数包装CLI选项并执行它,类似于命令行,并将结果作为python数据结构返回.
LocalClient
LocalClient用于将命令从主节点发送到salt minions并将结果返回给master.
import salt.client local = salt.client.LocalClient() local.cmd('*','test.ping')
It将产生以下输出 :
{'minion1':True,'minion2':True}
来电者
来电者用于以编程方式运行 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')
云模块提供创建VM的功能(创建),销毁虚拟机(销毁),列出云提供商提供的图像(list_images),列出云提供商的位置(list_locations),列出云提供商的机器大小(list_sizes)等.