最新消息:

salt-master配置文件详解

salt admin 3322浏览 0评论

本文系统:centos6.5

[root<span class="variable">@master</span> salt]<span class="comment"># rpm -qa |grep salt*</span>
salt-minion-<span class="number">2014.1</span>.<span class="number">7</span>-<span class="number">3</span>.el6.noarch
salt-master-<span class="number">2014.1</span>.<span class="number">7</span>-<span class="number">3</span>.el6.noarch
salt-<span class="number">2014.1</span>.<span class="number">7</span>-<span class="number">3</span>.el6.noarch

salt-master位置:

/etc/salt/master

# The address of the interface to bind to #interface: 0.0.0.0      # 默认值:0.0.0.0(所有的网络地址接口); 绑定到本地的某个网络地址接口

<span class="attribute">interface</span>: <span class="string">192.168.28.141</span>

# The tcp port used by the publisher #publish_port: 4505     # 默认值:4505  ; 设置master与minion的认证通信端口

<span class="attribute">publish_port</span>: <span class="string">4505</span>

#user: root            # 默认值:root ;运行salt进程的用户

<span class="attribute">user</span>: <span class="string">root</span>

#max_open_files: 100000   #默认值:100000 ;salt-master可以打开的最大句柄数

<span class="attribute">max_open_files</span>: <span class="string">100000</span>

#worker_threads: 5       #默认值:5 ;启动用来接收或应答minion的线程数

<span class="attribute">worker_threads</span>: <span class="string">5</span>

#ret_port: 4506         #默认值:4506 ;master用来发送命令或者接收minions的命令执行返回信息

<span class="attribute">ret_port</span>: <span class="string">4506</span>

#pidfile: /var/run/salt-master.pid  #默认值:/var/run/salt-master.pid ;指定master的pid文件位置

<span class="attribute">pidfile</span>: <span class="string">/var/run/salt-master.pid</span>

#root_dir: /         # 默认值:/  ; 该目录为salt运行的根目录,改变它可以使salt从另外一个目录开始运行,好比chroot

<span class="attribute">root_dir</span>: <span class="string">/</span>

#pki_dir: /etc/salt/pki/master  # 默认值:/etc/salt/pki ; 这个目录是用来存放pki认证秘钥

<span class="attribute">pki_dir</span>: <span class="string">/etc/salt/pki/master</span>

#cachedir: /var/cache/salt/master # 默认值:/var/cache/salt ; 用来存放缓存信息,salt工作执行的命令信息

<span class="attribute">cachedir</span>: <span class="string">/var/cache/salt</span>

#verify_env: True  # 默认值 : True ; 在启动验证和设置权限配置目录

<span class="attribute">verify_env</span>: <span class="string">True</span>

#keep_jobs: 24   #默认值:24 ;设置保持老的工作信息的过期时间,单位小时

<span class="attribute">keep_jobs</span>: <span class="string">24</span>

#job_cache: True   # 默认值:True ;设置master维护的工作缓存,这是一个很好的功能,当你的Minons超过5000台时,他将很好的承担这个大的架构,关闭这个选项,之前的工作执行以及工作系统将无法被利用,一般不推荐关掉改选项,开启改选项将会是很明智的,他将使master获得更快的IO系统

<span class="attribute">job_cache</span>: <span class="string">True</span>

#timeout: 5  #默认值:5 ;master执行命令的可以接受的延迟时间

<span class="attribute">timeout</span>: <span class="string">5</span>

#output: nested   #默认值:nested ;salt命令的输出格式

<span class="attribute">output</span>: <span class="string">nested</span>

#sock_dir: /var/run/salt/master  #默认值:/var/run/salt/master ; 指定unix socket主进程通信的socket创建路径

<span class="attribute">sock_dir</span>: <span class="string">/var/run/salt/master</span>

#minion_data_cache: True  # 默认值:True ;minion data cache是关于minion信息存储在master上的参数,这些信息主要是pillar 和 grains数据.这些数据被缓存在cachedir定义的目录下的minion目录下以minion名为名的目录下并且预先确定哪些minions将从 执行回复

<span class="attribute">minion_data_cache</span>: <span class="string">True</span>

#include: /etc/salt/extra_config #默认值:/etc/salt/extra_config ;包含其他路径上的配置文件

<span class="attribute">include</span>: <span class="string">/etc/salt/extra_config</span>

#####        Security settings       #####

#open_mode: False  #默认值 :False ;open_mode是一个危险的安全特性,当master遇到pki认证系统,秘钥混淆和身份验证失效时,打开open_mode,master将会接受 所有的身份验证。这将会清理掉pki秘钥接受的minions。通常情况下open_mode不应该被打开,它只适用于短时间内清理pki keys,若要打开它,可将值调整为True

<span class="attribute">open_mode</span>: <span class="string">False</span>

#auto_accept: False #默认值:False ;这个设置将会使master自动接受所有发送公钥的minions

<span class="attribute">auto_accept</span>: <span class="string">False</span>

#autosign_file: /etc/salt/autosign.conf #默认值:/etc/salt/autosign.conf ;如果autosign_file的值被指定,那么autosign_file将会通过该输入允许所有的匹配项,首先会搜索字符串进行匹配,然后通过正则表达式进行匹配。这是不安全的

<span class="attribute">autosign_file</span>: <span class="string">/etc/salt/autosign.conf</span>

#client_acl: # 默认值:{} ;开启对系统上非root的系统用户在master上执行特殊的模块,这些模块名可以使用正则表达式进行表示

client_acl:
  larry:
    - test.ping
    - network.*

#client_acl_blacklist  #默认值:{} ;黑名单用户或模块,表示所有非sudo用户以及root都无法通过cmd这个模块执行命令,默认情况改配置是完全禁用的

client_acl_blacklist:
  users:
    - root
    - '^(?!sudo_).*$'   #  all non su<span class="operator"><span class="keyword">do</span> users
  modules:
    - cmd</span>

#external_auth:  #默认值:{} ; salt的认证模块采用外部的认证系统用来做认证和验证用户在salt系统中的访问区域

  pam:
    fred:
      - test.*

#file_recv: False #默认值:False ; 允许minions推送文件到master上,这个选项默认是禁用的,出于安全考虑

<span class="attribute">file_recv</span>: <span class="string">False</span>

#file_recv_max_size: 100 # 默认值:100 设置一个hard-limit文件的大小,可以推到master。

<span class="attribute">file_recv_max_size</span>: <span class="string">100</span>

#####      State System settings     #####

#state_top: top.sls #默认值:top.sls ; 状态系统使用一个入口文件告诉minions在什么环境下使用什么模块,这个状态入口文件被定义在基础环境的相对根路径下

<span class="attribute">state_top</span>: <span class="string">top.sls</span>

#renderer: yaml_jinja #默认值:yaml_jinja ;使用渲染器用来渲染minions的状态数据

<span class="attribute">renderer</span>: <span class="string">yaml_jinja</span>

#failhard: False #默认值:False ; 设置一个全局的failhard表示,当单个的状态执行失败后,将会通知所有的状态停止运行状态

<span class="attribute">failhard</span>: <span class="string">False</span>

#state_verbose: True #默认值:False ;state_verbose允许从minions返回更多详细的信息,通常清空下只返回失败或者已经更改,但是将state_verbose设置为True,将会返回所有的状态检查

<span class="attribute">state_verbose</span>: <span class="string">True</span>

##state_output: full #默认值:full ; state_output的设置将会改变信息输出的格式,当被设置为”full”时,将全部的输出一行一行的显示输出;当被设置为”terse“时,将会 被缩短为一行进行输出;当被设置为”mixed”时,输出样式将会是简洁的,除非状态失败,这种情况下将会全部输出;当被设置为”change”时,输出 将会完全输出除非状态没有改变

<span class="attribute">state_output</span>: <span class="string">full</span>

#####      File Server settings      #####

# file_roots: # 默认值: base: \n\t - /srv/salt ; salt运行一个轻量级的文件服务器通过ZeroMQ对minions进行文件传输,因此这个文件服务器是构造在master的守护进程中,并且不需要依赖于专用的端口

文件服务器的工作环境传递给master,每一个环境可以有多个根目录,但是相同环境下多个文件的子目录不能相同,否则下载的文件将不能被可靠的保证,一个基础环境依赖于主的入口文件,

 Example:
 file_roots:
   base:
     - <span class="regexp">/srv/</span>salt/
   dev:
     - <span class="regexp">/srv/</span>salt/dev/services
     - <span class="regexp">/srv/</span>salt/dev/states
   prod:
     - <span class="regexp">/srv/</span>salt/prod/services
     - <span class="regexp">/srv/</span>salt/prod/states

#hash_type: md5  # 默认值:md5 ; hash_type是用来当发现在master上需要对一个文件进行hash时的hash使用的算法,默认是md5.但是它也支持sha1,sha224,shar256,shar384,shar512

<span class="attribute">hash_type</span>: <span class="string">md5</span>

#file_buffer_size: 1048576  # 默认值:1048576 ;文件服务器的缓存区大小

<span class="attribute">file_buffer_size</span>: <span class="string">1048576</span>

#fileserver_backend:  # 默认值: fileserver_backend: \n\t - roots ;salt支持模块化的后端文件系统服务器,它允许salt通过第三方的系统来管理收集文件并提供给minions使用,可以配置多个后端文件系统,这里支 持gitfs、hgfs、roots、s3fs文件调用的搜索顺序按照后台文件系统的配置顺序来搜索,默认的设置只开启了标准的后端服务器roots,具 体的根选项配置通过file_roots参数设置

fileserver_backend:
  - git
  - roots

#####         Pillar settings        #####

#pillar_roots:  # 默认值: base: \n\t – /srv/pillar 设置不同的环境对应的存放pillar数据的目录,这个配置和file_roots参数配置一样

pillar_roots:
    base:
        - <span class="regexp">/srv/</span>pillar
    dev:
       - <span class="regexp">/srv/</span>pillar/dev
    prod:
        - <span class="regexp">/srv/</span>pillar/prod

#####         Logging settings       #####

#log_file: /var/log/salt/master # 默认值:/var/log/salt/master ;master的日志可以发送到一个普通文件,本地路径名或者网络位置

eg:
log_file: /<span class="keyword">var</span>/log/salt/master
log_file: 
log_file: udp:<span class="comment">//loghost:10514</span>

#log_level: warning  #默认值:warning ; 按照日志级别发送信息到控制台 可选项:# One of ‘garbage’, ‘trace’, ‘debug’, info’, ‘warning’, ‘error’, ‘critical’.

<span class="attribute">log_level</span>: <span class="string">warning</span>

#log_level_logfile: warning #默认值:warning ; 按照日志级别发送信息到日志文件

<span class="attribute">log_level_logfile</span>: <span class="string">warning</span>

#log_datefmt: ‘%H:%M:%S’  #默认值:%H:%M:%S ;发送到控制台信息所用的日期时间格式,更多详情

<span class="attribute">log_datefmt</span>: <span class="string">'%H:%M:%S'</span>

log_fmt_console

默认值: [%(levelname)-8s] %(message)s

控制台日志信息格式,

<span class="attribute">log_fmt_console</span>: <span class="string">'[%(levelname)-8s] %(message)s'</span>

log_fmt_logfile

默认值: %(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s

%(asctime)s:2003-07-08 16:49:45

%(msecs)03.0f:当前时间的毫秒部分

%(name):日志记录调用器的名字

%(levelname):日志记录级别

%(message)s:日志详细信息

<span class="attribute">log_fmt_logfile</span>: <span class="string">'%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s'</span>

log_granular_levels  #默认值:{} ; 这可以更加具体的控制日志记录级别

#####         Node Groups           #####

nodegroups:
   webgroup1: 'L@_host_serv_1.lansgg.com,_host_serv_1.lansgg.com'

上面配置是我这边测试用;编辑后,重启master

[root<span class="variable">@master</span> salt]<span class="comment"># salt -N webgroup1 test.ping</span>

ERFBbe

高级用法:

关于组的混合匹配:( Compound matchers)

y2eIf2

匹配中可以使用and、or及not等boolean型操作

例如,想匹配所有minion中主机名(minion id)以webserv开头并且运行在Debian系统上或者minion的主机名(minion id)匹配正则表达式web-dc1-srv.*:

salt -C ‘webserv* and G@os:Debian or E@web-dc1-srv.*’ test.ping

转载请注明:爱开源 » salt-master配置文件详解

您必须 登录 才能发表评论!