SaltStack netapi模塊REST API——rest_wsgi

原文鏈接:https://docs.saltstack.com/en/latest/ref/netapi/all/salt.netapi.rest_wsgi.html

您也可以參考在Github上維護的這一份技術資料:rest_wsgi

A minimalist REST API for Salt - 一個極簡的Salt REST API

這個rest_wsgi模塊提供了一個簡潔的REST接口實現,用於將命令發送到Salt master服務器。 不需要依賴於其它工具包。

將該模塊部署到生產中時,必須格外小心。 請先完整閱讀本文檔。

所有身份驗證均通過Salt的 external auth 外部身份驗證系統完成。

Usage - 用法

  • 所有的訪問請求都必須發送到根 URL (/)。
  • 所有的訪問請求都必須使用JSON的數據格式以POST方式發送。
  • 所有的響應結果都是以JSON格式返回的。

See also:rest_cherrypy

rest_cherrypy 模塊提供了更多的功能、生產環境適配以及內置的安全特性。

Deployment - 部署方式

rest_wsgi netapi模塊是標準的Python WSGI應用程序。可以採用以下兩種方法之一進行部署。

使用兼容WSGI的Web服務器

該模塊可以通過任何符合WSGI規範的生產服務器運行,例如具有mod_wsgi的Apache或具有FastCGI的Nginx。

強烈建議將此應用與支持HTTPS加密的服務器一起使用,因爲原始的Salt身份驗證憑據必須隨每個請求一起發送。通過此接口訪問Salt的所有應用都需要手動管理身份驗證憑據(用戶名和密碼或Salt令牌)。請謹慎使用。

使用僅用於開發服務的salt-api

如果直接通過salt-api守護程序運行,它將使用Python標準庫中附帶的wsgiref.simple_server()。這是用於測試和開發的單線程服務器。該服務器不使用加密;請注意,原始的Salt身份驗證憑據會隨每個HTTP請求一起發送。

不建議通過salt-api運行該模塊!

爲了通過salt-api守護程序啓動此模塊,必須將以下內容放入Salt master配置中:

rest_wsgi:
    port: 8001

Usage examples - 用法示例

POST /

執行一個基礎的 `test.ping` 命令的request請求:
    % curl -sS -i \
            -H 'Content-Type: application/json' \
            -d '[{"eauth":"pam","username":"saltdev","password":"saltdev","client":"local","tgt":"*","fun":"test.ping"}]' localhost:8001

response響應結果:

    HTTP/1.0 200 OK
    Content-Length: 89
    Content-Type: application/json

    {"return": [{"ms--4": true, "ms--3": true, "ms--2": true, "ms--1": true, "ms--0": true}]}

異步方式執行一個 test.ping 命令:

    % curl -sS -i \
            -H 'Content-Type: application/json' \
            -d '[{"eauth":"pam","username":"saltdev","password":"saltdev","client":"local_async","tgt":"*","fun":"test.ping"}]' localhost:8001

response響應結果:

    HTTP/1.0 200 OK
    Content-Length: 103
    Content-Type: application/json

    {"return": [{"jid": "20130412192112593739", "minions": ["ms--4", "ms--3", "ms--2", "ms--1", "ms--0"]}]}

查看一個指定job ID任務的詳細信息的示例:

    % curl -sS -i \
            -H 'Content-Type: application/json' \
            -d '[{"eauth":"pam","username":"saltdev","password":"saltdev","client":"runner","fun":"jobs.lookup_jid","jid":"20130412192112593739"}]' localhost:8001

response響應結果:

    HTTP/1.0 200 OK
    Content-Length: 89
    Content-Type: application/json

    {"return": [{"ms--4": true, "ms--3": true, "ms--2": true, "ms--1": true, "ms--0": true}]}

form lowstate

適用於您正在調用的客戶端接口的一個lowstate狀態數據列表。

status 200

success

status 401

authentication required
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章