[SaltStack] Multi-Master配置
Multi Master配置
从salt 0.16.0版本开始, 管理minions可以使用multi-master特性. 当使用multi-master时, 所有masters均可以正常运行, 任何一个active-master都可以向minions发送命令.
在0.16.0版本, masters之间并不会共享信息, public keys需要在每台master上accept, 文件共享需要手动完成, 或者使用类似git工具确保file_roots目录文件一致.
建立Multi-Master的大概步骤:
- 安装新的master server
- copy masterkeys到新的master对应目录
- 启动新的master进程
- 配置minions配置文件
- Restart minions
- 在新的master上accept keys
Master Keys
配置Multi-Master主要的问题是: 每一个master使用相同的private key. Private key在master第一次启动时自动生成的(注意: 配置Multi-Master时, 一定要在启动新master前将老master的private key copy到对应目录).
Master的private key在pki_dir目录下, 默认的位置是: /etc/salt/pki/master/master.pem, 将该key copy到新的master对应的目录下.
谨记, 一定是在启动新master之前copy!
Configure Minions
修改minion config文件, 这样每一个minion将会认证到所有master上.
Config文件默认在:/etc/salt/minion
e.g.
修改minion config file
master:
- saltmaster1.example.com
- saltmaster2.example.com
最后, restart minion..
此时, 所有master都alive, 并且可以控制minon.
配置过程
安装master
Rpm装,就不说了(注意:先不要启动salt-master)
copyprivate keys(可以使用nc copy文件)
启动新的salt-master
/etc/init.d/salt-master start
配置minion端config files
重启salt-minion
/etc/init.d/salt-minion restart
有一个问题: master之间无法容灾.
如果主salt-master当机, salt-call将会失败, 无法完成同步, 但是其他冗余salt-master还是可以向下highstate.
所以需要使用DNS解析, 如果主master宕机, 立即切换DNS到其他的master.
测试
- stop old salt-master
- 在minion上salt-call
- 在new salt-master上highstate
看以看出在new salt-master上highstate是没有问题的.
Sharing Files Between Masters
Salt并不会在每个master之间同步文件共享, 下面介绍一下一些key files在master之间的同步和保持一致.
Minion Keys
Minion keys会被每一个master接受. 可以通过salt-key工具手动完成, 或者同步一些关键目录. 必要的同步目录是:
/etc/salt/pki/master/minions
/etc/salt/pki/master/minions_pre
/etc/salt/pki/master/minions_rejected
file_roots
file_roots: 目录也应该被在master之间同步. 这是用于管理配置的salt state file目录, 推荐的同步方法是使用gitfs, 或者将file_roots目录放在共享存储上.
pillar_roots
同file_roots一样也需要被同步.
Master Configuration
确保master相关的配置也是相互同步的.
external_auth
client_acl
peer
peer_run
Conclusion
总的来说配置Multi-master还是比较简单的, 可以提供多master来管理minions, 确保keys和state files在master之间保持同步.
From reno
2015-06-17 21:23:00
[SaltStack] Multi-Master配置的更多相关文章
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy 下载haproxy1.6.2.tar.gz下载地址:http://www.haproxy.org/download/1. ...
- 17.1.1.1 Setting the Replication Master Configuration 设置复制的master 配置:
17.1.1.1 Setting the Replication Master Configuration 设置复制的master 配置: 在一个复制master,你必须启用binary loggin ...
- saltstack(二) master、minion常用配置选项
master常用配置选项: interface: 指定bind的地址(默认0.) publish_port:指定发布端口(默认4505) ret_port: 指定结果返回端口,与minion配置文件的 ...
- SaltStack之Master配置文件详解
salt-master的配置文件位于/etc/salt/master,可用选项如下: #######################主配置 interface默认值:0.0.0.0(所有的网络地址接口 ...
- saltstack之(七)配置管理系统初始化init
saltstack的配置管理分环境管理:①.base为基础环境,一般会存放一些所有服务器都使用的配置管理信息.②.dev为开发测试环境,一般会存放一些开发测试服务器使用的配置管理信息.③.pro为线上 ...
- saltstack安装与配置
Saltstack是基于Python开发的一套C/S架构,具备Puppet.Ansible功能于一身的配置管理工具,功能十分强大,各模块融合度及复用性极高:使用号称世界上最快的消息队列ZeroMQ使得 ...
- SaltStack 安装及配置认证
一.SaltStack 安装 SaltStack 是基于 Python 开发的,也是基于 C/S 架构,通过服务端 ( master ) 控制多台客户端 ( minion ) 实现批量操作这里我们使用 ...
- SaltStack安装及配置
1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...
- SaltStack自动化安装配置haproxy的Keepalived
keepalived配置安装 什么是vrrp,阿里云不支持组播,所以阿里云上不能配置keepalived,但是它有自己的slb.运维的大忌,在命令行复制粘贴,一般是先复制到文本中查看确认以后salt编 ...
随机推荐
- pandas知识点(汇总和计算描述统计)
调用DataFrame的sum方法会返还一个含有列的Series: In [5]: df = DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0 ...
- Altium Designer
抗干扰设计原则: 1.电源线的设计 选择合适的电源 尽量加宽电源线 保证电源线.底线走向和数据传输方向一致 使用抗干扰元器件(磁珠.电源滤波器等) 电源入口添加去耦电容 2.底线的设计 模拟地和数字地 ...
- MFC深入浅出读书笔记第二部分1
第六章 MFC程序的生死因果 MFC学习过程,这个方法不错,条例清晰. 1.CWinApp -- 取代WinMain地位 WinMain函数的功能由CWinApp的三个函数实现 virtual BO ...
- python 学习分享-常用模块篇
模块 就是前人给你造的轮子,你开车就好!!! 常用模块有: time模块 random模块 os模块 sys模块 shutil模块 json & picle模块 shelve模块 xml处 ...
- P3369 【模板】普通平衡树(Splay)
题目链接:https://www.luogu.org/problemnew/show/P3369 修改了一下之前的模板,支持重复数值的存储 #include<bits/stdc++.h> ...
- docker常用命令整理
Docker常见用法整理 Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器. Docker 容器通过 Docker 镜像来创建.容器与镜像的关系类似于 ...
- 【转】手动写一个Behavior Designer任务节点
http://blog.csdn.net/qq_33747722/article/details/53539532 自己手写一个类似于CanSeeObject.Seek等任务节点并不是一件难事 下面我 ...
- AngularJs 特性 之 双向数据绑定
<!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...
- IIS8 不能在此路径中使用此配置节。如果在父级别上锁定了该节
问题: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overr ...
- hihoCoder #1809 : 本题数据范围五千
Analysis (一) 猜想:答案跟 $q_1, q_2, q_3$ 无关:考虑排列 $q$ 是 $1, 2, 3$ 的情况,此时符合要求的排列 $p$ 实际上满足: 对于任意 $i < j ...