SaltStack - Python API

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)等.