SaltStack$api
SaltStack 官方提供有REST API格式的 salt-api 项目,将使Salt与第三方系统集成变得尤为简单
官方rest_cherrypy模块
salt-api配置
安装salt—api
yum install -y salt-api python-cherrypy
生成本地证书
cd /etc/pki/tls/private
openssl genrsa 1024 > localhost.key
cd /etc/pki/tls/certs
make testcert ##根据提示填写地区,城市,用户信息
vim api.conf
激活rest_cherrypy模块
rest_cherrypy:
port: 8000
ssl_crt: /etc/pki/tls/certs/localhost.crt
ssl_key: /etc/pki/tls/private/localhost.key
查看本地证书
ll /etc/pki/tls/private/localhost.key
ll /etc/pki/tls/certs/localhost.crt
创建用户认证文件
添加saltapi用户并重启服务
useradd saltapi
echo westos |passwd --stdin saltapi
systemctl restart salt-master.service
查看8000端口是否开启
获取认证token
[root@salt1 master.d]# curl -sSk https://172.25.9.1:8000/log in \
> -H 'Accept: application/x-yaml' \
> -d username=daltapi \
> -d passwd=westos \
> -d eauth=pam
推送一个任务
curl -sSk https://172.25.9.1:8000 -H 'Accept: application/x-yaml' -H 'X-Auth-Token:#此处填写上一步获得的token# ' -d username=daltapi -d passwd=westos -d client=loacal -d tgt='*' -d fun=test.ping
vim saltapi.py
# -*- coding: utf-8 -*-
import urllib2,urllib
import time
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
try:
import json
except ImportError:
import simplejson as json
class SaltAPI(object):
__token_id = ''
def __init__(self,url,username,password):
self.__url = url.rstrip('/')
self.__user = username
self.__password = password
def token_id(self):
''' user login and get token id '''
params = {