saltstack基于jinja模板使用及实战用户管理

salt引入了Jinja2模板引擎,可用于salt state文件,salt pillar文件和其它由salt管理的文件。
salt允许你使用Jinja访问minion配置值,grains和salt pillar数据,和调用salt执行模块。这些是除了Jinja提供的标准控制结构和Python数据类型之外的功能。
条件语句
Jinja最常用的功能是在salt pillar文件中插入控制声明语句。
由于许多发行版本有不同的包名称,你可以使用os grain来设置平台特定的路径,软件包名称和其它值。
例如:

salt grains跟salt pillar的数据字典都是字典。这个示例检查salt grain值来设置操作系统特定的salt pillar键值。
保存上面的代码到saltstack/pillar/common.sls文件,然后运行如下命令来刷新和列出每一个minions的salt pillar值:

设置这些值后,当应用如下salt state:

httpd软件包安装在RedHat,apache2安装在Debian系统。
循环语句
在salt state中创建多个用户和目录使用循环语句会很方便。

使用salt获取数据
你可以在Jinja中调用salt执行函数来实时获取数据。

saltstack实战user用户管理
saltstack已经有user模块了,但是这个user模块在一般的使用中已经满足使用需求了。比如在编译nginx,需要添加nginx用户的时候。但是当我们需要大量的集中管理一些用户时,我们需要更灵活的方式来处理。这时候单单的只使用saltstack的user模块就不够用了。之所以回去写这个内容,就是目的为了实现更加高效的,方便的实现用户管理。1.只需要填写用户名和密码即可在指定机器创建用户。2.用户密码是会将明文转换为hash过的,不需要在单独为不同的用户密码做hash。3.保证不同用户不同密码。4.在用户自己修改密码之后,再次执行不会将密码还原。
下面直接上代码:

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: