免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5352 | 回复: 7
打印 上一主题 下一主题

[puppet] erb模板是否可以修改配置文件指定参数方法 [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-12-01 10:22 |只看该作者 |倒序浏览
本帖最后由 rdcwayx 于 2014-12-02 12:05 编辑

请问下erb批量修改配置文件,可否只修改指定配置中部分参数,比如aix下的/etc/security/user中每个主机的创建的用户不同,比如有的机器有test1用户就有test1的配置,但其它机器不一定有,所以该配置文件的内容不是统一的。如果我只需要修改user文件中相同的配置比如用户密码最小长度minlen = 8,这个该怎么配置erb,erb我目前接触只能生成统一配置的文件:
user文件的内容:
  1. test1:
  2.         admin = false
  3.         histsize = 5
  4.         histexpire = 13
  5.         minlen = 8
  6.         minalpha = 1
  7.         minother = 1
  8.         maxrepeats = 8
  9.         mindiff = 1

  10. test2:
  11.         admin = false
  12.         histsize = 5
  13.         histexpire = 13
  14.         minlen = 8
  15.         minalpha = 1
  16.         minother = 1
  17.         maxrepeats = 8
  18.         mindiff = 1
复制代码

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00
2 [报告]
发表于 2014-12-02 09:35 |只看该作者
每天一顶,难道大家没有遇到这个需求

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
3 [报告]
发表于 2014-12-02 12:15 |只看该作者
本帖最后由 rdcwayx 于 2014-12-02 12:32 编辑

因为不清楚你的需求。

如果是用puppet来自动管理。那么erb的设置会用变量来管理。

这是个类似for loop 的循环。
  1. <% users.each do |u| -%>
  2. <%= "这里放置 用户 u 的设置" %>
  3. <% end -%>
复制代码
因为puppet只关心最终的结果,保证 /etc/security/user 里的内容不变。而在分发配置的时候 (比如 site.pp) ,决定好某台服务器或者某个群里有那些用户,统一定制即可。 puppet会自动 push到不同的服务器。

site.pp
  1. node 'www.example.com' {
  2.    include group1
  3. }

  4. node 'tomcat.example.com' {
  5.   include group1
  6.   include group2
  7. }
复制代码

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00
4 [报告]
发表于 2014-12-02 13:44 |只看该作者
本帖最后由 lklkxcxc 于 2014-12-02 13:47 编辑

回复 3# rdcwayx
我也觉得我说的不够清楚,比如node1 puppet客户端的user配置文件如下:
test1:
        admin = false
        histsize = 5
        histexpire = 13
        minlen = 8
        minalpha = 1
        minother = 1
        maxrepeats = 8
        mindiff = 1

test2:
        admin = false
        histsize = 5
        histexpire = 13
        minlen = 8
        minalpha = 1
        minother = 1
        maxrepeats = 8
        mindiff = 1
node2 puppet客户端的user配置文件如下:
test1:
        admin = false
        histsize = 5
        histexpire = 13
        minlen = 8
        minalpha = 1
        minother = 1
        maxrepeats = 8
        mindiff = 1

造成user文件内容不一样,是因为node1系统上比node2上多建了一个test2用户,所以node1主机user配置文件多了一项test2用户的配置。这边有很多node puppet客户端节点而且每个节点上的用户不尽一样导致每个puppet客户端系统上的user配置文件内容也有差别。如果单独去为每个puppet客户端做个erb不现实也达不到自动配置的效率。现在想通过一个erb修改所有node节点主机的user配置文件。但是由于erb是统一模板,会导致所有主机的user配置文件一样,不知道我现在说明白没?

比如将user配置文件中所有用户的 minlen = 8修改为 minlen = 6,该怎么做,其它的参数不变,要求最终node1节点的user配置文件如下:


test1:
        admin = false
        histsize = 5
        histexpire = 13
        minlen = 6
        minalpha = 1
        minother = 1
        maxrepeats = 8
        mindiff = 1

test2:
        admin = false
        histsize = 5
        histexpire = 13
        minlen = 6
        minalpha = 1
        minother = 1
        maxrepeats = 8
        mindiff = 1

node2的user配置文件如下:
test1:
        admin = false
        histsize = 5
        histexpire = 13
        minlen = 6
        minalpha = 1
        minother = 1
        maxrepeats = 8
        mindiff = 1

其实这个用shell可以进行全文替换,不知道puppet有没有类似的功能   

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00
5 [报告]
发表于 2014-12-03 17:35 来自手机 |只看该作者
自己顶一下,觉得这个功能比较实用

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
6 [报告]
发表于 2015-04-03 11:13 |只看该作者
本帖最后由 expert1 于 2015-04-03 11:14 编辑

回复 5# lklkxcxc

ok,来个define试试看。

  1. cat modules/user/manifests/init.pp

  2. define user::test($len=6,$user=[],)

  3. {
  4.     file {"/etc/${name}.conf":

  5.             content  => template("user/user.erb"),

  6.   }
  7. }


  8. cat modules/user/templates/user.erb
  9. <% @user.each do |user| -%>
  10.   <%= user%>:
  11.         admin = false
  12.         histsize = 5
  13.         histexpire = 13
  14.         minlen = <%= @len %>
  15.         minalpha = 1
  16.         minother = 1
  17.         maxrepeats = 8
  18.         mindiff = 1

  19. <% end -%>

  20. cat production/user.pp
  21. node default {
  22.         user::test {'user':       
  23.         len =>'100',
  24.         user =>['LINUX','CENTOS'],

  25.         }
  26. }
  27. node 'server1' {

  28.      user::test {'user':       
  29.         user =>['FreeBSD','WINDOWS'],

  30.         }
复制代码

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
7 [报告]
发表于 2015-04-03 11:15 |只看该作者
puppet apply --modulepath=modules production/user.pp
Notice: Compiled catalog for dd1f0a4792e8 in environment production in 0.08 seconds
Notice: Finished catalog run in 0.01 seconds
[root@dd1f0a4792e8 puppet]# cat /etc/user.conf
  LINUX:
        admin = false
        histsize = 5
        histexpire = 13
        minlen = 100
        minalpha = 1
        minother = 1
        maxrepeats = 8
        mindiff = 1

  CENTOS:
        admin = false
        histsize = 5
        histexpire = 13
        minlen = 100
        minalpha = 1
        minother = 1
        maxrepeats = 8
        mindiff = 1

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
8 [报告]
发表于 2015-04-03 11:16 |只看该作者
当然更加蛋疼的做法是把你的user, length放到hieradata里面。根据需要来做吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP