木偶 – 文件服务器

木偶 – 文件服务器


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目录下,如果用户希望更改此默认配置文件路径,可以使用新的 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 客户端。在上述情况下,以主机名为基础限制主机名是最佳实践。

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

主机名

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

[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 * 

觉得文章有用?

点个广告表达一下你的爱意吧 !😁