SaltStack 入门到精通第三篇:Salt-Minion配置文件详解

SaltStack 入门到精通第三篇:Salt-Minion配置文件详解

作者:ArlenJ  发布日期:2014-06-09 17:52:16

##### 主要配置设置 #####


配置 默认值 说明 例子
default_include minion.d/*.conf master可以从其他文件读取配置,默认情况下master将自动的将master.d/*.conf中的配置读取出来并应用,其中master.d目录是相对存在于主配置文件所在的目录
default_include: minion.d/*.conf

master  salt master服务器的ID master : salt
ipv6 False minion是否应该通过IPV6连接master ipv6 : False
retry_dns 30 minion在解析master的ip失败后的重试等待时间,设置为0,则关闭重试 retry_dns : 30
user root minion的运行用户,关系到minion执行命令的权限 user : root
pidfile
/var/run/salt-minion.pid

minion的pid文件位置
pidfile: /var/run/salt-minion.pid

root_dir  / 指定该目录为salt运行的根目录,改变它可以使salt从另外一个目录开始运行,好比chroot  root_dir: /
pki_dir /etc/salt/pki/minion 存储PIK信息的目录
pki_dir: /etc/salt/pki/minion

id   不指定的话,salt通过socket.getfqdn()来获取主机的名称来作为标识,指定给ID,作为minion与master交互的身份标识 id: 192.168.0.100
append_domain   指定一个主机名称或是一个域名,当socket.getfqdn()获取主机标识失败时候,可以用来作为替补ID append_domain : 192.168.0.100
grains  
使用sls文件给minion自定义静态的grain信息。

grains相当于对minion特别信息的匹配对象组,例如例子里面的匹配粒子信息中roles值为webserber,memcache的minion


## 注意sls文件是利用缩进两个空格来作为缩进标识

grains:

roles:

- webserver

- memcache

deployment: datacenter4

cabinet: 13

cab_u: 14-15

cachedir
/var/cache/salt/minion

这个目录是用来存放缓存信息,特别是salt工作执行的命令信息 cachedir: /var/cache/salt/minion
verify_env True 启动时候对配置目录进行验证并设置权限 verify_env: True
cache_jobs False minion会在本地缓存salt执行过的命令返回数据。可以减少命令执行时间,减低IO,但结果可能不会实时 cache_jobs: False
sock_dir /var/run/salt/minion minion socke保存目录 sock_dir: /var/run/salt/minion
output nested 设置salt-call的默认输出方式,nested是使用默认设置的来输出 output: nested
color True 是否对输出结果进行颜色渲染 color : True
backup_mode minion 当进行文件更新,修改,***操作时,备份文件的方式,minion是本地进行备份
/etc/ssh/sshd_config:

file.managed:

- source: salt://ssh/sshd_config

- backup: minion

acceptance_wait_time 10 等待master接受minion的认证时间
acceptance_wait_time: 10

acceptance_wait_time_max 0 断线重试次数,如果设置为0,无限次重试,如果大于0,则连接重试到该设置值
acceptance_wait_time_max: 0

random_reauth_delay 60 随机重认证间隔(秒),例如当master修改key时,所有的minion需要重新认证,这个时候容易产生syn风暴,设置该随机值,可以使minion分不同时间进行重新认证,避免该问题 random_reauth_delay:60
loop_interval 60
minion定时任务执行时间间隔


loop_interval: 60

dns_check True 确保原先的dns解析是正常的 dns_check: True
ipc_mode ipc windows缺少IPC协议支持,而是使用更慢的TCP来作为内部进程交流的协议,在windows上需要设置为tcp
ipc_mode: ipc

tcp_pub_port  4510 当设置为tcp模式时候,该参数覆盖掉原先minon指定的tcp端口 tcp_pub_port: 4510
tcp_pull_port  4511 tcp_pull_port: 4511
include /etc/salt/extra_config 可以包含其他文件中的配置,要启用此功能,通过此参数定义路径或文件,此路径可以是相对的也可以是绝对的,相对的,会被看作相对于主配置文件所在的目录,路径中还可以使用类似于shell风格的通配符,如果没有文件匹配的路径传递给此选项,那么master将会在日志中记录一条警告的消息 
include:

- /etc/salt/extra_config

- /etc/roles/webserver



#####   Minion 模块管理配置    #####

disable_modules [] 限制允许执行的模块,对特别的权限可以进行设置,防止服务器重启等 disable_modules: [cmd,test]
module_dirs  [] 模块可以通过指定任意目录进行加载;指定一系列的外部目录用于搜索minion的模块以及returners。指定的路径必须给minion完全的操作权限
module_dirs: []

returner_dirs [] returner_dirs: []
states_dirs [] states_dirs: []
render_dirs [] render_dirs: []
providers    minion的模块provider可以通过参数providers来进行特别指定
providers:

pkg: yumpkg5

ython_enable False 允许加载加密的模块 ython_enable: False
       
       
       


#####    State 管理设置    #####

renderer
yaml_jinja

state配置文件支持下面的配置语法,通过执行该参数,告诉saltstatck解析state模板的语言方法

# yaml_jinja

# yaml_mako

# yaml_wempy

# json_jinja

# json_mako

# json_wempy

renderer: yaml_jinja
failhard False 设置一个全局的failhard表示,当单个的状态执行失败后,将会通知所有的状态停止运行状态 failhard: False
autoload_dynamic_modules True 自动发现并加载master上的模块
autoload_dynamic_modules: True

clean_dynamic_modules True 如果发现master上的模块已经清除,则自动清楚对应的模块 clean_dynamic_modules : True
environment None master在运行states的时候,通常不会把minion分割出来给任意一个单独的环境,但在minion端,可以自行进行独立的环境设置 environment:None

state_top

top.sls 指定top.sls文件的位置
state_top: top.sls


startup_states 

‘‘
在minion daemon开始时执行states.

# ‘highstate‘ -- 执行 state.highstate

# ‘sls‘ -- 读取 sls_list 参数配置的路径下的sls文件列表并执行

# ‘top‘ -- 读取top_file参数设置的文件并执行master上面设置的sls配置


startup_states: ‘‘

sls_list   当startup_states配置为sls,该参数列出minion要运行的states文件
sls_list:

- edit.vim

- hyper

top_file " 当startup_states是top时,指定要执行的top文件 top_file: ‘‘


#####     文件目录设置    #####

#########################

file_client remote 设置minion的文件客户端,reomote,默认选项,minon会到master去查找文件;设置为local,则minion会在本地查找配置文件 file_client: remote
file_roots
file_roots:

base:

- /srv/salt

设置文件客户端路径
file_roots:

base:

- /srv/salt/

dev:

- /srv/salt/dev/services

- /srv/salt/dev/states

prod:

- /srv/salt/prod/services

- /srv/salt/prod/states


fileserver_limit_traversal 

False 设置saltstack查找state文件时候,仅遍历查找带sls后缀的文件或是带_modules后缀的目录
fileserver_limit_traversal: False

pillar_roots
pillar_roots:

base:

- /srv/pillar

当file_client设置为local时候,该参数制定pillar的搜索路径
pillar_roots:

base:

- /srv/pillar



######       安全设置       #####


open_mode

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

permissive_pki_access False   permissive_pki_access:False
state_verbose True state_verbose允许从minions返回更多详细的信息,通常清空下只返回失败或者已经更改,但是将state_verbose设置为True,将会返回所有的状态检查 state_verbose:True
state_output full state_output的设置将会改变信息输出的格式,当被设置为”full”时,将全部的输出一行一行的显示输出;当被设置为”terse“时,将会被缩短为一行进行输出;当被设置为”mixed”时,输出样式将会是简洁的,除非状态失败,这种情况下将会全部输出;当被设置为”change”时,输出将会完全输出除非状态没有改变 state_output:full
master_finger ‘‘   master_finger:‘‘


######         Thread 设置        #####

multiprocessing True 多线程支持 multiprocessing: True


#####         Logging 设置       #####

log_file /var/log/salt/minion log输出路径设置
#log_file: /var/log/salt/minion

#log_file: file:///dev/log

#log_file: udp://loghost:10514

#

#log_file: /var/log/salt/minion

#key_logfile: /var/log/salt/key

log_level warning
控制台(console)日志默认输出等级:

‘garbage‘, ‘trace‘, ‘debug‘, info‘, ‘warning‘, ‘error‘, ‘critical‘

log_level: warning
log_level_logfile warning
日志文件输出等级:

‘garbage‘, ‘trace‘, ‘debug‘, info‘, ‘warning‘, ‘error‘, ‘critical‘.

log_level_logfile:warning
log_datefmt ‘%H:%M:%S‘ 控制台日志日期格式
log_datefmt: ‘%H:%M:%S‘

log_datefmt_logfile %Y-%m-%d %H:%M:%S‘ 日志文件日期格式 log_datefmt_logfile: ‘%Y-%m-%d %H:%M:%S‘
log_fmt_console ‘[%(levelname)-8s] %(message)s‘ 控制台日志格式
log_fmt_console: ‘[%(levelname)-8s] %(message)s‘

log_fmt_logfile ‘%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s‘ 日志文件信息格式
log_fmt_logfile: ‘%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s‘

log_granular_levels {} 更加高级的指定日志输出
log_granular_levels:

‘salt‘: ‘warning‘,

‘salt.modules‘: ‘debug‘



######      Module 配置      #####

test True 指定允许所有的模块运行测试模式 test:True
test.foo foo 给测试模块test.foo指定一个简单的值 test.foo: foo
test.bar
[baz,quo]

列表的测试模块值 test.bar: [baz,quo]

test.baz

{spam: sausage, cheese: bread} 测试模块指定字典格式的值
test.baz: {spam: sausage, cheese: bread}

时间: 2024-07-30 23:58:00

SaltStack 入门到精通第三篇:Salt-Minion配置文件详解的相关文章

SaltStack 入门到精通 - 第七篇: Targeting

什么是Targeting? Targeting minions 是指那些minion会作为运行命令或是执行状态的目标.这些目标可以是一个主机名,系统信息,定义的分组,甚至是自定义的绑定的对象. 例如命令  salt web1 apache.signal restart 可以重启ID 为web1的minion的apache.当然也可以在top文件中使用web1来作为目标匹配的内容: base:   'web1':     - webserver Targing 有哪些匹配方式? Minion Id

SaltStack 入门到精通 - 第八篇: 了解States

什么是Salt States Salt States是Salt模块的扩展 主系统使用的状态系统叫SLS系统. SLS代表Saltstack State. Salt状态是一些文件,其中包含有关如何配置Salt 子节点的信息. 这些状态被存在一个目录树下,可以用许多不同的格式来写. 我们可以把这些Salt States当作是对minion的管理脚本的配置模式,通过配置sls文件,指定目标minions,可以实现在master上对minions的运行状态进行管理. Salt State树 跟系统文件树

Spark入门到精通--(第二节)Scala编程详解基础语法

Scala是什么? Scala是以实现scaleable language为初衷设计出来的一门语言.官方中,称它是object-oriented language和functional language的混合式语言. Scala可以和java程序无缝拼接,因为scala文件编译后也是成为.class文件,并且在JVM上运行. Spark是由Scala进行开发的. Scala安装? 这里就讲一下Scala在Centos上进行安装的过程,和安装JDK差不多. 官网下载Scala:http://www

TensorFlow 从入门到精通(六):tensorflow.nn 详解

看过前面的例子,会发现实现深度神经网络需要使用 tensorflow.nn 这个核心模块.我们通过源码来一探究竟. # Copyright 2015 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. #

SaltStack 入门到精通 - 第一篇: 安装SaltStack

实际环境的设定: 系统环境: centos6 或centos5 实验机器: 192.168.1.100 软件需求: salt 套件,及其需求环境 实验目的: 成功安装salt,并实现salt主从间通讯 特殊设置: 其它目的: 安装SaltStack(下面简称为salt) epel安装:salt安装需要epel源支持,所以在安装salt前需要先安装epel包 # centos5 下载下面rpm  wget -O    epel.rpm https://dl.fedoraproject.org/pu

Java入门到精通——调错篇之Spring2.5利用aspect实现AOP时报错: error at ::0 can't find referenced pointcut XXX

一.问题描述及原因. 利用Aspect注解实现AOP的时候出现了error at ::0 can't find referenced pointcut XXX.一看我以为注解写错了,结果通过查询相关资料是因为Spring2.5与中的aspectjweaver.jar 和aspectjrt.jar这两个jar包与JDK1.7不匹配. org.springframework.beans.factory.BeanCreationException: Error creating bean with n

Redis从入门到精通:初级篇

原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中也一直在用Redis,感觉是时候对过往Redis的所学进行一次系统性的总结.<Redis从入门到精通>系列会分为初级.中级.高级三篇,从浅入深讲解Redis相关知识点. 在本文中,我们将看到以下内容: Redis简介 Redis安装.启动 Redis登录授权 Redis配置文件redis.conf

Farseer.net轻量级开源框架 入门篇:修改数据详解

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解 下一篇:Farseer.net轻量级开源框架 入门篇: 删除数据详解 Update的几种方式(基本) 1 Users info = new Users(); 2 info.UserName = "张三"; 3 info.PassWord = "密码"; 4 5 // 指定用户ID为1的的数据进行修改. 6 Users.Data.Wher

Android基础入门教程——8.3.1 三个绘图工具类详解

Android基础入门教程--8.3.1 三个绘图工具类详解 标签(空格分隔): Android基础入门教程 本节引言: 上两小节我们学习了Drawable以及Bitmap,都是加载好图片的,而本节我们要学习的绘图相关的 一些API,他们分别是Canvas(画布),Paint(画笔),Path(路径)!本节非常重要,同时也是我们 自定义View的基础哦~好的,话不多说开始本节内容~ 官方API文档:Canvas:Paint:Path: 1.相关方法详解 1)Paint(画笔): 就是画笔,用于设