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. 【PHP】PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析

    php编程中有时候会需要用上排序,在这里简单地整理一下集中sort的区别,方便查询 sort() 函数用于对数组单元从低到高进行排序. rsort() 函数用于对数组单元从高到低进行排序. asort ...

  2. nginx的缓存服务

    都知道缓存的目的是为了减小服务端的压力,可以在客户端直接取到数据 客户端---------------nginx(代理缓存)------------------服务端 代理缓存的描述: 就是客户端发送 ...

  3. 17.VUE学习之- v-for指令的使用方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 循环(while、for)

    写重复的代码是程序员最不耻的行为,那么如何做到不用写重复代码又能让程序重复一段代码多次呢,循环语句就派上用场拉…… 一.while 循环 # while 语法结构 while 条件: 执行代码.... ...

  5. 在windows和Linux下安装nodejs

    在windows下安装nodejs 1.首先下载nodejs安装包,  https://nodejs.org/en/download/ 点击下载相应的版本 然后将文件夹解压到安装目录(任意,不做规定) ...

  6. Python9-From-CSS-day48

    1.form表单相关内容前后端有数据交互的时候用form表单form表单提交数据的几个注意事项: 1.所有获取用户输入的标签都必须放在form表单里面 2.action 控制着往哪里提交 3.inpu ...

  7. HDU 1506 Largest Rectangle in a Histogram(单调栈、笛卡尔树)

    题意:给定n个连续排列的矩形的高,矩形的宽都为1.问最大矩形覆盖. 例如:n = 7,h[i] = (2 1 4 5 1 3 3),最大覆盖为8. Sample Input 7 2 1 4 5 1 3 ...

  8. Gym 100829S_surf 动态规划的优化

    题目大意是,非你若干个任务,任务分别对应开始时间.预期收益.持续时间三项指标,让你从中选择一个受益最大的方案(没有开始时间相同的任务). 于是,标准状态转移方程应当为,设DP[K]为选择了前K个任务的 ...

  9. ipv4配置

  10. virsh命令管理虚拟机

    virsh命令管理虚拟机 libvirt有两种控制方式,命令行和图形界面. 1.图形界面:通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚 ...