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、minion 等。

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 命令。

最重要的 Python 類如下:

  • salt.client.LocalClient
  • salt.client.Caller
  • salt.client.ssh.client.SSHClient

大多數客戶端模組提供的核心函式是 cmd。此函式包裝 CLI 選項並執行它,這類似於命令列並以 Python 資料結構的形式返回結果。

LocalClient

LocalClient 用於從主節點向 Salt Minion 傳送命令並將結果返回到主節點。

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 模組提供用於建立 VM(create)、銷燬 VM(destroy)、列出雲提供商提供的映象(list_images)、列出雲提供商的位置(list_locations)、列出雲提供商的機器大小(list_sizes)等的功能。

廣告

© . All rights reserved.