Puppet – 环境会议

Puppet – 环境会议


在 Puppet 中,所有环境都有environment.conf文件。每当主服务器为任何节点或分配给该特定环境的所有节点提供服务时,此文件可以覆盖多个默认设置。

地点

在 Puppet 中,对于所有定义的环境,environment.conf 文件位于其主环境的顶层,非常靠近清单和模块控制器。举个例子,如果您的环境在默认目录(Vipin/testing/environment) 中,那么测试环境的配置文件位于Vipin/testing/environments/test/environment.conf

例子

# /etc/testingdir/code/environments/test/environment.conf  
# Puppet Enterprise 需要 $basemodulepath; 请参阅下面的“模块路径”下的注释。
模块路径 = 站点:dist:modules:$basemodulepath  
# 使用我们的自定义脚本获取代码当前状态的 git commit: 
config_version = get_environment_commit.sh 

格式

Puppet 中的所有配置文件都以相同的方式使用相同的类似 INI 的格式。environment.conf文件遵循与其他人一样的类似 INI 的格式,如 puppet.conf 文件。environment.conf 和puppet.conf之间的唯一区别是 environment.conf 文件不能包含 [main] 部分。environment.conf 文件中的所有设置都必须在任何配置部分之外。

值中的相对路径

大多数允许的设置都接受文件路径或路径列表作为值。如果任何路径是相关路径,它们开始时没有前导斜杠或驱动器号——它们将主要相对于该环境的主目录进行解析。

值的插值

Environment.conf 设置文件能够使用其他设置的值作为变量。有多个有用的变量可以插入到 environment.conf 文件中。以下是一些重要变量的列表 –

  • $basemodulepath – 用于在模块路径设置中包含目录。Puppet 企业用户通常应该包含modulepath 的这个值,因为 Puppet 引擎在basemodulepath 中使用 module

  • $environment – 作为 config_version 脚本的命令行参数很有用。您只能在 config_version 设置中插入此变量。

  • $codedir – 用于定位文件。

允许的设置

默认情况下,Puppet environment.conf 文件只允许覆盖列出的配置中的四个设置。

  • 模块路径
  • 显现
  • 配置版本
  • 环境超时

模块路径

这是 environment.conf 文件中的关键设置之一。modulepath 中定义的所有导演默认由 Puppet 加载。这是 Puppet 加载其模块的路径位置。需要明确设置这一点。如果未设置上述设置,则 Puppet 中任何环境的默认模块路径将为 –

<来自环境的模块目录>:$basemodulepath 

显现

这用于定义主清单文件,Puppet master 将在启动和编译用于配置环境的定义清单之外的目录时使用该文件。在这里,我们可以定义单个文件、文件列表,甚至是由多个清单文件组成的目录,这些文件需要按定义的字母顺序进行评估和编译。

需要在 environment.conf 文件中明确定义此设置。如果没有,则 Puppet 将使用环境默认清单目录作为其主要清单。

配置版本

Config_version 可以定义为用于标识目录和事件的明确版本。默认情况下,当 Puppet 编译任何清单文件时,它会将配置版本添加到生成的目录以及当 Puppet master 在 Puppet 节点上应用任何定义的目录时生成的报告。Puppet 运行一个脚本来执行上述所有步骤,并将所有生成的输出用作 Config_version。

环境超时

它用于获取有关 Puppet 应该用于为给定环境加载数据的时间量的详细信息。如果该值在 puppet.conf 文件中定义,则这些值将覆盖默认超时值。

示例 environment.conf 文件

[掌握] 
   清单 = $confdir/environments/$environment/manifests/site.pp 
   模块路径 = $confdir/environments/$environment/modules

上面代码中$confdir是目录的路径,环境配置文件所在的目录。$environment是正在为其完成配置的环境的名称。

生产就绪环境配置文件

#环境配置文件  
# Puppet 开始评估代码的主清单目录或文件  
# 这是默认值。仅适用于 site.pp 文件或任何其他文件  
清单 = 清单/  
# 添加到模块路径中的目录,按照先匹配先使用的顺序查找:  
# modules - 外部模块的目录,由基于 Puppetfile 的 r10k 填充  
# $basemodulepath - 来自:puppet config print basemodulepath  
模块路径 = 站点:模块:$basemodulepath  
# 设置此环境的缓存超时时间。  
# 这会覆盖在 puppet.conf 中为整个 Puppet 服务器直接设置的内容  
# environment_timeout = 无限制  
# 使用缓存你需要在部署新的 Puppet 代码时刷新缓存  
# 这也可以手动完成运行:bin/puppet_flush_environment_cache.sh  
# 禁用目录缓存:  
环境超时 = 0  
# 这里我们将控制仓库中的一个 Puppet 环境(和 git 分支)传递给一个  
# 获取上次 git 提交的标题和基本信息
config_version = 'bin/config_script.sh $environment' 

觉得文章有用?

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