SaltStack入门到精通Word文档下载推荐.docx
《SaltStack入门到精通Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SaltStack入门到精通Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
10.#
master跟minion的通讯端口,用于文件服务,认证,接受返回结果等
4506
12.
13.#
如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口
15.
16.#
指定pid文件位置
/var/run/
18.
19.#
saltstack
可以控制的文件系统的开始位置
/
21.
22.#
日志文件地址
/var/log/
24.
25.#
分组设置
'
*'
28.
29.#
salt
state执行时候的根目录
/etc/salt/file
33.
34.#
设置pillar
的根目录
/etc/salt/pillar
配置salt-minion:
/etc/salt/minion
minion的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
04.#
salt运行的用户权限
master的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
master通讯端口
备份模式,minion是本地备份,当进行文件管理时的文件备份模式
minion
执行salt-call时候的输出方式
nested
minion等待master接受认证的时间
失败重连次数,0表示无限次,非零会不断尝试到设置值后停止尝试
重新认证延迟时间,可以避免因为master的key改变导致minion需要重新认证的syn风暴
60
27.
28.#
日志文件位置
/var/logs/
30.
31.#
文件路径基本位置
/etc/salt/minion/file
35.
36.
37.#
pillar基本位置
/data/salt/minion/pillar
启动SaltStack
启动master
salt-master
restart
启动minion
salt-minion
07.#------------------------------------------
08.#
也可以使用下面的启动方式
09./usr/bin/
/usr/bin/salt-master
-d
10./usr/bin/
/usr/bin/salt-minion
注意:
saltstack是使用python2的语言编写,对python3的兼容性不好,请使用python2的环境
测试SaltStack
接受salt-minion的认证请求
01.[root@yw_home
salt]#
salt-key
Keys:
06.[root@yw_home
salt-key
-a
following
keys
are
going
to
be
accepted:
for
minion
accepted.
去除salt-minion的认证
1.##
如果觉得该minion不需要了,可以***
2.[root@yw_home
-d
the
keys:
deleted.
更多的salt-key操作,会在另一个文章中说明
开始测试saltstack
1.[root@yw_home
--show-timeout
如果返回true则成功,如果无结果,则说明连接为失败,可以检查防火墙是否开放了4506,4505端口,或是重启salt-minion再试试,有时候master跟minion版本不同的问题,也会导致连接失败
SaltStack入门到精通第二篇:
Salt-master配置文件详解
#主配置/etc/salt/master
interface
默认值:
所有的网络地址接口)
绑定到本地的某个网络地址接口
publish_port
设置master与minion的认证通信端口
user
运行salt进程的用户
max_open_files
100000
每一个minion连接到master,至少要使用一个文件描述符,如果足够多的minion连接到master上,你将会从控制台上看到salt-mastercrashes:
Toomanyopenfiles:
335)
Aborted(coredumped)
默认值这个值取决于ulimit-Hn的值,即系统的对打开文件描述符的硬限制
如果你希望重新设置改值或者取消设置,记住这个值不能超过硬限制,提高硬限制取决于你的操作系统或分配,一个好的方法是internet找到对应操作系统的硬限制设置,比如这样搜索:
raisemaxopenfileshardlimitdebian
worker_threads
5
启动用来接收或应答minion的线程数。
如果你有很多minion,而且minion延迟你的应答,你可以适度的提高该值.
在点对点的系统环境中使用时,该值不要被设置为3以下,但是可以将其设置为1
ret_port
这个端口是master用来发送命令或者接收minions的命令执行返回信息
pidfile
指定master的pid文件位置
root_dir
指定该目录为salt运行的根目录,改变它可以使salt从另外一个目录开始运行,好比chroot
pki_dir
/etc/salt/pki
这个目录是用来存放pki认证秘钥
cachedir
/var/cache/salt
这个目录是用来存放缓存信息,特别是salt工作执行的命令信息
keep_jobs
24
设置保持老的工作信息的过期时间,单位小时
job_cache
True
设置master维护的工作缓存,这是一个很好的功能,当你的Minons超过5000台时,他将很好的承担这个大的架构,关闭这个选项,之前的工作执行以及工作系统将无法被利用,一般不推荐关掉改选项,开启改选项将会是很明智的,他将使master获得更快的IO系统
ext_job_cache
”
对所有的minions使用指定的默认值returner,当使用了这个参数来指定一个returner并且配置正确,minions将会一直将返回的数据返回到returner,这也会默认值禁用master的本地缓存
redis
minion_data_cache
miniondatacache是关于minion信息存储在master上的参数,这些信息主要是pillar和grains数据.这些数据被缓存在cachedir定义的目录下的minion目录下以minion名为名的目录下并且预先确定哪些minions将从执行回复
enforce_mine_cache
False
默认情况下当关闭了minion_data_cache,mine将会停止工作,因为mine是基于缓存数据,通过启用这个选项,我们将会显示的开启对于mine系统的缓存功能
sock_dir
/tmp/salt-unix
指定unixsocket主进程通信的socket创建路径
master的安全配置
open_mode
open_mode是一个危险的安全特性,当master遇到pki认证系统,秘钥混淆和身份验证失效时,打开open_mode,master将会接受所有的身份验证。
这将会清理掉pki秘钥接受的minions。
通常情况下open_mode不应该被打开,它只适用于短时间内清理pkikeys,若要打开它,可将值调整为True
auto_accept
开启auto_accept。
这个设置将会使master自动接受所有发送公钥的minions
autosign_file
/etc/salt/
如果autosign_file的值被指定,那么autosign_file将会通过该输入允许所有的匹配项,首先会搜索字符串进行匹配,然后通过正则表达式进行匹配。
这是不安全的
client_acl
{}
开启对系统上非root的系统用户在master上执行特殊的模块,这些模块名可以使用正则表达式进行表示
pkg.*
client_acl_blacklist
黑名单用户或模块
这个例子表示所有非sudo用户以及root都无法通过cmd这个模块执行命令,默认情况改配置是完全禁用的
^(!
sudo_).*$'
#
all
non
sudo
users
cmd
external_auth
salt的认证模块采用外部的认证系统用来做认证和验证用户在salt系统中的访问区域
test.*
token_expire
默认:
43200
新令牌生成的时间间隔,单位秒,默认是12小时
file_recv
允许minions推送文件到master上,这个选项默认是禁用的,出于安全考虑
#######################
master模块管理
runner_dirs
[]设置搜索runner模块的额外路径
[]
cython_enable
设置为true来开启对cython模块的编译
master状态系统设置
state_verbose
state_verbose允许从minions返回更多详细的信息,通常清空下只返回失败或者已经更改,但是将state_verbose设置为True,将会返回所有的状态检查
state_output
full
state_output的设置将会改变信息输出的格式,当被设置为”full”时,将全部的输出一行一行的显示输出;
当被设置为”terse“时,将会被缩短为一行进行输出;
当被设置为”mixed”时,输出样式将会是简洁的,除非状态失败,这种情况下将会全部输出;
当被设置为”change”时,输出将会完全输出除非状态没有改变
state_top
状态系统使用一个入口文件告诉minions在什么环境下使用什么模块,这个状态入口文件被定义在基础环境的相对根路径下
external_nodes
None
这个外部节点参数允许salt来收集一些数据,通常被放置在一个入口文件或外部节点控制器.外部节点的选择是可执行的,将会返回ENC数据,记住如果两者都启用的话salt会将外部节点和入口文件的结果进行综合汇总。
cobbler-ext-nodes
renderer
yaml_jinja
使用渲染器用来渲染minions的状态数据
failhard
设置一个全局的failhard表示,当单个的状态执行失败后,将会通知所有的状态停止运行状态
test
如果真的要作出改变或者仅仅通知将要执行什么改变时设置所有的状态调用为test
test:
False
master文件服务器设置
fileserver_backend
roots
salt支持模块化的后端文件系统服务器,它允许salt通过第三方的系统来管理收集文件并提供给minions使用,可以配置多个后端文件系统,这里支持gitfs、hgfs、roots、s3fs文件调用的搜索顺序按照后台文件系统的配置顺序来搜索,默认的设置只开启了标准的后端服务器roots,具体的根选项配置通过file_roots参数设置
gitfs
file_roots
/srv/salt
salt运行一个轻量级的文件服务器通过ZeroMQ对minions进行文件传输,因此这个文件服务器是构造在master的守护进程中,并且不需要依赖于专用的端口
文件服务器的工作环境传递给master,每一个环境可以有多个跟目录,但是相同环境下多个文件的子目录不能相同,否则下载的文件将不能被可靠的保证,一个基础环境依赖于主的入口文件,如:
/srv/salt/dev/services
/srv/salt/dev/states
/srv/salt/prod/services
/srv/salt/prod/states
hash_type
md5
hash_type是用来当发现在master上需要对一个文件进行hash时的hash使用的算法,默认是md5.但是它也支持sha1,sha224,shar256,shar384,shar512
file_buffer_size
1048576
文件服务器的缓存区大小
pillar配置
pillar_roots
/srv/pillar
设置不同的环境对应的存放pillar数据的目录,这个配置和file_roots参数配置一样
/srv/pillar/dev
/srv/pillar/prod
ext_pillar
当进行pillar数据收集时,这个ext_pillar参数允许调用任意数量的外部pillar接口,这个配置是基于ext_pillar函数,你可以从这个找到这个函数saltstack/salt/blob/develop/salt/pillar
默认情况下,这个ext_pillar接口没有配置运行
None
hiera:
/etc/
cmd_yaml:
cat
/etc/salt/yaml
reclass:
/etc/reclass
从这里可以查到pillar的一些额外细节
syndicserver配置
syncdic是saltmaster用来通过从整体架构中高于自己层级的master或者syndic接收命令传递给minions的中间角色。
使用syndic非常简单,如果这个master在整体架构中,他的下级存在syndicserver,那么需要将master的配置文件中的”order_master”值设置为True,如果这个master还需要运行一个syndic进程,扮演另外一个角色,那么需要设置主masterserver的信息(上一级master)
千万别忘记了,这将意味着它将与其他master共享它的minion的id和pki_dir
order_masters
当额外的数据需要发送和传递,并且这个master控制的minions是被低等级的master或syndic直接管理下,那么”order_masters”这个值必须得设置为True
syndic_master
如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级的master的地址
masterofmasters
syndic_master_port
如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口
syndic_log_file
为syndic进程指定日志文件
syndic_pidfile
为syndic进程指定pid文件
PeerPublish设置
saltminions可以向其他minions发送命令,但是仅仅在minion允许的情况下。
默认情况下”PeerPublication”是关闭的,当需要开启的时候,需要开启对应的minion和对应的命令,这样可以允许根据个人的minions安全的划分出命令
peer
这个配置使用正则表达式去匹配minions并且是一个正则表达式列表函数,下面这个例子将允许名为的minion认证通过后执行test和pkg模块中的函数
这将允许所有的minion执行所有的命令
2..*:
.*
这样的配置是极不推荐的,因为任何人得到架构中的任何一个minion即可拥有所有的minions,这是不安全的
peer_run
peer_run参数是用来打开runners在master所允许的minions上,peer_run的配置匹配格式和peer参数的配置一样
下面这个例子允许的minion执行runner
NODEGROUPS
minions允许通过nodegroups来分成多个逻辑组,每个组由一个组名和复合模式组成
or
bl*.'
G@os:
Debian
and
Master日志设置
log_file
/var/log/salt/master
master的日志可以发送到一个普通文件,本地路径名或者网络位置,更多详情
例如:
log_level
warning
按照日志级别发送信息到控制台,更多详情
log_level_logfile
按照日志级别发送信息到日志文件,更多详情
log_datefmt
%H:
%M:
%S
发送到控制台信息所用的日期时间格式,更多详情
%S'
log_datefmt_logfile
默认值:
%Y-%m-%d%H:
发送到日志文件信息所用的日期时间格式,更多详情
%Y-%m-%d
log_fmt_console
[%(levelname)-8s]%(message)s
控制台日志信息格式,更多详情
[%(levelname)-8s]
%(message)s'
log_fmt_logfile
%(asctime)s,%(msecs)[%(name)-17s][%(levelname)-8s]%(message)s
%(asctime)s:
2003-07-0816:
49:
45
%(msecs):
当前时间的毫秒部分
%(name):
日志记录调用器的名字
%(levelname):
日志记录级别
%(message)s:
日志详细信息
日志文件信息格式,更多详情
%(asctime)s,%(msecs)
[%(name)-17s][%(levelname)-8s]
log_granular_levels
这可以更加具体的控制日志记录级别,更多详情
Include配置
default_include
*.conf
master可以从其他文件读取配置,默认情况下master将自动的将*.conf中的配置读取出来并应用,其中目录是相对存在于主配置文件所在的目录
include
notdefined
master可以包含其他文件中的配置,要启用此功能,通过此参数定义路径或文件,此路径可以是相对的也可以是绝对的,相对的,会被看作相对于主配置文件所在的目录,路径中还可以使用类似于shell风格的通配符,如果没有文件匹配的路径传递给此选项,那么master将会在日志中记录一条警告的消息
Include
files
from
a
directory
in
same
02.#
as
master
config
file
*
04.
05.#
single
extra
file
into
configuration
/etc/roles/webserver
07.
08