Saltstack学习(五)-架构扩展

一、saltstack多master架构

单台master管理多台minion时,master压力过大,存在单点问题,需要对master做高可用

1.1、多master架构原理

image

原理说明:

1)minion端配置多个master地址

2)两台master之间的配置文件,状态文件,密钥文件必须相同

方案设计

1)使用rsync+inotify或sersync实现文件的同步

2)使用nfs共享挂载的方式

1.2、rsync方式

1)安装新的master

yum install salt-master -y
#注意:先不要启动

2)同步旧master的配置文件,状态文件,密钥文件到新的master上

#配置文件
rsync -avz /etc/salt/master server-two:/etc/salt/

#密钥文件
rsync -avz /etc/salt/pki/master/master.* server-two:/etc/salt/pki/master/  #master的公钥与私钥

#状态文件
rsync -avz /srv server-two:/

3)修改minion配置,重启minion

# vim /etc/salt/minion
master:
  - server-one
  - server-two
# systemctl restart salt-minion

4)启动新master,并测试

systemctl start salt-master
salt-key -A -y  
salt '*' test.ping

5)实时同步

rsync+inotifysersync方式完成实时同步

脚本思路:

#!/usr/bin/bash
Srv_Config=/srv
Master_Config=/etc/salt/master
Master_New=10.0.0.21
Date=$(date +%F-%T)

rsync -avz --delete $Srv_Config  $Master_New:/ &>/dev/null && \
rsync -avz --delete $Master_Config $Master_New:$Master_Config &>/dev/null
        if [ $? -eq 0 ];then
                echo "$Date Rsync Salt Config Is Ok!"
        else
                echo "$Date Rsync Salt Config Is Err!"
        fi

1.3、NFS挂载方式

待续


二、salt syndic架构

2.1、syndic原理

image

image

原理说明

1)主控master可以控制一群master,通过syndic将操作命令传输给受控master,受控master来完成对自己旗下minion的管理,并将结果传回主控master,从而实现了主控master对所有minion的间接管理。

2)syndic节点上也需要master,,syndic连接主控master

文档:https://docs.saltstack.com/en/latest/topics/topology/syndic.html

2.2、syndic配置

环境说明:

master syndic       minion

10.0.0.11

10.0.0.21

10.0.0.22,10.0.0.23

1)配置顶级master

[root@salt-master srv]# yum install salt-master -y
[root@salt-master srv]# vim /etc/salt/master
order_masters: True   #打开表示master与syndic通信
[root@salt-master srv]# systemctl restart salt-master

2)配置syndic

[root@syndic ~]# yum install salt-syndic -y
[root@syndic ~]# vim /etc/salt/master
# If this master will be running a salt syndic daemon, syndic_master tells
# this master where to receive commands from.
syndic_master:
  - 10.0.0.11   #配置master的ip地址

[root@syndic ~]# systemctl restart salt-master
[root@syndic ~]# systemctl restart salt-syndic

3)配置minion

两台执行相同操作

[root@salt-minion2-c7 ~]# yum install salt-minion -y
[root@salt-minion2-c7 ~]# vim /etc/salt/minion
master:
  - 10.0.0.21   #配置syndic的地址
[root@salt-minion2-c7 ~]# systemctl restart salt-minion

#如果之前已经添加过受信任的Master需要删除对应的key,然后重启
rm -f /etc/salt/pki/minion/minion_master.pub

4)master添加syndic key信任,syndic添加minion key信任

#master上
[root@salt-master srv]# salt-key -A -y
[root@salt-master srv]# salt-key -L
Accepted Keys:
salt-minion1-c7
Denied Keys:
Unaccepted Keys:
Rejected Keys:

#syndic上
[root@syndic minion]# salt-key -A -y
[root@syndic minion]# salt-key -L
Accepted Keys:
salt-minion2-c7
salt-minion3-c7
Denied Keys:
Unaccepted Keys:
Rejected Keys:

#master上测试
[root@salt-master ~]# salt '*' test.ping   #显示的是两台minion,说明master知道有多少台minion,但不知道多少syndic
salt-minion2-c7:
    True
salt-minion3-c7:
    True

#syndic上测试
[root@syndic minion]# salt '*' test.ping
salt-minion2-c7:
    True
salt-minion3-c7:
    True

说明:syndic的file_root、pillar_root必须与高级master一致,master知道有多少台minion,但不知道多少syndic

三、salt masterless架构(无主架构)

Salt脱离Master独立运行,这种状态可以称为无mastersalt

这种模式可以用于登陆minion后的一些调试任务,可以将状态文件配置在本地进行执行

文档:https://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html

3.1、无主架构配置

1)配置minion为本地执行模式

[root@salt-minion3-c7 ~]# vim /etc/salt/minion
file_client: local

file_roots:
  base:
    - /srv/salt/

pillar_roots:
  base:
    - /srv/pillar

[root@salt-minion3-c7 ~]# systemctl restart salt-minion

2)编写本地sls文件

[root@salt-minion3-c7 ~]# cat /srv/salt/demo.sls 
pkg-demo:
  pkg.installed:
    - pkgs:
      - screen
      - nmap

3)使用salt-call本地执行

[root@salt-minion3-c7 ~]# salt-call --local state.sls demo
[root@salt-minion3-c7 ~]# salt-call --local cmd.run 'w'
local:
     13:43:23 up  4:20,  1 user,  load average: 0.01, 0.02, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    10.0.0.1         09:26    3.00s  0.82s  0.02s w
posted @ 2019-09-01 10:42  运维人在路上  阅读(708)  评论(0编辑  收藏  举报