📜  Puppet-配置

📅  最后修改于: 2020-10-31 16:48:53             🧑  作者: Mango


 

一旦我们在系统上安装了Puppet,下一步就是将其配置为执行某些初始操作。

在计算机上打开防火墙端口

为了使Puppet服务器集中管理客户端服务器,需要在所有机器上打开一个指定的端口,即,如果我们尝试配置的任何机器中都没有使用8140,则可以使用它。我们需要在所有机器上同时启用TCP和UDP通信。

配置文件

Puppet的主要配置文件是etc / puppet / puppet.conf 。所有配置文件都是在Puppet的基于程序包的配置中创建的。配置Puppet所需的大多数配置都保存在这些文件中,一旦Puppet运行,它将自动获取这些配置。但是,对于某些特定任务,例如配置Web服务器或外部证书颁发机构(CA),Puppet具有单独的文件和设置配置。

服务器配置文件位于conf.d目录中,该目录也称为Puppet主目录。这些文件默认位于/etc/puppetlabs/puppetserver/conf.d路径下。这些配置文件采用HOCON格式,保留了JSON的基本结构,但更具可读性。当Puppet启动时,它将从conf.d目录中拾取所有.cong文件,并将其用于进行任何配置更改。这些文件中的任何更改仅在重新启动服务器时发生。

列表文件和设置文件

  • global.conf
  • webserver.conf
  • web-routes.conf
  • puppetserver.conf
  • 身份验证
  • master.conf(不建议使用)
  • ca.conf(已弃用)

Puppet中有不同的配置文件,这些配置文件特定于Puppet中的每个组件。

木偶

Puppet.conf文件是Puppet的主要配置文件。 Puppet使用相同的配置文件来配置所有必需的Puppet命令和服务。此文件中定义了所有与Puppet相关的设置,例如Puppet主服务器,Puppet代理,Puppet应用和证书的定义。木偶可以根据要求引用它们。

配置文件类似于标准的ini文件,其中的设置可以进入主要部分的特定应用程序部分。

主要配置部分

[main] 
certname = Test1.vipin.com 
server = TestingSrv 
environment = production 
runinterval = 1h 

人偶主配置文件

[main] 
certname = puppetmaster.vipin.com 
server = MasterSrv 
environment = production 
runinterval = 1h 
strict_variables = true  
[master] 

dns_alt_names = MasterSrv,brcleprod01.vipin.com,puppet,puppet.test.com 
reports = puppetdb 
storeconfigs_backend = puppetdb 
storeconfigs = true 
environment_timeout = unlimited 

详细概述

在Puppet配置中,将要使用的文件具有多个配置节,其中每个节具有多种不同数量的设置。

配置部分

人偶配置文件主要包含以下配置部分。

  • Main-这称为全局部分,Puppet中的所有命令和服务都使用该部分。一个定义了主要部分中的默认值,该默认值可以被puppet.conf文件中存在的任何部分覆盖。
  • 主机-该部分由Puppet主服务和Puppet cert命令引用。
  • 代理-该部分由Puppet代理服务引用。
  • 用户-它主要由Puppet apply命令以及许多较不常见的命令使用。
[main] 
certname = PuppetTestmaster1.example.com 

配置文件的关键组件

以下是Config文件的关键组件。

评论行

在Puppet中,任何注释行均以( )符号开头。这可能需要任何空间。在同一行中,我们也可以有部分评论。

# This is a comment. 
Testing = true #this is also a comment in same line 

设定行

设置行必须包含-

  • 任意数量的前置空间(可选)
  • 设定名称
  • 等于=表示符号,可以由任意数量的空格包围
  • 设定值

设置变量

在大多数情况下,设置的值将是一个单词,但在某些特殊情况下,几乎没有特殊值。

路径

在配置文件设置中,获取目录列表。在定义这些目录,一个应该记住,他们应该由系统路径分隔字符,这是(:)在* nix平台和分号(;)分隔在Windows上。

# *nix version: 
environmentpath = $codedir/special_environments:$codedir/environments 
# Windows version: 
environmentpath = $codedir/environments;C:\ProgramData\PuppetLabs\code\environment 

在定义中,首先扫描列出的文件目录,然后如果找不到该目录,则将其移动到列表中的另一个目录。

文件和目录

所有采用单个文件或目录的设置都可以接受可选的权限哈希。服务器启动时,Puppet将强制执行列表中的那些文件或目录。

ssldir = $vardir/ssl {owner = service, mode = 0771} 

在上面的代码中,允许的哈希是所有者,组和模式。所有者和组密钥只有两个有效值。