在工作中常常会有这样一种需求:某几个人需要某些测试服务器的root权限。比如,开发部门的张三,李四,王五,赵六需要rsync服务器的root权限。有些同学会说那直接 visudo在里面添加几个人不就行了。是的。这样做没错。

但我们rsync服务器有10台呢。我们一个一个的这样做是不是太麻烦了。而且后期如果把赵六换成马强呢?所以我们需要通过puppet做一个模板。有什么变动,只需要改动模板就行了。

前奏:                                                                                                                                                                                                                                                

notify{'notice':
message => "I am $vlan_name" #打印变更内容 } #判断变更是否等于 itd(不区分大小写)
case $vlan_name {
'itd': {
package { ['SQLyog', 'navicat-premium','imake']: }
file {"test files/tmp/test":
path => '/tmp/test'
content => "hello"
mode =>
   #简写形式
   #file {"/tmp/test":
# content => "hello"
}
}
}

sudoers.pp

class basefx::sudoers{                      #定义sudoers类
case $::system_class{ #判断变理system_class是什么
'nagios_server': {      #如果服务器的system_class是nagios_server  
file{ 'sudoers file':
content => template("$svn_files/etc/sudoers.erb"), #调用erb模板
path => '/etc/sudoers' ,
mode => ,
}
} 'render','workstation': {
file{ 'sudoers file':
content => template("$svn_files/etc/sudoers.erb"),
path => '/etc/sudoers' ,
mode => ,
}
file{ 'qube sudoers file':
source => "$svn_files/etc/sudoers.d/qube" ,
path => '/etc/sudoers.d/qube' ,
mode => ,
}
}
}
case $::hostname { #判断服务器hostname是什么
/^ple-web-test/: {   #如果是以ple-web-test开头的服务器,则继续执行
file{ '/etc/sudoers.d/ple':
content => template("$svn_files/etc/sudoers.d/ple.erb")
}
}
/^dvd/: {
file{ '/etc/sudoers.d/dvd':
content => template("$svn_files/etc/sudoers.d/dvd.erb")
}
} }
}

sudoers.pp

sudoers.erb

<% if @hostname == 'dvd02' -%>
User_Alias DVD = qiangbs,linsn,caoxu,apache
DVD ALL=(ALL) NOPASSWD: ALL
<% end -%>
<% if @hostname == 'dvd03' -%>
User_Alias DVD = qiangbs,chenbin,wanghao1,apache
DVD ALL=(ALL) NOPASSWD: ALL
<% end -%>
<% if @hostname =~ /^dvd/ -%> #主机名以dvd开头的机器
User_Alias DVD = qiangbs,apache
Cmnd_Alias DVD_CMD = /bin,/usr/sbin/xfs_fsr
DVD ALL=(ALL) NOPASSWD: ALL

sudoers.erb

puppet参考文档:https://puppet.com/docs/puppet/5.3/type.html

Puppet日常总结的更多相关文章

  1. Centos 7 Puppet之foreman介绍安装测试

    一.简介 1.前言(引用一下网上的资料) 随着企业的 Linux 系统数量越来越多,管理问题便成为一个相对麻烦并需要急 迫解决的问题,这里有 2 个 Key Message:1)统一管控体系非常重要, ...

  2. 关于Puppet不得不说的故事

    Puppet对于做DevOps的同学来说,是个熟悉的名字,但仍有许多人并不了解它.那么我先来简单介绍一下:Puppet是由Puppetlabs公司开发的系统管理框架和工具集,被用于IT服务的自动化管理 ...

  3. DevOps - 配置管理 - Puppet

    uppet总结 一.基础知识 1. Puppet是开源的基于Ruby的系统配置管理工具,依赖于C/S的部署架构.Puppet这样的自动化配置管理工具可以帮助系统管理员更加方便的完成多台服务器的升级软件 ...

  4. 为什么要使用puppet 及初步接触

    为什么要使用puppet 及初步接触   1.简介 云计算环境下,密度高,机器数量多,还要求弹性和伸缩性,这对于运维提出更高的要求.系统管理员需要经常安装操作系统,对系统参数进行配置和优化,对人员进行 ...

  5. ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  6. Java程序员的日常—— Arrays工具类的使用

    这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...

  7. 数据库日常维护-CheckList_03有关数据库数据文件大小检查

    日常数据维护中容量规划是每个DBA的基础工作之一,也是非常重要的工作.在生产环境中一些比较重要的业务数据库会用前期容量规划不足,或出现意外的爆发式的数据增长,直至盛满整个磁盘空间,系统会无法使用,最终 ...

  8. 数据库日常维护-CheckList_02有关数据库备份检查

    数据库备份是DB日常运维中最基本的也是最重要的工作,很多情况下都是做成作业形式实现自动化周期性的做全备.差异以及日志备份.那么,如果作业出现问题没有完成工作,我们可以设置自动报警如email被动提醒我 ...

  9. 数据库日常维护-CheckList_01历史Agent Job执行情况检查

    检查Agent Job中日常维护作业或业务作业是否成功,如每天的备份.碎片整理.索引维护.历史备份文件清除等,可利用SSMS工具,通过CDC下面设置好的DB Server List,运行下面脚本一次, ...

随机推荐

  1. 转://Oracle undo 自动调优

    Oracle 10gr2的后续版本中添加了UNDO信息最短保留时间段自动调优的特性,不再仅仅依据参数UNDO_RETENTION的设定,其调优原则如下:1. 当UNDO TABLESPACE为 fix ...

  2. (二 -3) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列

    参考网站 1该mqtt光平台可以让您控制您的MQTT启用灯.它支持设置亮度,色温,效果,闪烁,开/关,RGB颜色,过渡,XY颜色和白色值. https://www.home-assistant.io/ ...

  3. 缓存表 内存表(将表keep到内存)

    缓存表 内存表(将表keep到内存) 一.引言:     有时候一些基础表需要非常的频繁访问,尤其是在一些循环中,对该表中的访问速度将变的非常重要.为了提高系统的处理性能,可以考虑将一些表及索引读取并 ...

  4. 从MFQ方法到需求分析

    前几天看了一篇性能测试相关的文章:性能测试模型初探及应用方法分析,其中提到了MFQ分析方法.专门去查阅了MFQ相关的一些资料,学习了一番. 之后想起了以前看<Google的软件测试之道>这 ...

  5. Tomcat优化之容易集合经验

    Tomcat优化1. 如何加大tomcat连接数在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有: maxThreads : t ...

  6. 快看Sample代码,速学Swift语言(3)-运算符

    运算符是用来检查,更改或组合值的特殊符号或短语.Swift提供的很多常规的运算符,如+.-.*./.%.=.==等,以及逻辑运算的&&.||等等,基本上不需要重复介绍,我们在这里只需要 ...

  7. mybatis 代码生成器(IDEA, Maven)及配置详解(部分配置你应该不知道)

    目录 1 创建代码生成器 1.1 创建Maven项目 1.2 配置 generator.xml 1.3 配置 pom.xml 1.4 使用及测试 2 XML 配置详解 2.1 优先 2.2 官网没有的 ...

  8. 【开源】Skatch 正式发布 - 极速渲染抽象派草图

    极速渲染抽象派草图 DEMO Simple Letter 简介 Skatch 这个词由 sketch wechart abstract cax 混合而成的一个新词,代表了cax wechart 抽象艺 ...

  9. Mysql数据库触发器调用脚本

    一.数据库触发器 mysql触发器trigger 实例详解 对数据库触发器new和old的理解 示例 二.UDF mySql的UDF是什么 三.安装执行命令UDF mysql触发器调用外部脚本(安装) ...

  10. Winform MDI窗体切换不闪烁的解决办法(测试通过)

    https://stackoverflow.com/questions/5817632/beginupdate-endupdate-for-datagridview-request SuspendLa ...