saltstack restfull api调用

    当前主流配置管理系统 ansible,saltsatck,puppet等。各有优缺点,但是只有saltstack只有restfull api可以调用,其他的想要构建一个批量管理平台必须跟ansible服务器在一起。
   staltstack不必多说,是一个相当方便和牛逼的配置管理工具,多元的架构可以让他很轻松管理上万台主机,可以作为包括生产环境的跳板机使用,使用salt可以很轻松开发出基于web的批量管理平台,其中主要依赖于salt-api --> 一个可以提供restfull api的服务接口。
    这里主要介绍salt-api的使用。
  
环境   centos7.3

安装:
     服务器端
          salt-master 
          salt-api restfull,必须安装在salt-master主机上
     被管理主机
            salt-minion             
        
      具体安装方法  http://repo.saltstack.com    官方最全安装手册。

基本配置:
     salt-master   配置文件位置    /etc/salt/master
           使用restfull api不用配置(很轻松,YMY) ,
           如果使用salt命令管理机器,指定下sls的文件地址这个介绍不在本文范围内,跳过。
                                                       file_roots:
                                                            base:
                                                               - /srv/salt/

    salt-api      配置文件目录     /etc/salt/master.d/
           创建一个基本配置 saltapi.conf (名字随便取)
                    写入基本配置

点击(此处)折叠或打开

  1. rest_cherrypy:
  2.            host: 172.17.3.55        #salt-api地址,本机地址,http访问地址
  3.            port: 8001                #salt-api端口
  4.            disable_ssl: true         #如果不使用ssl
  5.            #ssl_crt: crt_file
  6.            #ssl_key: key_file      #如果使用ssl指向证书

         还有个用户配置,用来指定salt-api登录的用户    auth.conf(名字也是随便起)
             

点击(此处)折叠或打开

  1. external_auth:
  2.      pam:     #使用linux的认证模块
  3.        saltapi:    #用户名,系统用户
  4.           - .*        #权限
  5.           - '@wheel'   
              - '@runner'
        创建saltapi用户        useradd saltapi  -s /sbin/nologin
        授权密码                 echo saltapi | password saltapi --stdin
   
     salt-minion   配置文件   /etc/salt/minion 
                       修改一项 指向master主机,其他的都默认,如果改了其他地方那就全部对应修改 
                                    master: 172.17.3.55


启动各应用
       systemctl start salt-master
       systemctl start salt-minion
      systemctl start salt-api


使用:
      第一步 获取token,token是执行所有命令的认证
             

点击(此处)折叠或打开

  1. data = {
  2.             "username": "saltapi",
  3.             "password": "saltapi",
  4.             "eauth": "pam"
  5.         }
  6.         res=requests.post('http://172.17.3.55:8001/',data)
  7.         
  8.     
  9.         res.json()
  10.             {
  11.                 "return": [
  12.                     {
  13.                         "perms": [
  14.                             ".*"
  15.                         ],
  16.                         "start": 1564555975.711495,
  17.                         "token": "ca662c906a189c394e39f9699629b55a40ca9459", #获得token
  18.                         "expire": 1564599175.711497,
  19.                         "user": "saltapi",
  20.                         "eauth": "pam"
  21.                     }
  22.                 ]
  23.             }


        第二步 开始执行各种需要的命令,这方面要对salt各种模块使用方法比较熟悉。
           

点击(此处)折叠或打开

  1. headers = {
  2.             'Accept': ' application/json',
  3.             'X-Auth-Token': 'ca662c906a189c394e39f9699629b55a40ca9459',    #token放入头部
  4.         }
  5.     
  6.         data = {
  7.             'client': 'local'       #调用底层salt模块
  8.             'tgt': '*'              # target 目标主机,需要执行的主机,也可以是list,pcre等,对应expr_form
  9.             'fun': 'cmd.run'      # 执行函数,可以是单个也可以是list,对于arg也为list,跟arg一一对应参数
  10.             'expr_form': 'glob'     # tgt表达式 glob,pcre,list,grain等,属于执行主机的选择 
  11.             'arg': 'ifconfig'               # fun的参数,对应fun
  12.         }
  13.         res=requests.post('http://172.17.3.55:8001/',data,headers)
      返回格式  {
                  "return":[
                           {
                              "host1": "result1"
                             },
                            {
                              "host2": "result2" 
                           }  
                        ]
                 }          

        主要就是这些,对主要模块灵活运用后,想当简单(比ansible的api简单多了)
         

















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值