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.

测试

  1. stop old salt-master
  2. 在minion上salt-call
  3. 在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配置的更多相关文章

  1. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...

  2. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy 下载haproxy1.6.2.tar.gz下载地址:http://www.haproxy.org/download/1. ...

  3. 17.1.1.1 Setting the Replication Master Configuration 设置复制的master 配置:

    17.1.1.1 Setting the Replication Master Configuration 设置复制的master 配置: 在一个复制master,你必须启用binary loggin ...

  4. saltstack(二) master、minion常用配置选项

    master常用配置选项: interface: 指定bind的地址(默认0.) publish_port:指定发布端口(默认4505) ret_port: 指定结果返回端口,与minion配置文件的 ...

  5. SaltStack之Master配置文件详解

    salt-master的配置文件位于/etc/salt/master,可用选项如下: #######################主配置 interface默认值:0.0.0.0(所有的网络地址接口 ...

  6. saltstack之(七)配置管理系统初始化init

    saltstack的配置管理分环境管理:①.base为基础环境,一般会存放一些所有服务器都使用的配置管理信息.②.dev为开发测试环境,一般会存放一些开发测试服务器使用的配置管理信息.③.pro为线上 ...

  7. saltstack安装与配置

    Saltstack是基于Python开发的一套C/S架构,具备Puppet.Ansible功能于一身的配置管理工具,功能十分强大,各模块融合度及复用性极高:使用号称世界上最快的消息队列ZeroMQ使得 ...

  8. SaltStack 安装及配置认证

    一.SaltStack 安装 SaltStack 是基于 Python 开发的,也是基于 C/S 架构,通过服务端 ( master ) 控制多台客户端 ( minion ) 实现批量操作这里我们使用 ...

  9. SaltStack安装及配置

    1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...

  10. SaltStack自动化安装配置haproxy的Keepalived

    keepalived配置安装 什么是vrrp,阿里云不支持组播,所以阿里云上不能配置keepalived,但是它有自己的slb.运维的大忌,在命令行复制粘贴,一般是先复制到文本中查看确认以后salt编 ...

随机推荐

  1. pandas知识点(汇总和计算描述统计)

    调用DataFrame的sum方法会返还一个含有列的Series: In [5]: df = DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0 ...

  2. Altium Designer

    抗干扰设计原则: 1.电源线的设计 选择合适的电源 尽量加宽电源线 保证电源线.底线走向和数据传输方向一致 使用抗干扰元器件(磁珠.电源滤波器等) 电源入口添加去耦电容 2.底线的设计 模拟地和数字地 ...

  3. MFC深入浅出读书笔记第二部分1

    第六章 MFC程序的生死因果 MFC学习过程,这个方法不错,条例清晰. 1.CWinApp  -- 取代WinMain地位 WinMain函数的功能由CWinApp的三个函数实现 virtual BO ...

  4. python 学习分享-常用模块篇

    模块 就是前人给你造的轮子,你开车就好!!! 常用模块有: time模块 random模块 os模块 sys模块 shutil模块 json  &  picle模块 shelve模块 xml处 ...

  5. P3369 【模板】普通平衡树(Splay)

    题目链接:https://www.luogu.org/problemnew/show/P3369 修改了一下之前的模板,支持重复数值的存储 #include<bits/stdc++.h> ...

  6. docker常用命令整理

    Docker常见用法整理 Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器. Docker 容器通过 Docker 镜像来创建.容器与镜像的关系类似于 ...

  7. 【转】手动写一个Behavior Designer任务节点

    http://blog.csdn.net/qq_33747722/article/details/53539532 自己手写一个类似于CanSeeObject.Seek等任务节点并不是一件难事 下面我 ...

  8. AngularJs 特性 之 双向数据绑定

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...

  9. IIS8 不能在此路径中使用此配置节。如果在父级别上锁定了该节

    问题: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overr ...

  10. hihoCoder #1809 : 本题数据范围五千

    Analysis (一) 猜想:答案跟 $q_1, q_2, q_3$ 无关:考虑排列 $q$ 是 $1, 2, 3$ 的情况,此时符合要求的排列 $p$ 实际上满足: 对于任意 $i < j ...