说明:关于安装的方法请看 自动化部署工具Puppet安装配置 。
一、配置puppet服务端管理sudo
1、主资源配置文件:/etc/puppet/mainfests/site.pp
可以设置包含其他资源配置文件例如:
vim site.pp
import 'nodes/*'
加载在/etc/puppet/mainfests/nodes目录中的所有以.pp结尾的文件
2、资源配置文件中可以读取模块:
vim nodes/node1.pp
node 'node1.a.com' //指定在哪个节点生效
{ include sudo } //读取sudo模块
3、定义模块:
1> 创建模块目录: mkdir /etc/puppet/modules
2> 在模块目录中创建sudo模块: mkdir /etc/puppet/modules/sudo
3> 在sudo模块中创建需要的基本目录:mkdir /etc/puppet/modules/sudo/{files,manifests,templates}
4> 在sudo模块的manifests目录中必须创建模块的具体资源定义文件:vim /etc/puppet/modules/sudo/manifests/init.pp
----------------------init.pp文件内容开始-------------------------
class sudo { //定义类名字为sudo
package { sudo: ensure => present } //确保sudo软件包安装,如未安装则通过yum自动安装
file { "/etc/sudoers": //定义文件资源/etc/sudoers
owner => "root", //指定文件属主为root
group => "root", //指定文件属组为root
mode => 0440, //指定文件权限为0440
source => "puppet:///modules/sudo/etc/sudoers", //定义配置文件sudoers从puppet服务器读取,这里的意思是从:/etc/puppet/modules/sudo/files/etc/sudoers 读取,模块目录files为文件类型资源的根目录
require => Package["sudo"] } //定义依赖关系,必须执行了package中的操作之后才执行该操作
}
-----------------------init.pp文件内容结束-----------------------
5> 创建file资源中定义的配置文件sudoers:
mkdir /etc/puppet/modules/sudo/files/etc
cp /etc/sudoers /etc/puppet/modules/sudo/files/etc/sudoers