Puppet - 文件服务器

Puppet遵循客户端和服务器的概念,其中设置中的一台机器作为服务器机器运行,其上运行Puppet服务器软件,其余机器作为客户端运行Puppet代理软件.文件服务器的此功能有助于在多台计算机周围复制文件. Puppet中文件服务功能的这个功能是作为中央Puppet守护程序的一部分. Puppetmasterd和客户端函数在作为文件对象获取文件属性方面起着关键作用.

class { 'java':  
   package               => 'jdk-8u25-linux-x64',  
   java_alternative      => 'jdk1.8.0_25',  
   java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java'  
}

如上面的代码片段所示,Puppet的文件服务函数通过支持文件服务模块来抽象本地文件系统拓扑.我们将按以下方式指定文件服务模块.

"puppet://server/modules/module_name/sudoers"

文件格式

在Puppet目录结构中,默认情况下文件服务器配置位于/etc/puppet/fileserver下.config 目录,如果用户希望更改此默认配置文件路径,可以使用 puppetmasterd 的新配置标志来完成.配置文件类似于INI文件,但不完全相同.

[module] 
path /path/to/files 
allow *.domain.com 
deny *.wireless.domain.com

如上面的代码片段所示,所有三个选项在配置文件中表示.模块名称稍微放在括号中.路径是唯一必需的选项.默认安全选项是拒绝所有访问,因此如果没有指定允许行,则任何人都可以使用将配置的模块.

路径可以包含任何或所有%d,%h和%H由其域名,主机名和完全限定的主机名动态替换.所有这些都取自客户端的SSL证书(如果主机名和证书名称不匹配,请小心).这有用的是创建模块,其中每个客户端的文件完全分开保存.例如,私有主机密钥.

[private] 
path /data/private/%h 
allow *

在上面的代码片段中,代码正在尝试从客户端 client1.vipin.com 中搜索文件/private/file.txt .它将在/data/private/client1/file.txt中查找,而对client2.vipin.com的相同请求将尝试在文件服务器上检索文件/data/private/client2/file.txt.

安全性

Puppet支持在Puppet文件服务器上保护文件的两个基本概念.这是通过允许访问特定文件并拒绝访问不需要的文件来实现的.默认情况下,Puppet不允许访问任何文件.它需要明确定义.可以在文件中用于允许或拒绝访问的格式是使用IP地址,名称或全局允许.

如果客户端未直接连接到Puppet文件服务器,例如,使用反向代理和Mongrel,文件服务器将看到所有连接来自代理服务器而不是Puppet客户端.在上述情况下,在主机名的基础上限制主机名是最佳做法.

在定义文件结构时要注意的一个关键点是,所有deny语句在之前被解析允许声明.因此,如果任何deny语句与主机匹配,则该主机将被拒绝,如果在即将到来的文件中没有写入allow语句,则主机将被拒绝.此功能有助于设置任何特定站点的优先级.

主机名

在任何文件服务器配置中,文件主机名可以用两种方式指定通过使用完整的主机名或使用*通配符指定整个域名,如以下示例所示.

[export] 
path /usr 
allow brcleprod001.brcl.com 
allow *.brcl.com 
deny brcleprod002.brcl.com

IP地址

在任何文件服务器配置中,可以使用完整的IP地址或通配符地址将文件地址指定为与主机名类似.也可以使用CIDR系统表示法.

[export] 
path /usr 
allow 127.0.0.1 
allow 172.223.30.* 
allow 172.223.30.0/24

全球允许

全球允许当用户希望每个人都可以访问特定模块时使用.为此,单个通配符有助于让每个人访问该模块.

[export] 
path /export 
allow *