企业实战--saltstack自动化运维(salt-api 简介及配置)

一、salt-api简介

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

官方提供了三种api模块:

rest_cherrypy
rest_tornado
rest_wsgi

二、salt-api配置及使用

安装salt-api:

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

生成证书:

[root@server1 ~]# cd /etc/pki/tls/private
[root@server1 private]# openssl genrsa 2048 > localhost.key
Generating RSA private key, 2048 bit long modulus
.................+++
...............+++
e is 65537 (0x10001)
[root@server1 private]# cd /etc/pki/tls/certs
[root@server1 certs]# make testcert		//根据提示填写相关信息即可

这时我们生成了证书(localhost.crt)和key(localhost.key)。

创建用户认证文件:

[root@server1 certs]# cd /etc/salt/master.d/
[root@server1 master.d]# vim tls.conf
[root@server1 master.d]# cat tls.conf 
rest_cherrypy:
  port: 8000
  ssl_crt: /etc/pki/tls/certs/localhost.crt
  ssl_key: /etc/pki/tls/private/localhost.key

创建用户授权文件:

[root@server1 master.d]# vim auth.conf
[root@server1 master.d]# cat auth.conf 
external_auth:
  pam:							#热插拔模式
    saltapi:					#用户
      - .*
      - '@wheel'
      - '@runner'
      - '@jobs'

创建用户并配置密码:

[root@server1 master.d]# useradd -s /sbin/nologin saltapi
[root@server1 master.d]# passwd redhat

重启master服务并启动salt-api服务:

[root@server1 master.d]# systemctl restart salt-master.service 
[root@server1 master.d]# systemctl start salt-api.service 

    

启动后8000端口以开启:

[root@server1 master.d]# netstat -antlup | grep 8000
\tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      21157/salt-api      
tcp        0      0 127.0.0.1:53016         127.0.0.1:8000          TIME_WAIT   -    

获取认证token:

[root@server1 master.d]# curl -sSk https://localhost:8000/login     -H 'Accept: application/x-yaml'     -d username=saltapi     -d password=redhat  -d eauth=pam

return:
- eauth: pam
  expire: 1589864868.838355
  perms:
  - .*
  - '@wheel'
  - '@runner'
  - '@jobs'
  start: 1589821668.838354
  token: 738aea2609580fdf80011eaa0794657016a29a4b
  user: saltapi

在返回的信息中包含我们需要的token。

测试推送任务:

[root@server1 master.d]# curl -sSk https://localhost:8000  \
>     -H 'Accept: application/x-yaml' \
>     -H 'X-Auth-Token: 738aea2609580fdf80011eaa0794657016a29a4b'\
>     -d client=local \
>     -d tgt='*' \
>     -d fun=test.ping
return:
- server2: true
  server3: true

命令中token为上各命令的返回值,从返回值可以看出salt-api配置成功。

测试其他命令:

[root@server1 master.d]# curl -sSk https://localhost:8000      -H 'Accept: application/x-yaml'     -H 'X-Auth-Token: 738aea2609580fdf80011eaa0794657016a29a4b'    -d client=local     -d tgt='*'     -d fun=cmd.run -d arg=hostname
return:
- server2: server2
  server3: server3

也可以调用state模块:

[root@server1 master.d]# curl -sSk https://localhost:8000      -H 'Accept: application/x-yaml'     -H 'X-Auth-Token: 738aea2609580fdf80011eaa0794657016a29a4b'    -d client=local     -d tgt='*'     -d fun=state.sls -d arg=keepalived

也可以基于这个api开发自动化运维系统(github上有现成的项目,搜索oms)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值