📜  Puppet-环境

📅  最后修改于: 2020-10-31 14:10:56             🧑  作者: Mango


在软件开发和交付模型中,存在用于测试特定产品或服务的不同类型的测试环境。作为标准实践,主要存在三种环境,即开发,测试和生产,其中每种环境都有自己的固定配置。

Puppet支持与Ruby on Rails相同的多环境管理。创建这些环境背后的关键因素是提供一种用于在不同级别的SLA协议中进行管理的简便机制。在某些情况下,必须始终在没有任何公差和使用旧软件的情况下启动机器。其中其他环境是最新的,用于测试目的。它们用于升级更重要的计算机。

Puppet建议坚持标准的生产,测试和开发环境配置,但是在这里,它甚至为用户提供了根据要求创建自定义环境的优势。

环境目标

按环境划分设置的主要目标是Puppet可以为模块和清单提供不同的来源。然后,可以在测试环境中测试配置的更改,而不会影响生产节点。这些环境还可以用于在不同的网络源上部署基础结构。

在Puppet Master上使用环境

环境的重点是测试需要将文件的哪个清单,模块,模板发送给客户端。因此,必须将Puppet配置为为这些信息提供特定于环境的源。

通过将pre-environment部分添加到服务器的puppet.conf并为每个环境选择不同的配置源,即可轻松实现Puppet环境。然后,优先于主要部分使用这些环境前部分。

[main] 
manifest = /usr/testing/puppet/site.pp 
modulepath = /usr/testing/puppet/modules 
[development] 
manifest = /usr/testing/puppet/development/site.pp 
modulepath = /usr/testing/puppet/development/modules

在上面的代码中,开发环境中的任何客户端都将使用目录/ usr / share / puppet / development中的site.pp清单文件,Puppet将在/ usr / share / puppet / development / modules目录中搜索任何模块。 。

在有或没有任何环境的情况下运行Puppet都将默认为site.pp文件以及在主配置部分的清单和模块路径值中指定的目录。

只有很少的配置在环境前配置才有意义,而所有这些参数都围绕指定用于编译客户端配置的文件。

以下是参数。

  • Modulepath-在Puppet中,作为基本的标准模式,最好有一个所有环境都共享的标准模块目录,然后是一个可以存储自定义模块的环境前目录。模块路径是Puppet在其中查找所有与环境相关的配置文件的位置。

  • Templatedir-模板目录是所有相关模板版本的保存位置。这些设置应该首选该模块,但是它允许在每个环境中具有给定模板的不同版本。

  • 清单-这定义了用作入口点脚本的配置。

通过多个模块,Puppets帮助获得配置的模块化。一个人可以在Puppet中使用多个环境,如果一个人主要依赖模块,则效果会更好。通过将更改封装在模块中,可以更轻松地将更改迁移到环境。文件服务器使用特定于环境的模块路径;如果从模块而不是从单独的安装目录中进行文件服务,则此环境将能够获取特定于环境的文件,并且当前环境也将在清单文件中的$ environment变量中提供。

设置客户环境

与环境配置有关的所有配置都在puppet.conf文件中完成。要指定Puppet客户端应使用的环境,可以在客户端的puppet.conf文件中为环境配置变量指定一个值。

[puppetd] 
environment = Testing 

配置文件中的上述定义定义了在我们要测试的情况下配置文件所处的环境。

您还可以在命令行上使用-

#puppetd -–environment = testing

另外,Puppet还支持在环境配置中使用动态值。开发人员可以使用自定义事实来创建自定义事实,该自定义事实可以基于其他一些客户端属性或外部数据源创建客户端环境,而不是定义静态值。首选的方法是使用自定义工具。这些工具能够指定节点的环境,并且通常在指定节点信息方面要好得多。

人偶搜索路径

Puppet使用简单的搜索路径来确定需要在目标计算机上应用哪些配置。同样,Puppet中的搜索路径在尝试获取需要应用的适当值时非常有用。下面列出了多个位置,Puppet会在这些位置中搜索需要应用的值。

  • 在命令行中指定的值
  • 在特定于环境的部分中指定的值
  • 在特定于可执行文件的部分中指定的值
  • 在主要部分中指定的值