saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api

目录

  • 一、salt-ssh
    • 1、salt-ssh简介
    • 2、salt-ssh配置
  • 二、salt-syndic
    • 1、salt-syndic简介
    • 2、salt-syndic配置
  • 三、salt-api
    • 1、salt-api简介
    • 2、salt-api配置
    • 3、salt-api使用

一、salt-ssh

1、salt-ssh简介

  • salt-ssh可以独立运行的,不需要minion端。
  • salt-ssh 用的是sshpass进行密码交互的。
  • 以串行模式工作,性能下降。

2、salt-ssh配置

  • 安装salt-ssh:
yum install -y salt-ssh

配置roster文件,默认的本地路径是 /etc/salt/roster

server2:
  host: 172.25.254.52
  user: root
  passwd: redhat
server3:
  host: 172.25.254.53
  user: root
  passwd: redhat

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第1张图片

  • 测试:
salt-ssh '*' test.ping -i		##询问密码加 -i
vim ~/.ssh/config 
##修改
StrictHostKeyChecking no

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第2张图片

二、salt-syndic

1、salt-syndic简介

  • 如果大家知道zabbix proxy的话那就很容易理解了,syndic其实就是个代理,隔离master与minion。
  • Syndic必须要运行在master上,再连接到另一个topmaster上。
  • Topmaster 下发的状态需要通过syndic来传递给下级master,minion传递给master的数据也是由syndic传递给topmaster。
  • topmaster并不知道有多少个minion。
  • syndic与topmaster的file_roots和pillar_roots的目录要保持一致。

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第3张图片

2、salt-syndic配置

  • topmaster端:
    把server4作为topmaster:
vim /etc/salt/master
##修改
order_masters: True			##作为顶级master
systemctl start salt-master

salt-key -L			##查看下级master的连接授权
salt-key -A			##同意所有下级连接,-A表示同意所有,-a可以指定同意哪一个下级

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第4张图片
saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第5张图片

  • 下级master端:
yum install -y salt-syndic
vim /etc/salt/master
##写入
syndic_master: 172.25.254.54		#指向topmaster

systemctl restart salt-master
systemctl start salt-syndic

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第6张图片
在这里插入图片描述

  • 在server4上授权server1:
    saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第7张图片
  • 测试:
    在server4上salt '*' test.ping ,显示server2和server3上的信息。即minion上的数据传到master,master再通过salt-syndic传到topmaster。
    saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第8张图片

三、salt-api

1、salt-api简介

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

  • 官方提供了三种api模块:

    • rest_cherrypy
    • rest_tornado
    • rest_wsgi
  • 官方链接:https://docs.saltstack.com/en/latest/ref/netapi/all/index.html#all-netapi-modules

2、salt-api配置

  • 安装salt-api:
yum install -y salt-api  python-cherrypy
  • 生成证书:
cd /etc/pki/tls/private
openssl genrsa 1024 > localhost.key
cd /etc/pki/tls/certs
make testcert		##根据提示填写相关信息即可

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第9张图片
saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第10张图片

  • 创建用户认证文件:
useradd saltdev
passwd saltdev
vim /etc/salt/master.d/auth.conf
##写入
external_auth:
  pam:
    saltapi:
      - .*
      - '@wheel'
      - '@runner'

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第11张图片
saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第12张图片

  • 激活rest_cherrypy模块:
vim /etc/salt/master.d/cert.conf
rest_cherrypy:
  port: 8000
  ssl_crt: /etc/pki/tls/certs/localhost.crt
  ssl_key: /etc/pki/tls/private/localhost.key

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第13张图片

  • 重启服务:
systemctl restart salt-master
systemctl start salt-api

在这里插入图片描述

3、salt-api使用

  • 获取认证token:
# curl -sSk https://localhost:8000/login \
    -H 'Accept: application/x-yaml' \
    -d username=saltdev \
    -d password=saltdev \
    -d eauth=pam
  • 推送任务:
# curl -sSk https://localhost:8000 \
    -H 'Accept: application/x-yaml' \
    -H 'X-Auth-Token: 77e2b1de04b0dbc0a4bf11900712b83e4fa2c241'\	##此处token为上面获得的token
    -d client=local \
    -d tgt='*' \
    -d fun=test.ping

saltstack自动化运维管理——saltstack之salt-ssh、salt-syndic与salt-api_第14张图片

你可能感兴趣的:(运维)