• Saltstack-API(十二)


    Saltstack-API

    官方文档 https://docs.saltstack.com/en/latest/ref/netapi/all/salt.netapi.rest_cherrypy.html

    参数:http://salt-api.readthedocs.io/en/latest/ref/netapis/all/saltapi.netapi.rest_cherrypy.html#a-rest-api-for-salt

    使用条件:1)https调用,需要生成证书  2)配置文件 3)使用PAM验证 4)启动salt-api

    安装

    yum install -y salt-api

    实现方式

    1)创建用户useradd -M -s /sbin/nologin saltapi

    2)设置密码passwd saltapi

    3)生成自签名证书

    cd /etc/pki/tls/certs

    mv localhost.crt /tmp

    make testcert

    cd /etc/pki/tls/private

    如果上面生成证书时输入了密码,需要取消密码

    openssl rsa -in localhost.key  -out salt_nopass.key

    4)安装Cherrypy模块,版本3.2.6

    pip install Cherrypy==3.2.6

    备注:centos6、7可以使用3.2.6版本,centos5安装时不要选版本号

    5)修改master配置文件

    vi /etc/salt/master
    default_include: master.d/*.conf
    

    6)创建api配置文件

    cd /etc/salt/master.d/
    vi api.conf
    rest_cherrypy:
      host: 192.168.137.11
      port: 8000
      ssl_crt: /etc/pki/tls/certs/localhost.crt
      ssl_key: /etc/pki/tls/private/salt_nopass.key
    

    备注:如果加disable_ssl: True,可以通过http请求。

    性能优化:

    thread_pool: 100
    socket_queue_size: 30

    7)认证文件

    vi eauth.conf
    external_auth:
      pam:
        saltapi:
          - .*
          - '@wheel'
          - '@runner'
    

    备注: .*  # 所有模块可执行, '@wheel'  # salt key

    centos5.9上yum安装的salt,eauth.conf配置需要注意,如下配置

    external_auth:
      pam:
        saltapi:
          - .*
          - '@local'
          - '@local_async'
          - '@wheel'
          - '@wheel_async'
          - '@runner'
          - '@runner_async'

    8)重启master

    systemctl restart salt-master.service
    

    9)启动api

    systemctl restart salt-api

    10)需要修改master的配置对saltapi用户进行授权

    [root@test1 ~]# vim /etc/salt/master
    external_auth:
      pam:
        saltapi:
          - .*
          - '@wheel'
    [root@test1 ~]# /etc/init.d/salt-master restart
    Stopping salt-master daemon:                               [  OK  ]
    Starting salt-master daemon:                               [  OK  ]

    使用介绍

    1)登录测试,使用curl请求

    curl -k https://192.168.137.11:8000/login 
        -H 'Accept: application/x-yaml' 
        -d username=saltapi 
        -d password=saltapi 
        -d eauth=pam
    

    登录成功后系统返回token,用于后续交互使用。

    2)获取minion资产数据测试,节点为linux-node1.example.com主机

    curl -k https://192.168.137.11:8000/minions/linux-node1.example.com 
        -H 'Accept: application/x-yaml' 
        -H 'X-Auth-Token: token内容'
    

    3)查看所有minion存活主机

    curl -k https://192.168.137.11:8000/ 
        -H 'Accept: application/x-yaml' 
        -H 'X-Auth-Token: token内容' 
        -d client='runner' 
        -d fun='manage.status'
    

    备注:client='runner'指的是在master执行,client='local'指的是在minion执行

    4)ping测试

    curl -k https://192.168.137.11:8000/ 
        -H 'Accept: application/x-yaml' 
        -H 'X-Auth-Token: token内容' 
        -d client='local' 
        -d tgt='*' 
        -d fun='test.ping'
    

    tgt表示目标,可以指定某一台minion

    5)查看jobs

    curl -k https://192.168.137.11:8000/jobs 
        -H 'Accept: application/x-yaml' 
        -H 'X-Auth-Token: token内容'
    

    6)查看具体一个jobs的执行结果

    curl -k https://192.168.137.11:8000/jobs/jobid 
        -H 'Accept: application/x-yaml' 
        -H 'X-Auth-Token: token内容'
    
  • 相关阅读:
    python笔记之条件语句、循环语句、迭代器和生成器
    浅谈IO和NIO
    浅谈java自定义类加载器
    浅谈Synchronized和ReentrantLock
    软工1816 · 第三次作业
    软工1816 · 第二次作业
    软工1816 · 第一次作业
    简单的自我介绍
    The Last
    第七次课程作业
  • 原文地址:https://www.cnblogs.com/shhnwangjian/p/6055342.html
Copyright © 2020-2023  润新知