saltstack系列1之salt-api配置与使用
2024-08-25 03:15:19
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'
最新文章
- Java的修饰符
- iOS----自定义UIView,绘制一个UIView
- SharePoint 2013 扩展查阅项功能
- CI在ngnix的配置
- HTML内联元素
- linux 系统下 android studio 获取SHA1
- Ue4如何在C++中获得获得当前角色的指针?
- Java--多线程读取网络图片并保存在本地
- Qt 之 自定义提示信息框—迅雷风格(模拟QDialog类的exec()方法) good
- 【leetcode❤python】107. Binary Tree Level Order Traversal II
- 转: 透过CAT,来看分布式实时监控系统的设计与实现
- [转] C# 中的static静态变量
- jenkins定位GitLab推送的最新Webhook中push event来自哪一个分支
- FB面经Prepare: Find Longest Path in a Multi-Tree
- Laravel 5.2问题-----postman进api的post请求,为什么出现Forbidden?
- Dicom文件转mhd,raw文件格式
- 最短路计数——Dijkstra
- 获取屏幕宽度,将view移出屏幕再移动回来
- SpringBoot在自定义类中调用service层等Spring其他层
- jQuery自定义扩展写法
热门文章
- Servlet实例开发---学生管理系统
- [转] javaweb学习-jstl-<;c:forEach>;中 varStatus的属性简介
- PHPUnit 在phpstrom中composer项目的应用配置
- mysql单表体积和一个库设计多少张表为妥
- mongo源码学习(三)请求接收传输层
- tomcat出现的PermGen Space问题<;转>;
- 【转载】解决Windows和Ubuntu时间不一致的问题
- mongoDB 删除集合后,空间不释放
- Spring Boot 上传文件 获取项目根路径 物理地址 resttemplate上传文件
- 图的基本算法(BFS和DFS)