Salt通过State模块来进行文件的管理;通过YAML语法来描述,后缀是.sls的文件 。
1.1 了解YAML
remove vim:
pkg.removed:
- name: vim
注意:
1.2 配置salt,定义环境 告诉salt去哪里找配置状态文件
vi /etc/salt/master
以上为默认file_roots信息,创建如下内容(其中base目录是必须的):
mkdir -p /srv/salt/{base,dev,test,prod} #创建目录
systemctl restart salt-master #重启服务
务必做测试。
为什么测试存在问题,查看存在一个报错:"could not find expected ':' " ,原因为: 重新查看yml配置文件!
1.3 编写sls文件(salt state的缩写),配置在对应的目录
1.3.1 在base环境下编写一个安装apache的sls文件
题外话,运维需要统一标准,建议此处命名开头采用小写字母。(主机名建议采用-,而不是_,为的就是后期主机名做DNS解析就麻烦了。)
apache-install: #定义apache的ID声明(全局唯一状态标识),检查设备有没有http,若存在就忽略,没有才安装
pkg.installed: #pkg是状态模块,installed是pkg状态模块的方法
- name: httpd #-name是installed的方法参数
apache-service: #定义apache的ID声明(全局唯一状态标识),保障httpd处于运行状态,检查是否运行,运行就忽略,没运行就安装
service.running: #service是状态模块,running是service状态模块的方法
- name: httpd #-name是installed的方法参数
- enable: True #-enable是installed的方法参数
1.4 使用salt
命令的state
状态模块让minion
应用配置
# 让所有的minion都安装apache(由于salt默认的环境就是base,所以可以直接在后面指定调用的apache.sls文件,不要后缀sls)
salt'*'
state.sls apache
# 让所有的minion都安装vsftpd(saltenv指定环境)
salt'*'
state.sls vsftpd saltenv=dev
# 让其中一台minion(Saltstack02)安装apache
salt'Saltstack02*'
state.sls apache
在master上面执行后,在被执行的minion上查看:
ps aux | grep yum
安装完成后,master返回结果:
5. 使用salt
命令执行高级状态。建议将同一类的放置在一个目录下,以“.”的方式进行调用
salt'Saltstack02*'state.sls web.apache
6、使用salt
的高级状态使不同主机应用不同的配置
查看一下salt如何定义的高级状态
以上可知状态系统可以使用一个“top”file入口文件,放置在base环境目录下,命名为top.sls,默认不建议更改其内容。
base:
'Saltack02':
- web.apache
'Saltstack01':
- web.apache
salt'*'state.highstate # 启用高级状态,去topfile里面读取(只是去通知主机干什么,而至于执行或不执行,执行什么,由topfile决定。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。