【salt的目录结构】
环境是有默认的,不过可以更改配置/etc/salt/master文件中file_roots
file_roots:
base:
- /data1/salt/base/
db:
- /data1/salt/db/
dev:
- /data1/salt/dev/
prod:
- /data1/salt/prod/
【先掌握saltstack的SLS文件命名空间问题】
遵照以下规则:
sls是扩展名
.sls是被省略的(如 zabbix.sls使用的时候 为 zabbix)
存在包的时候 如:执行包1/xxx.sls ,用包1.xxx的方式表示
如果包目录创建一个init.sls的文件,引用的时候仅指定该目录即可 (例如 包1/init.sls 可以简称为 包1)
如果一个目录下同时存在包1.sls 和 包1/init.sls,那么包1/init.sls 将被忽略,SLS文件引用的包1将只引用包1.sls
【从以下两个执行方式就可以理解以上说的了】
salt "dev-mysql001" state.highstate -v test=true
highstate意思就是从base环境(默认是执行base环境)目录下的top.sls开始执行
所以你的top.sls就可能写成以下这个样子
base:
‘*‘:
- init # the system init
- users # add users three user one pubkey
- sudoer # config sudoer
- yum # repos config file
- hosts # sync host and resolve
- ssh # ssh-client,ssh-server config
- ntpd # service ntpd
- syslog # log server config
- monitor # zabbix,salt-minion config
- vim # vim,vimconfig vimcolor
salt ‘dev-mysql001‘ state.sls monitor -v test=true
state.sls的意思是执行指定的一个.sls文件。 monitor更具sls命名规则的第4条规则,执行包1下面的init.sls
可能monitor包下面的sls文件就这样写的了
# cat monitor/init.sls
include:
- .zabbix
# cat monitor/zabbix.sls
zabbix-agent:
pkg:
- installed
- names:
- zabbix-agent
【关于其他的嘛,知道一下几点就可以了】
1 懂得如何-v test=true 去验证 (cmd.rum 执行命令这个是没用的哦记住哦,别犯傻)
2 salt "dev-mysql001" cmd.run "you command"
3 slat "dev-mysql001" test.ping
4 知道如何tail -f /var/log/salt/minion 查看(master执行的会在minion中生成日志)
5 知道如何调整minion配置文件中log_level = debug这个调整在排查的时候很有作用(默认是#log_level: warning)
6 观察执行结果中的绿色 黄色 红色代表啥意思~~·
【关于如何写.sls文件,如果理解一上的,百度百度就知道如何写了】
本文出自 “崔德华运维打工从业路” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1787112
原文地址:http://cuidehua.blog.51cto.com/5449828/1787112