个性化阅读
专注于IT技术分析

Puppet文件服务器

本文概述

众所周知, 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 Server使用文件服务器将静态文件的输出传输到代理。如果我们需要提供较大的文件(而不是模块提供的文件), 则可以通过模块提供大多数文件, 为此, 你可以创建自定义文件服务器安装点, 并让the从其他目录提供这些文件。

第1步:创建一个可以被puppet访问的目录, 并将需要导出的文件复制到该目录。

步骤2:创建fileserver.conf并定义目录和可以访问该目录的主机。

$ touch   /etc/puppetlabs/puppet/fileserver.conf

定义文件服务器

Fileserver.conf使用类似于INI文件的一次性文件格式, 没有等号(=)。它是一系列的挂载点姿势, 每个包括:

  • 用方括号括起来的[mount_point_name]。这是此挂载点中文件的puppet:/// URL中使用的名称。
  • 路径指令, 在磁盘上存在绝对路径, 或存储来自安装点的文件。
  • 一个allow *指令。

例子:

# cat /etc/puppetlabs/puppet/fileserver.conf
   [scripts]
   path /apps/puppetlabs/code/environments/production/scripts
   allow *
   [packages]
   path /apps//puppetlabs/code/environments/production/packages
   allow *

在上面的示例中, 我们创建了两个位置, 可以从中提供文件。第一个是脚本目录, 第二个是位置软件包。可以在模块目录可用的同一位置创建两个目录。要检查模块的位置, 我们可以使用以下参数:

# puppet config print modulepath
    /etc/puppetlabs/code/environments/production/modules:

现在, 让我们看一下清单, 这些清单用于访问文件服务器提供的上述目录中的文件。

file { '/home/agile/apache.sh':
       path => '/home/agile/apache.sh', ensure => present, mode => "755", owner => agile, source => "puppet:///scripts/apache.sh", }

  file { "/usr/local/httpd-2.2.22.tar.gz":
        path => "/usr/local/httpd-2.2.22.tar.gz", ensure => present, owner => agile, group => agile, source => "puppet:///packages/httpd-2.2.22.tar.gz", }

赞(0)
未经允许不得转载:srcmini » Puppet文件服务器

评论 抢沙发

评论前必须登录!