日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux salt生成,51CTO博客-专业IT技术博客创作平台-技术成就梦想

發布時間:2024/1/23 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux salt生成,51CTO博客-专业IT技术博客创作平台-技术成就梦想 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上找了很多文檔都訪問不了salt-api,搞了好半天,終于弄好了,寫個筆記,方便以后查詢

如果需要通過第三方來調用SaltStack時,使用SaltStack自帶的Python API并不能很好的滿足需求。可以通過使用SaltStack基于RESTful風格的HTTP API。該API模塊并不是內置的,需要單獨安裝。

Salt REST API簡介

這里簡單的說明下,SaltStack官方支持三種REST API,分別是rest_cherry; rest_tonado和rest_wsgi

rest_cherry和rest_tonado兩個模塊支持監聽所有IP的指定端口接收請求

rest_wsgi只支持本機訪問,只綁定了127.0.0.1

安裝Salt-API服務shell> yum -y install gcc make python-devel libffi-devel

shell> pip install pyOpenSSL==0.15.1

借助salt工具來生成證書shell>?salt-call?--local?tls.create_self_signed_cert

salt-call是salt-minion的工具,如果沒有這個命令,可以在master端安裝minion,然后再執行以上命令

配置用戶及權限

shell> useradd -M -s /sbin/nologin sa

shell> echo "sapassword" | passwd sa --stdin

在salt-master的配置文件最后添加如下配置

external_auth:

pam: ?#認證模式,pam指的是用Linux本身的用戶認證模式

sa: ?#Linux系統中真實存在的用戶名

-'*': ?#設置用戶的權限,允許該用戶操作哪些主機,*代表全部

-test.* ?#允許操作的模塊及方法

-cmd.*

配置salt-api服務

在salt-master的配置文件最后添加如下配置rest_cherrypy:

port: 1559 ?#默認監聽所有IP的1559端口

ssl_crt: /etc/pki/tls/certs/localhost.crt ?#引用的正是前面創建的證書

ssl_key: /etc/pki/tls/certs/localhost.key

啟動服務shell>?service?salt-api?start

登陸獲得Tokencurl -sSk https://www.20150509.cn:1559/login \

-H 'Accept: application/x-yaml' \

-d username=sa \

-d password=sapassword \

-d eauth=pam

復制得到的Token

curl -sSk https://localhost:8000 \

-H 'Accept: application/x-yaml' \

-H 'X-Auth-Token: 697adbdc8fe971d09ae4c2a3add7248859c87079'\

-d client=local \

-d tgt='*' \

-d fun=test.ping

使用Python腳本來訪問APIimport json

import urllib

import urllib2

#在python2.6x中,以下兩行不是必須的

import ssl

ssl._create_default_https_context = ssl._create_unverified_context

url='https://www.20150509.cn:1559' ?#salt-api所在的“坐標”

def test():

pre_data = [{"client":"local", "tgt":"*", "fun":"test.ping"}] ? #根據上面官方文檔的要求組成數組嵌套字典的形式

json_data = json.dumps(pre_data) ? ?#將其轉化為json格式

header = {"Content-Type":"application/json", "Accept":"application/json", "X-Auth-Token":"697adbdc8fe971d09ae4c2a3add7248859c87079"}

#這里說明下,Content-Type是聲明傳遞給API的數據是什么格式的,這里指定了json,是因為上面的pre_data數據被我轉化成了json格式

#Accept是聲明返回結果以什么樣的格式顯示,這里也指定了json格式來顯示返回結果

request = urllib2.Request(url, json_data, header) ? ?#構造一次請求

response = urllib2.urlopen(request) ? ?#構造一次HTTP訪問

html = response.read()

print html

if __name__=="__main__":

test()

總結

以上是生活随笔為你收集整理的linux salt生成,51CTO博客-专业IT技术博客创作平台-技术成就梦想的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。