Salt的另一大功能就是配置管理,通过SLS文件定义服务状态。
简单的例子:安装apache
需要存在epel源
salt文件系统
salt自己维护了一个文件系统,以供调用。sls文件也存在于此
配置文件系统路径
/etc/salt/master
file_roots:
base:
- /srv/salt
编写根文件
/srv/salt/base.sls
base:
'host2':
- webserver
1: 定义环境,salt可以区分不同环境定义sls文件
2: 匹配minion,支持前面提到的各种方式,这里以ID为host2
的minion为例
3: 调用的sls文件
编写sls文件
/srv/salt/webserver.sls
apache:
pkg:
- installed
1: ID
2: state 模块,这里是包管理模块
3: 模块参数,确保apache软件包是安装的
应用state
salt '*' state.apply
应用stats时会进行两次匹配,首先匹配运行命令行中的主机,匹配的主机会下载根sls文件进行匹配,如果本机与sls文件中的目标匹配,则下载调用的sls文件并执行
依赖
Salt 支持状态的依赖关系.
require
当前需要需要其他状态的存在
watch
监控状态变动触发当前动作
apache:
pkg.installed: []
service.running:
- require:
- pkg: apache
/var/www/index.html:
file:
- managed
- source: salt://webserver/index.html
- require:
- pkg: apache
/etc/httpd/extra/httpd-vhosts.conf:
file.managed:
- source: salt://webserver/httpd-vhosts.conf
apache:
pkg.installed: []
service.running:
- watch:
- file: /etc/httpd/extra/httpd-vhosts.conf
- require:
- pkg: apache
网友评论