Puppet - 配置

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

在机器上打开防火墙端口

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

配置文件

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

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

列出文件和设置文件

  • global.conf

  • webserver.conf

  • web-routes.conf

  • puppetserver.conf

  • auth.conf

  • master.conf(不建议使用)

  • ca.conf(不建议使用)

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

Puppet.conf

Puppet.conf文件是Puppet的主配置文件. Puppet使用相同的配置文件来配置所有必需的Puppet命令和服务.所有与Puppet相关的设置,例如Puppet master,Puppet agent,Puppet apply和certificate的定义都在此文件中定义. Puppet可以根据要求引用它们.

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

主要配置部分

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


Puppet Master Config File

[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配置中,将要使用的文件有多个配置其中每个部分都有不同种类的多个设置.

配置部分

Puppet配置文件主要由以下配置部分组成.

  • Main : 这被称为全局部分,由Puppet中的所有命令和服务使用.一个定义了main部分中的默认值,可以被puppet.conf文件中的任何部分覆盖.

  • Master :  ;本节由Puppet主服务和Puppet证书命令引用.

  • 代理 : 本部分由Puppet代理服务引用.

  • 用户 : 它主要由Puppet apply命令以及许多不太常用的命令使用.

[main] 
certname = PuppetTestmaster1.example.com


配置文件的关键组件

关注是配置文件的关键组件.

注释行

在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}


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