SaltStack接口salt-api

介绍

参考官档
参考官档

SaltStack官方提供有REST API格式的salt-api项目,将使salt与第三方系统集成变得更加简单。

salt-api安装配置

1)在salt-master上进行安装

[root@salt-master ~]# yum -y install salt-api

2)自签名证书,生产环境可以购买(说明:如果没有salt-call命令,装上salt-minion即可,依赖于该包)

[root@salt-master ~]# salt-call --local tls.create_self_signed_cert
local:
Created Private Key: "/etc/pki/tls/certs/localhost.key." Created Certificate: "/etc/pki/tls/certs/localhost.crt."

3)打开include加载子配置文件,方便管理

[root@salt-master ~]# vim /etc/salt/master
default_include: master.d/*.conf

4)配置api配置文件,将上面生成的证书写到配置文件

[root@salt-master ~]# vim /etc/salt/master.d/api.conf
rest_cherrypy:
host: 192.168.1.30
port:
ssl_crt: /etc/pki/tls/certs/localhost.crt
ssl_key: /etc/pki/tls/certs/localhost.key

5)创建认证用户,并设置密码

[root@salt-master ~]# useradd -M -s /sbin/nologin saltapi
[root@salt-master ~]# echo 'saltapi' | passwd --stdin saltapi

6)创建认证配置文件

[root@salt-master ~]# vim /etc/salt/master.d/auth.conf
external_auth:
pam:
saltapi:
- .*
- '@wheel'
- '@runner'
- '@jobs'

7)重启salt-master和启动salt-api

[root@salt-master ~]# systemctl restart salt-master
[root@salt-master ~]# systemctl start salt-api

8)查看salt-api监听端口

[root@salt-master ~]# netstat -anlutp |grep
tcp 192.168.1.30: 0.0.0.0:* LISTEN /python
tcp 192.168.1.30: 192.168.1.30: TIME_WAIT -

9)验证login登录,获取token字符串

[root@salt-master ~]# curl -sSk https://192.168.1.30:8000/login \
> -H 'Accept: application/x-yaml' \
> -d username=saltapi \
> -d password=saltapi \
> -d eauth=pam
return:
- eauth: pam
expire: 1558663247.869537
perms:
- .*
- '@wheel'
- '@runner'
- '@jobs'
start: 1558620047.869536
token: e8330f642a3addd853c723d63844d29a12de9484
user: saltapi

10)通过api执行test.ping测试连通性

[root@salt-master ~]# curl -sSk https://192.168.1.30:8000 \
> -H 'Accept: application/x-yaml' \
> -H 'X-Auth-Token: e8330f642a3addd853c723d63844d29a12de9484'\
> -d client=local \
> -d tgt='*' \
> -d fun=test.ping
return:
- salt-minion01: true
salt-minion02: true
salt-minion03: true
salt-minion04: true

11)通过api执行cmd.run

[root@salt-master ~]# curl -sSk https://192.168.1.30:8000 \
> -H 'Accept: application/x-yaml' \
> -H 'X-Auth-Token: e8330f642a3addd853c723d63844d29a12de9484'\
> -d client=local \
> -d tgt='*' \
> -d fun='cmd.run' -d arg='uptime'
return:
- salt-minion01: ' 22:10:25 up 46 min, 1 user, load average: 0.00, 0.01, 0.05'
salt-minion02: ' 22:10:25 up 7 min, 0 users, load average: 0.00, 0.18, 0.15'
salt-minion03: ' 22:10:25 up 7 min, 0 users, load average: 0.06, 0.33, 0.26'
salt-minion04: ' 22:10:25 up 7 min, 0 users, load average: 0.01, 0.21, 0.16'

12)通过api获取grains信息

[root@salt-master ~]# curl -sSk https://192.168.1.30:8000/minions/salt-minion01 \
> -H 'Accept: application/x-yaml' \
> -H 'X-Auth-Token: e8330f642a3addd853c723d63844d29a12de9484'
return:
- salt-minion01:
SSDs: []
biosreleasedate: //
biosversion: '6.00'
cpu_flags:
- fpu
- vme
- de
- pse
- tsc
.....

13)使用json格式

[root@salt-master ~]# curl -sSk https://192.168.1.30:8000/minions/salt-minion01 \
> -H 'Accept: application/json' \
> -H 'X-Auth-Token: e8330f642a3addd853c723d63844d29a12de9484'
{"return": [{"salt-minion01": {"biosversion": "6.00", "kernel": "Linux", "domain": "", "uid": , "zmqversion": "4.1.4", "kernelrelease": "3.10.0-693.el7.x86_64", "selinux": {"enforced": "Disabled", "enabled": false}, "serialnumber": "VMware-56 4d 9e a0 21 56 90 87-cd 89 69 32 13 94 17 44", "pid": , "fqdns": [], "ip_interfaces": {"lo": ["127.0.0.1", "::1"], "virbr0": ["192.168.122.1"], "virbr0-nic": [], "ens33": ["192.168.1.31", "192.168.1.100", "fe80::20c:29ff:fe94:1744"]}, "groupname": "root", "fqdn_ip6": ["fe80::20c:29ff:fe94:1744"],
.......

总结

salt-api必须使用https,生产环境建议使用可信证书
salt-api服务重启后原token失效

SaltStack--接口salt-api的更多相关文章

  1. 死磕salt系列-salt API 使用

    启用salt-api 服务 这里简单的说明下,SaltStack官方支持三种REST API,分别是rest_cherry; rest_tonado和rest_wsgi, 本文选择使用rest_che ...

  2. CentOS 安装及配置Salt api

    安装 # yum -y install salt-api 更改配置 vim /etc/salt/master 把默认的注释掉  我们这边默认配置文件目录是/srv/salt default_inclu ...

  3. effective OC2.0 52阅读笔记(三 接口与API设计)

    第三章:接口与API设计 15 用前缀避免命名空间冲突 总结:避免重名符号错误的唯一办法是变相实现命名空间.为所有符号都加上命名前缀.类和分类都应加三字前缀.注意类实现文件中的纯C函数及全局变量,是算 ...

  4. 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念

     http接口.api接口.RPC接口.RMI.webservice.Restful等概念 收藏 Linux一叶 https://my.oschina.net/heavenly/blog/499661 ...

  5. saltstack通过salt.client执行命令(转)

    利用saltstack的salt.client模块可以在python的命令行下或者python脚本里执行相应的salt命令 master端想要执行类似 salt '*' cmd.run 'uptime ...

  6. 【转】基于laravel制作APP接口(API)

    这篇文章主要介绍了基于laravel制作APP接口(API)的相关资料,需要的朋友可以参考下 前期准备 前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件 ...

  7. saltstack 使用salt ‘*’ test.ping 报错Minion did not return(转)

    原文地址:http://blog.51cto.com/4634721/2093019 saltstack 使用salt ‘*’ test.ping 报错Minion did not return. [ ...

  8. 开放接口/RESTful/Api服务的设计和安全方案

    总体思路 这个涉及到两个方面问题:一个是接口访问认证问题,主要解决谁可以使用接口(用户登录验证.来路验证)一个是数据数据传输安全,主要解决接口数据被监听(HTTPS安全传输.敏感内容加密.数字签名) ...

  9. Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结  mysql

    Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结  mysql 1. 图16.1:MySQL体系结构1 2. 16.7. 创建表create()虚拟函数:2 3. 16.8 ...

  10. Linux系统调用及用户编程接口(API)

    系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组"特殊"接口,用户程序能够通过这组"特殊"接口来获得操作系统内核提供的服务.比如用户能够通过进程控制相 ...

随机推荐

  1. 第01组 Alpha事后诸葛亮

    目录 一.总结思考 1.设想和目标 ①我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? ②我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原 ...

  2. [BZ1925] [SDOI2010]地精部落

    [BZ1925] [SDOI2010]地精部落 传送门 一道很有意思的DP题. 我们发现因为很难考虑每个排列中的数是否使用过,所以我们想到只维护相对关系. 当我们考虑新的一个位置时,给新的位置的数分配 ...

  3. 图文详解如何使用VMWare创建一套虚拟机“集群”

    开篇废话 在学习各种高大上的大数据产品也好,模拟部署我们的程序到PRD环境也好,总离不开需要一个机器集群.然而通常我们都没有那么多银子去购买多台云服务器,更没钱购买物理机.所以对于技术研究来说,最经济 ...

  4. 如何快速将磁盘的MBR分区方式改成GPT分区方式

    注:修改分区格式时此硬盘不能是在使用状态(简单说就是不能出现在盘符中),如果在使用中先在计算机的磁盘管理中删除卷. 由于MBR分区表模式的硬盘最大只支持2T的硬盘空间,而现在我们的硬盘越来越大,有时候 ...

  5. 《Linux就该这么学》培训笔记_ch14_使用DHCP动态管理主机地址

    <Linux就该这么学>培训笔记_ch14_使用DHCP动态管理主机地址 文章最后会post上书本的笔记照片. 文章主要内容: 动态主机地址管理协议 部署dhcpd服务程序 自动管理IP地 ...

  6. cad.net 依照旧样条曲线数据生成一条新样条曲线的代码段. spline生成

    Spline spl = entity as Spline; //拿到旧的spline图元... //样条曲线生成条件 var controlPoints = new Point3dCollectio ...

  7. putty常用配置修改

    1.修改putty默认的颜色方案 初次使用putty时,发现默认的配色的方案看得非常难受,特别是黑色背景,深蓝色的字体,根本看不清楚,下面介绍如何更改默认的配色方案: (1)下载配置文件 首先下载注册 ...

  8. spring Valid @Pattern 常见的验证表达式

    1 匹配首尾空格的正则表达式:(^\s*)|(\s*$)   2 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 3 只能输入数字:"^[0-9]*$". 4 只 ...

  9. Oulipo 子串查找

    题目描述 思路 使用哈希值表示较长串的子串的值,直接比较哈希值是否相等 代码 #include <cstdio> #include <cstring> using namesp ...

  10. 卸载webpack,降低版本

    卸载:npm uninstall webpack -g 重新安装:npm install webpack@3.7.1 -g