salt-api

salt-api是我们通过restful-api调用salt-master的接口,且调用的时候必须通过认证才能调用,认证的用户为系统用户,下面就说说如何配置salt-api。

不带SSL认证

1.创建用户

[root@salt yum.repos.d]# useradd saltapi
[root@salt yum.repos.d]# passwd saltapi # 密码为123456

2.修改salt-master配置文件

[root@salt yum.repos.d]# vim /etc/salt/master
default_include: master.d/*.conf
file_roots:
base:
- /salt/states
dev:
- /salt/dev
prod:
- /salt/prod

3.创建目录与配置文件:

[root@salt yum.repos.d]# cd /etc/salt/
[root@salt yum.repos.d]# mkdir master.d/
[root@salt yum.repos.d]# cd master.d/ [root@salt yum.repos.d]# cat api.conf # 第一个配置文件
rest_cherrypy:
host: 0.0.0.0
port: 8080
debug: true
disable_ssl: true [root@salt yum.repos.d]# cat eauch.conf
external_auth:
pam:
saltapi:
- .*
- '@wheel'
- '@runner'

4.启动slat-api和salt-master

[root@salt yum.repos.d]# /etc/init.d/salt-api start

5.验证操作:

[root@salt ~]# curl -k http://127.0.0.1:8080/login -H "Accept: application/x-yaml" -d username='saltapi' -d password='123456' -d eauth='pam'
return:
- eauth: pam
expire: 1472481375.33111
perms:
- .*
start: 1472438175.331109
token: f9e354170c3311dc716db56d9217338a206ce006
user: saltapi

带SSL认证的

1.更改salt-master配置文件

[root@salt yum.repos.d]# vim /etc/salt/master
default_include: master.d/*.conf # 添加这一行
[root@salt master.d]# mkdir /etc/salt/master.d/ # 创建目录

2.创建key:

[root@salt private]# cd  /etc/pki/tls/private
[root@salt certs]# make testcert
[root@salt certs]# cd ../private/
[root@salt private]# openssl rsa -in localhost.key -out localhost_nopass.key

3.创建目录与配置文件:

[root@salt master.d]# cat api.conf eauth.conf
rest_cherrypy:
port: 8010 监听 的端口
ssl_crt: /etc/pki/tls/certs/localhost.crt crt证书路径不能错误
ssl_key: /etc/pki/tls/private/localhost_nopass.key key路径也不能错误,不然端口死活起不来 external_auth:
pam:
saltapi: 调用系统认证的pam模块做用户认证
- .* 用户

4.启动服务

[root@salt master.d]# /etc/init.d/salt-api start

5.验证操作:

[root@salt master.d]# curl -k https://192.168.1.16:8010/login -H "Accept: application/x-yaml" -d username='saltapi' -d password='123456' -d eauth='pam'
return:
- eauth: pam
expire: 1472007733.0523901
perms:
- .*
start: 1471964533.0523901
token: 9b6a6e82c002b925952e5c930a699286e8096db1
user: saltapi

6.执行命令看看

[root@salt tmp]# curl -k https://172.16.22.129:8010/ -H "Accept: application/x-yaml" -H "X-Auth-Token: 5aa829c1df638221f0b62b25e68f7121a347022e"  -d client="local"  -d tgt='*' -d fun='test.ping'
return:
- web.minion1.com: true curl -k http://172.16.22.129:8010/ -H "Accept: application/x-yaml" -H "X-Auth-Token: f9e354170c3311dc716db56d9217338a206ce006" -d client="local" -d tgt='*' -d fun='grains.items'

最新文章

  1. Java的修饰符
  2. iOS----自定义UIView,绘制一个UIView
  3. SharePoint 2013 扩展查阅项功能
  4. CI在ngnix的配置
  5. HTML内联元素
  6. linux 系统下 android studio 获取SHA1
  7. Ue4如何在C++中获得获得当前角色的指针?
  8. Java--多线程读取网络图片并保存在本地
  9. Qt 之 自定义提示信息框—迅雷风格(模拟QDialog类的exec()方法) good
  10. 【leetcode❤python】107. Binary Tree Level Order Traversal II
  11. 转: 透过CAT,来看分布式实时监控系统的设计与实现
  12. [转] C# 中的static静态变量
  13. jenkins定位GitLab推送的最新Webhook中push event来自哪一个分支
  14. FB面经Prepare: Find Longest Path in a Multi-Tree
  15. Laravel 5.2问题-----postman进api的post请求,为什么出现Forbidden?
  16. Dicom文件转mhd,raw文件格式
  17. 最短路计数——Dijkstra
  18. 获取屏幕宽度,将view移出屏幕再移动回来
  19. SpringBoot在自定义类中调用service层等Spring其他层
  20. jQuery自定义扩展写法

热门文章

  1. Servlet实例开发---学生管理系统
  2. [转] javaweb学习-jstl-<c:forEach>中 varStatus的属性简介
  3. PHPUnit 在phpstrom中composer项目的应用配置
  4. mysql单表体积和一个库设计多少张表为妥
  5. mongo源码学习(三)请求接收传输层
  6. tomcat出现的PermGen Space问题<转>
  7. 【转载】解决Windows和Ubuntu时间不一致的问题
  8. mongoDB 删除集合后,空间不释放
  9. Spring Boot 上传文件 获取项目根路径 物理地址 resttemplate上传文件
  10. 图的基本算法(BFS和DFS)