saltstack之(六)配置管理state
配置管理是saltstack工具最重要的模块之一,也是学习saltstack之后使用最多的一个功能。可以轻松实现上百台上千台甚至上万台服务器的管理工作。
1.使用state模块进行配置管理,编写sls文件,sls文件使用的是yaml语法格式。
yaml文件的语法格式:
structure通过空格来展示。
sequence里的项用"-"来表示。
map里的键值对用":"来表示。
2.常用的state模块及方法:
file:
file.managed --文件管理(重点)
file.append --文件追加
file.absent --删除文件
file.directory --创建目录
file.recurse --递归拷贝目录到minion端
pkg:
pkg.installed --软件包安装(重点)
pkg.latest --保持软件包为最新版本
pkg.remove --卸载软件包
pkg.purge --下载软件包,删除配置文件
service:
service.running --确保服务处于运行状态(重点)
service.enabled --开机启动
service.disabled --开机不启动
service.dead --确保服务处于未运行状态
cmd:
cmd.run --执行shell命令
mount:
mount.mounted --挂载
mount.swap --交换分区挂载
mount.umounted --卸载
3.模块之间的依赖关系
watch: 关注某一事件变化
watch_in: 被关注自身事件变化
require: 依赖某一事件发生
require_in: 被依赖自身事件发生
unless: 判断是否为false,如果为false则执行。常用在cmd中name的命令。
onlyif: 判断是否为true,如果为true则执行。
4.jinja模板
jinja是基于python的模版引擎。template类是jinja的一个重要组件,它可以被看作是一个编译过的模板文件,被用来产生目标文件。
5.编写state文件并使用jinja模板的步骤:
①.在state文件中使用"- template: jinja"声明。
②.在模版文件中使用变量"{{ name }}"声明,name为变量,自己定义。
③.在state文件中使用"- defautls: name: value"声明。