Saltstack 简介php
什么是saltstacknode
• Saltstack是基于python开发的一套C/S架构配置管理工具python
• 使用SSL证书签方的方式进行认证管理mysql
• 底层使用ZeroMQ消息队列pub/sub方式通讯nginx
– 号称世界上最快的消息队列ZeroMQ能快速在成千上万台主机上进行各类操做c++
– 采用RSA Key方式确认身web
主要功能正则表达式
• Saltstack最主要的两个功能是:配置管理与远程执行算法
• Saltstack不仅是一个配置管理工具,仍是一个云计算与数据中心架构编排的利器sql
• Saltstack已经支持Docker相关模块
• 在友好地支持各大云平台以后,配合Saltstack的Mine实时发现功能能够实现各类云平台业务的自动扩展
Saltstack架构
• Saltstack基于C/S架构
– 服务器端称做Master
– 客户端称做Minion
• 能够实现传统处理方式,即:客户端发送请求给服务器,服务器收到请求后处理请求,再将结果返回
• 也可使用消息队列中的发布与订阅(pub/sub)服务模式
Saltstack工做机制
• Master和Minion都以守护进程的方式运行
• Master监听配置文件里定义的ret_port(接收minion请求),和publish_port(发布消息)的端口
• 当Minion运行时,它会自动链接到配置文件里定义的Master地址ret_port端口进行链接认证
• 当Master和Minion能够正常通讯后,就能够进行各类各样的配置管理工做了
Saltstack安装
依赖:
1. python2.6 ~ python3.0
2. ZeroMQ or RAET
3. mako(可选):一个可选的Salt States解析器
4. gcc(可选)
MacOS安装方法:
1. brew install saltstack
2. sudo port install salt
3. sudo pip install salt
Ubuntu14.04安装方法:
1. wget -O - https://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest/SALTSTACK-GPG-KEY.pub sudo apt-key add -
2. deb https://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest trusty main
3. apt-get install salt-api salt-cloud salt-master salt-minion salt-ssh salt-syndic
Centos 和 redhat 安装方法:
1. sudo pip install salt
2. sudo yum install salt-master salt-minion
Saltstack启动
1 . 运行Master 节点
2. 修改Minion 节点配置,填入Master节点信息
3. 启动Minion
4. Master节点添加Minion
本次使用一个案例来介绍 Saltstack
实验拓扑图:
服务器使用的操做系统是RHEL7
实验要求:
为六台主机配置IP 分别为
sm 192.168.4.10
web1 192.168.4.11
db1 192.168.4.12
web2 192.168.4.21
db2 192.168.4.22
cache 192.168.4.33
为了方便实验 六台主机全都关闭防火墙 禁用SELinux
配置yum源
实验步骤:
安装saltstack:
在主机sm上配置 安装salt-master
// 安装 salt-master
# yum -y install salt-master
// 启动 Master
# systemctl start salt-master
# systemctl enable salt-master
//验证服务
# netstat -pantu | grep ‘ :4505 | :4506’
tcp 0 0 0.0.0.0:4505 0.0.0.0:* LISTEN 12434/python
tcp 0 0 0.0.0.0:4506 0.0.0.0:* LISTEN 12440/python
// 修改/etc/hosts, 实现名称解析
# echo '
> 192.168.4.10 sm
> 192.168.4.11 web1
> 192.168.4.12 db1
> 192.168.4.21 web2
> 192.168.4.22 db2
> 192.168.4.33 cache
> ' > /etc/hosts
// 将sm 的 /etc/hosts 文件同步共享给其余主机
# for i in 11 12 21 22 33
> do
> rsync -a /etc/hosts 192.168.4.${i}:/etc/ -e 'ssh'
> done
在其余主机 11 12 21 22 33上:
//安装 salt-minion
# yum -y install salt-minion
//修改Minion配置文件,使其能够与Master通讯
#sed -e"s/^#\(master:\).*/\1 sm/" -i /etc/salt/minion -e "s/^#\(id:\).*/\1${HOSTNAME}/" -i /etc/salt/minion
//启动Minion
# systemctl start salt-minion.service
# systemctl status salt-minion.service
Master与Minion互信:
• Minion上线后先与Master端联系,把本身的pubkey发过去
• Master接受Minion的公钥后,互信创建完成
• 查看密钥信息
[root@sm ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
cache
db1
db2
web1
web2
Rejected Keys:
• 密钥管理
[root@sm ~]# salt-key -h
-L: 列出密钥
-a: 接受一个密钥
-A: 接受所有密钥
-D: 删除所有密钥
... ...
• 接受密钥,完成互信
[root@sm ~]# salt-key -A -y
The following keys are going to be accepted:
Unaccepted Keys:
cache
db1
db2
web1
web2
Key for minion cache accepted.
Key for minion db1 accepted.
Key for minion db2 accepted.
Key for minion web1 accepted.
Key for minion web2 accepted.
远程执行命令:
salt命令使用方法以下
• salt [options] '<target>' <function> [arguments]
• target指的是在哪些Minion上执行,若是在所有Minion上运行,能够采用通配符 '*’
-L 列表
-E 正则
-N 分组
-S CIDR
• function通常采用python的 模块.方法 样式
• arguments是传递给方法的参数
批量管理主机
• 测试全部主机连通性
[root@sm ~]# salt '*' test.ping
web1:
True
web2:
True
db2:
True
db1:
True
cache:
True
• 在主机上执行任意命令 测试
[root@sm ~]# salt '*' cmd.run 'uptime'
db1:
01:41:05 up 5:22, 1 user, load average: 0.00, 0.01, 0.05
db2:
01:41:04 up 5:22, 1 user, load average: 0.00, 0.01, 0.05
web2:
01:41:04 up 5:22, 1 user, load average: 0.00, 0.01, 0.05
cache:
01:41:05 up 5:22, 1 user, load average: 0.00, 0.01, 0.05
web1:
01:41:04 up 5:22, 1 user, load average: 0.00, 0.01, 0.05
使用列表 -L
# salt -L ' db1,web2' cmd.run 'uptime'
web2:
01:50:15 up 5:31, 1 user, load average: 0.00, 0.01, 0.05
db1:
01:50:16 up 5:31, 1 user, load average: 0.00, 0.01, 0.05
使用正则表达式 -E
# salt -E "web\d" test.ping
web2:
True
web1:
True
使用分组 -N
定义分组
# vim /etc/salt/master
//1085 行
nodegroups:
test: 'L@db1,web2,cache'
other: 'E@db[0-9] or N@test'
使用分组
[root@sm ~]# salt -N 'test' test.ping
cache:
True
db1:
True
web2:
True
[root@sm ~]# salt -N 'other' test.ping
web2:
True
cache:
True
db2:
True
db1:
True
传输文件:
# vim /etc/salt/master
#file_roots:
# base:
# - /srv/salt //master 的默认根目录
# mkdir /srv/salt //建立根目录
# cp /etc/passwd /srv/salt/users //添加测试文件
# salt '*' cmd.run 'mkdir /test' //远程主机建立目录
cache:
db1:
db2:
web2:
web1:
# salt -E 'web\d' cp.get_file salt://users /test/user //实现传输文件
web2:
/test/user
web1:
/test/user
# salt '*' cmd.run 'ls /test' //查看传输效果
db1:
cache:
db2:
web2:
user
web1:
user
模块及功能:
列出全部可用模块
salt '随便一台主机名' sys.list_modules
查看模块全部功能
salt '随便一台主机名' sys.list_functions 模块名
查看模块用法
salt '随便一台主机名' sys.doc 模块名
salt '随便一台主机名' sys.doc 模块名.方法
什么是YAML:
• YAML:YAML Ain't Markup Language
• YAML的结构经过空格来展现
• 项目使用"-"来表示
• 键值对使用":"来表示
• Master和Minion的配置文件均采用YAML语法
• YAML使用一个固定的缩进风格表示数据层级结构关
• 通常每一个缩进级别由两个空格组成
• 注意不要使用tab
• 缩进是初学者容易出错的地方之一
• YAML的键值对采用冒号分隔
• YAML键值对对应python的字典
• YAML表示形式
name: test
或
name:
test
• Python字典
{'name': 'test'}
• 字典能够嵌套
hosts:
name: test
• 字典表示形式为
{
'hosts': {
'name': 'test'
}
}
• 列表项使用一个短横杠加一个空格
- test1
- test2
• 列表能够做为一个键值对的value
pkg-http:
- httpd
- php
• Python语法
{'pkg-http': ['httpd', 'php']}
Grains基础:
• Grains是saltstack最重要的组件之一
• 存储minion端的基本信息,这些信息通常都是静态的,如CPU、内核、操做系统等
• Grains存储在minion本地
• 管理员能够在minion端进行grains值的修改,如增长、删除等
Grains基础应用
• 获取minion端全部grains信息
# salt '随便一台主机名' grains.items
• 经过grains.item获取minion端的fqdn信息
# salt '随便一台主机名' grains.item fqdn
经过minion定义grains
[root@web1 ~]# vim /etc/salt/minion grains: web: apache [root@web1 ~]# systemctl restart salt-minion.service [root@web2 ~]# vim /etc/salt/minion grains: web: nginx [root@web2 ~]# systemctl restart salt-minion.service [root@sm ~]# salt '*' saltutil.sync_grains web1: db1: cache: web2: db2: [root@sm ~]# salt -G 'web:apache' test.ping web1: True [root@sm ~]# salt -G 'web:nginx' test.ping web2: True [root@sm ~]# salt 'web1' grains.item web web1: ---------- web: apache [root@sm ~]# salt 'web2' grains.item web web2: ---------- web: nginx
Pillar基础
• Pillar也是saltstack最重要的组件之一
• 做用是定义与被控主机相关的任何数据,定义好的数
据能够被其余组件使用
• 存储在master端,存放须要提供给minion的信息
• 经常使用于敏感信息,每一个minion只能访问master分配
给本身的pillar信息
• 用于常常动态变化的信息
配置pillar
• Pillar须要一个pillar_roots来维护pillar的配置
• 默认pillar_roots为/srv/pillar
• pillar_roots在Master配置文件中定义
[root@sm ~]# vim /etc/salt/master
pillar_roots:
base:
- /srv/pillar
[root@sm ~]# mkdir /srv/pillar
[root@sm ~]# systemctl restart salt-master
Pillar数据文件
• Pillar执行时须要一个名为top.sls的入口文件
• 经过top.sls文件做为入口,组织其它的pillar文件
• sls文件采用YAML格式
[root@sm ~]# cd /srv/pillar [root@sm pillar]# vim top.sls base: # 与pillar_roots定义一致 'L@web1,web2': # 过滤目标 - appweb # 用于包含 appweb 'E@db\d': - appdb - user 'cache': - user [root@sm pillar]# vim appweb.sls appname: web software: - apache - nginx [root@sm pillar]# vim appdb.sls appname: mysql [root@sm pillar]# vim user.sls users: zhang3: 1000 li4: 1001 // 获取pillar所有数据 [root@sm pillar]# salt '*' pillar.items web1: ---------- appname: web software: - apache - nginx cache: ---------- users: ---------- li4: 1001 zhang3: 1000 web2: ---------- appname: web software: - apache - nginx db2: ---------- appname: mysql users: ---------- li4: 1001 zhang3: 1000 db1: ---------- appname: mysql users: ---------- li4: 1001 zhang3: 1000 // 将pillar数据同步至minion [root@sm pillar]# salt '*' saltutil.refresh_pillar db2: True db1: True web2: True cache: True web1: True // 根据pillar值匹配minion [root@sm pillar]# salt 'web1' pillar.item software web1: ---------- software: - apache - nginx
Jinja模板:
Jinja基础
• Jinja是基于Python的模板引擎
• 在saltstack中咱们使用yaml_jinja渲染器来根据模板生产对应的配置文件
• 对于不一样的操做系统或者不一样的状况,经过jinja可让配置文件或者操做造成一种模板的编写方式
Jinja使用步骤
• 在state文件中使用"- template: jinja"声明
• 在模板文件中使用变量"{{ name }}"声明,name为变量,本身定义
• 在state文件中使用"- defautls: name: value"声明
States基础:
• States是satlstack中的配置语言
• 安装软件包、管理配置文件都须要编写一些statessls文件
• states sls使用YAML语法
查看全部states模块
salt '随便一台主机' sys.list_state_modules
查看states某个模块功能
salt '随便一台主机' sys.list_state_functions 模块名
查看states某个模块的某个方法用法
salt '随便一台主机' sys.state_doc 模块名.方法
为不一样的环境设置不一样的文件目录
[root@sm ~]# vim /etc/salt/master file_roots: base: - /srv/base dev: - /srv/dev prod: - /srv/prod [root@sm ~]# mkdir /srv/base /srv/dev /srv/prod [root@sm ~]# ls /srv/ base dev prod [root@sm ~]# systemctl restart salt-master.service [root@sm ~]# cd /srv/base/
案例1 系统初始化
配置全部机器的DNS为 202.101.224.68
修改全部机器的yum 源为本机器网络yum
修改history 能显示命令执行时间
开启路由转发功能 net.ipv4.ip_forward=1
添加用户zhangsan
为用户zhuangsan 设置默认密码 zhangsan
要求zhangsan 在第一次登陆是的时候修改密码
[root@sm base]# vim top.sls base: '*': - init.dns - init.yum - init.adduser - init.history - init.ip_forward [root@sm base]# mkdir init [root@sm base]# cd init/ [root@sm init]# vim dns.sls add_dns: file.managed: - name: /etc/resolv.conf - source: salt://file/dns.conf - user: root - group: root - mode: 644 - template: jinja - defaults: DNS_IP: 202.101.224.68 [root@sm init]# vim yum.sls create_yum: file.managed: - name: /etc/yum.repos.d/test.repo - source: salt://file/yum.repo - user: root - group: root - mode: 644 unless条件 • 当unless条件不知足时,须要执行令 onlyif条件 • 当onlyif条件知足时,须要执行令 [root@sm init]# vim adduser.sls useradd zhangsan: cmd.run: - unless: id zhangsan echo '123456' | passwd --stdin zhangsan: cmd.run: - onlyif: id zhangsan chage -d 0 zhangsan: cmd.run: - onlyif: id zhangsan [root@sm init]# vim history.sls history: file.append: - name: /etc/profile - text: - export HISTTIMEFORMAT='%F %T' [root@sm init]# cat ip_forward.sls alter_ip_forward: sysctl.present: - name: net.ipv4.ip_forward - value: 1 [root@sm init]# cat ip_forward.sls alter_ip_forward: sysctl.present: - name: net.ipv4.ip_forward - value: 1 [root@sm init]# mkdir file [root@sm init]# cd file/ [root@sm file]# vim dns.conf nameserver {{DNS_IP}} [root@sm file]# vim yum.repo [test] name=test baseurl=http://192.168.4.254/rhel7 gpgcheck=0 state.highstate会读取全部环境的top.sls文件,而且执行top.sls文件内容里面定义的sls文件,不在top.sls文件里面记录的sls则不会被执行; state.sls也能够指定读取哪一个环境 使用 saltenv = 读取环境 test = True 测试执行 不真正执行 # salt '*' state.highstate saltenv=base test=True # salt '*' state.highstate saltenv=base
案例2 部署httpd web 服务器
在实验的 web1 web2 上自动安装httpd软件包
更改httpd监听端口为8080
启动httpd 服务
pkg模块
• pkg模块能够实现软件包管理
• 管理的软件包包括红帽RPM包和Ubuntu的deb包等
• 主要的方法有:
– pkg.installed:安装软件包
– pkg.latest:保持软件包为最新版本
– pkg.remove:卸载软件包
– pkg.purge:下载软件包,删除配置文件
require条件
• 只有httpd安装了才分发配置文件
service模块
• 软件部署完毕后,须要确保服务处于运行状态,而且可以实现开机自启,这就用到了service模块
– service.running:确保服务处于运行状态
– service.enabled:开机自启
– service.disabled:开机不启动
– service.dead:确保服务处于未运行状态
使用watch
• 服务若是可以正常启动,须要确保存在配置文件,设置若是配置文件存在,才启动服务
[root@sm ~]# cd /srv/prod/ [root@sm prod]# vim top.sls prod: 'E@web[0-9]': - install_httpd [root@sm prod]# vim install_httpd.sls httpd_pkg_installed: pkg.installed: - name: httpd alter_httpd: cmd.run: - name: sed -i '/Listen 80/s/80/8080/' /etc/httpd/conf/httpd.conf - unless: sed -n '/Listen 80$/p' /etc/httpd/conf/httpd.conf - require: - pkg: httpd_pkg_installed running_httpd: service.running: - name: httpd - enable: true - restart: true - watch: - cmd: alter_httpd # salt '*' state.highstate saltenv=prod test=True # salt '*' state.highstate saltenv=prod
//这里由于配置文件中只须要更改一行 我使用的是sed 更改
//也可使用 file.managed 方法 将master的配置文件分发到客户端
案例3 部署nginx 源码包
[root@sm ~]# cd /srv/dev/ [root@sm dev]# vim top.sls dev: 'L@db1,db2': - nginx_install [root@sm dev]# mkdir nginx_install [root@sm dev]# cd nginx_install [root@sm nginx_install]# vim init.sls include: - .initpkg - .install - .nginx_init [root@sm nginx_install]# vim initpkg.sls init_pkg_install: pkg.installed: - names: - gcc - gcc-c++ - make - autoconf - openssl-devel - pcre-devel [root@sm nginx_install]# vim install.sls nginx_src_install: file.managed: - name: /usr/local/src/nginx-1.9.12.tar.gz - source: salt://nginx_install/files/nginx-1.9.12.tar.gz - user: root - group: root - mode: 644 cmd.script: - source: salt://nginx_install/files/build.sh - cwd: /usr/local/src - user: root - unless: test -d /usr/local/nginx - require: - file: nginx_src_install - pkg: init_pkg_install [root@sm nginx_install]# vim nginx_init.sls nginx_init: file.managed: - name: /usr/lib/systemd/system/nginx.service - source: salt://nginx_install/files/nginx.service - user: root - group: root - mode: 644 nginx_service: service.running: - name: nginx - enable: true - restart: true [root@sm nginx_install]# mkdir files [root@sm nginx_install]# cd files [root@sm files ]# vim build.sh #!/bin/bash useradd -s /sbin/nologin nginx tar xzf nginx-1.9.12.tar.gz cd nginx-1.9.12 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx make make install [root@sm files ]# ls build.sh // 源码安装脚本 nginx-1.9.12.tar.gz // nginx 源码包 nginx.service // nginx systemctl 系统启动文件 [root@sm files ]# vim nginx.service [Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target # salt '*' state.highstate saltenv=dev test=True # salt '*' state.highstate saltenv=dev
扩展:
Saltstack Master 配置
Master主配置文件是/etc/salt/master,经常使用的配置选项与具体功能相关,因此,当应用到相关功能时再作调整,目前保持默认就好
通用配置项:
1. interface:监听的IPv4地址
#interface: 0.0.0.0
2. IPv6:监听的IPv6的地址
#ipv6: False
3. PUBLISH_PORT:与Minion通讯的端口
#publish_port: 4505
4. MASTER_ID:当前Master节点的ID
5. USER:启动Master服务的用户
#user: root
6. MAX_OPEN_FILES:每个链接到Master的Minion ,Master都会打开一个文件描述符,改选项定义打开的最大文件数。可能报错:Too many open files
#max_open_files: 100000
7. WORKER_THREADS:最大工做线程数
#worker_threads: 5
8. RET_PORT:获取Minion返回结果的端口
#ret_port: 4506
9. PIDFILE:Master进程的pid文件 好比要杀进程时可用
#pidfile: /var/run/salt-master.pid
10. ROOT_DIR:Master运行的根目录
#root_dir: /
11.CONF_FILE:Master配置文件路径
#conf_file: /etc/salt/master
12.PKI_DIR:pki验证密钥存放路径
#pki_dir: /etc/salt/pki/master
13.MODULE_DIR:Salt模版搜索路径
#module_dirs: <no default>
# - /var/cache/salt/minion/extmods
14.CACHEDIR:默认缓存路径
#cachedir: /var/cache/salt/master
15.KEEP_JOBS:旧的任务信息保留多少个小时
#keep_jobs: 24
16.GATHER_JOB_TIMEOUT:Minion获取任务超时时间
#gather_job_timeout: 10
17.TIMEOUT:Salt API,command执行的超时时间
#timeout: 5
18.OUTPUT_FILE:SaltStack command输出文件 好比日志
#output_file: None
19.CLI_SUMMARY:显示客户端的概要信息,目标的Minion数,返回的数目,没返回的数目
#cli_summary: False
20.MAX_MINIONS:最大管理的Minions数
21.TRANSPORT:通讯模块
22.TRANSPORT:通讯模块的参数
23.MAX_EVENT_SIZE:最大的事件数
#max_event_size: 1048576
安全配置项:
1.OPEN_MODE:开发模式,若是设置为true,则任何minion都能连上Master,无需验证 很危险
#open_mode: False
2.AUTO_ACCEPT:接听全部客户端的公钥
#auto_accept: False
3.TOKEN_EXPIRE:Master新生成token的存活时间
#token_expire: 43200
4.AUTOSIGN_TIMEOUT:若是Minion的keyid出如今pki_dir/minion_autosign/keyid中,Master会自动接受该Minion的连接,这个配置项,定义这个自动接受的持续时间,超时的要从新验证接受。
# autosign_timeout: 120
5.AUTOSIGN_FILE:自动接受Minion keyid存放文件 白名单
#autosign_file: /etc/salt/autosign.conf
6.AUTOREJECT_FILE:于AUTOSIGN_FILE相反 黑名单
#autoreject_file: /etc/salt/autoreject.conf
7.PUBLISHER_ACL:对指定Minion可执行指定的命令 白名单
#publisher_acl:
# larry:
# - test.ping
# - network.*
8.PUBLISHER_ACL_BLACKLIST: 与PUBLISHER_ACL相反 黑名单
#publisher_acl_blacklist:
# users:
# - root
# - '^(?!sudo_).*$' # all non sudo users
# modules:
# - cmd
9.EXTERNAL_AUTH:指定验证方法
#external_auth:
# pam:
# fred:
# - test.*
10.FILE_RECV:容许minion向master发送文件 一个特别危险的配置项
#file_recv: False
11.FILE_RECV_MAX_SIZE:容许minion向master发送最大文件(MB)
#file_recv_max_size: 100
12.ROTATE_AES_KEY:轮换AES key
13.MASTER_SIGN_PUBKEY,
MASTER_SIGN_KEY_NAM,
MASTER_PUBKEY_SIGNATURE,
MASTER_USE_PUBKEY_SIGNATURE, 网络通讯签名相关
Saltstack Minion 配置
通用配置项:
1.MASTER:master的hostname,能够是多个 ip也行 域名也行
#master:
2.MASTER_TYPE:str,一对一 ; failover,容错的,这种状况下,master必须是多个,minion会逐个通讯,func:动态生成的
# master_type: str
3.MAX_EVENT_SIZE:最多接受master推送过来的事件数目
#max_event_size: 1048576
4.MASTER_FAILBACK:回滚,若是设置为true,此时master_type必须是failover
#master_failback: False
5.MASTER_ALIVE_INTERVAL:心跳检测
#master_alive_interval: 30
6.RANDOM_MASTER:若是master是多个,则选择算法是不是随机的
#random_master: False
7.MASTER_PORT:Master端口
#master_port: 4506
8.USER:SaltStack启动用户
#user: root
9.SUDO_USER:能够获取sudo权限的用户
#sudo_user: root
10.ID:Minion的ID,会出现的Master的链接Minion的列表中
#id:
11.MASTER_TRIES:重连Master的次数
#master_tries: 1
12.AUTH_TRIES:auth 重试次数
# auth_tries: 10
13.AUTH_TIMEOUT:auth超时
#auth_tries: 7
14.TCP_PUB_PORT:发布消息端口
#tcp_pub_port: 4510
15.TCP_PULL_PORT:获取消息端口
#tcp_pull_port: 4511
安全配置项:
1. open_mode:能够用来清理master key,修改成true,重启,修改成false,重启 经过这些步骤来清理master key
#open_mode: False
2.MASTER_FINGER:master指纹,用来验证master,在master上运行salt-key-F master获取
#master_finger: ''
3.VERIFY_MASTER_PUBKEY_SIGN:是否验证PUBKEY的签名文件
4.MASTER_SIGN_KEY_NAME:签名文件
5.ALWAYS_VERIFY_SIGNATURE:是否必须验证