在工作中常常会有这样一种需求:某几个人需要某些测试服务器的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. JDK动态代理Demo代码,进一步学习分析

    import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflec ...

  2. json_encode里面经常用到的 JSON_UNESCAPED_UNICODE和JSON_UNESCAPED_SLASHES

    php格式化json的函数json_encode($value,$options) 其中有2个比较常用到的参数 JSON_UNESCAPED_UNICODE(中文不转为unicode ,对应的数字 2 ...

  3. 【angularjs】使用angular搭建PC端项目,开关按钮

    方法一(使用指令) 1.指令(angular-ui-switch.js) angular.module('uiSwitch', []) app.directive('switch', function ...

  4. tomcat (选号)公司tomcat无页面解决

    问:我现在的有的解决方法就是把上一次war包下下载下来,在重启tomcat 答:那不行,更新war包就没有意义了,你都没排查故障  就直接说war包少东西?主页都没有..还能少主页也不是404.war ...

  5. mybatis错误之org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    玩了MyBatis差不多有两年了,中间也玩过MyBatis-Plus,这个MyBatis-Plus其实与MyBatis的区别并不大.今天写博客业务代码的时候,犯一个初学者犯过的错误. 错误信息如下:o ...

  6. 5239-回忆京都-洛谷3月赛gg祭

    传送门 题目背景 第十五届东方人气投票 音乐部门 106名 第四次国内不知道东方的人对东方原曲的投票调查 51名 回忆京都副歌我tm吹爆,东方文花帖我tm吹爆! 题目描述 射命丸文在取材中发现了一个好 ...

  7. 面试官问,说一个你在工作非常有价值的bug

    如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个 ...

  8. 如何备份和恢复你的TFS服务器(二)

    配置一个备份计划 在你的TFS(Team Foundation Server)2010服务器上安装新版本的Power Tools以后(是的,这个工具只支持TFS(Team Foundation Ser ...

  9. Java之文本文件的创建和读取(含IO流操作)

    工具类:对文件的读取,创建.直接复制拿来用! package cn.zyzpp.util; import java.io.BufferedReader; import java.io.Buffered ...

  10. Leetcode 26. Remove Duplicates from Sorted Array (easy)

    Given a sorted array, remove the duplicates in-place such that each element appear only once and ret ...