📜  puppet 文件服务器

📅  最后修改于: 2021-01-08 04:59:34             🧑  作者: Mango

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",
   }