- Puppet 教程
- Puppet - 首页
- Puppet 基础
- Puppet - 概述
- Puppet - 架构
- Puppet - 安装
- Puppet - 配置
- Puppet - 环境配置
- Puppet - 主服务器
- Puppet - 代理设置
- Puppet - SSL 证书设置
- r10K 的安装和配置
- Puppet - 验证设置
- Puppet - 代码风格
- Puppet - 清单文件
- Puppet - 模块
- Puppet - 文件服务器
- Puppet - Facter 和事实
- 高级 Puppet
- Puppet - 资源
- Puppet - 资源抽象层
- Puppet - 模板
- Puppet - 类
- Puppet - 函数
- Puppet - 自定义函数
- Puppet - 环境
- Puppet - 类型和提供程序
- Puppet - RESTful API
- Puppet - 实时项目
- Puppet 有用资源
- Puppet - 快速指南
- Puppet - 有用资源
- Puppet - 讨论
Puppet - 环境
在软件开发和交付模型中,存在不同类型的测试环境,用于测试特定产品或服务。作为标准实践,主要有三种环境:开发、测试和生产,每种环境都有自己的配置。
Puppet 支持管理多个环境,与 Ruby on Rails 的方式类似。创建这些环境的关键因素是提供一种易于管理不同 SLA 协议级别的机制。在某些情况下,机器始终需要保持运行,没有任何容忍度,并使用旧软件。而其他环境则保持最新状态,用于测试目的。它们用于对更重要的机器进行升级。
Puppet 建议坚持使用标准的生产、测试和开发环境配置,但是,它也允许用户根据需要创建自定义环境。
环境目标
按环境划分设置的主要目标是,Puppet 可以拥有模块和清单的不同来源。然后,可以在测试环境中测试配置更改,而不会影响生产节点。这些环境还可以用于在不同的网络来源上部署基础设施。
在 Puppet Master 上使用环境
环境的重点是测试需要发送给客户端的清单、模块和文件模板。因此,必须配置 Puppet 以提供特定于环境的这些信息的来源。
Puppet 环境的实现方法很简单,只需向服务器的 puppet.conf 文件中添加预环境部分,并为每个环境选择不同的配置源。然后,这些预环境部分将优先于主部分使用。
[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 文件以及主配置部分中 manifest 和 modulepath 值指定的目录。
实际上只有少数配置有意义地进行预环境配置,所有这些参数都围绕着指定要用于编译客户端配置的文件。
以下是参数。
**Modulepath** − 在 Puppet 中,作为基本标准模式,最好有一个所有环境共享的标准模块目录,然后是一个可以存储自定义模块的预环境目录。模块路径是 Puppet 搜索所有与环境相关的配置文件的位置。
**Templatedir** − 模板目录是保存所有相关模板版本的位置。模块应优先于这些设置,但是它允许在每个环境中拥有给定模板的不同版本。
**Manifest** − 这定义了哪个配置用作入口点脚本。
使用多个模块,Puppet 有助于获得配置的模块化。可以在 Puppet 中使用多个环境,如果主要依赖于模块,则效果更好。通过将更改封装在模块中,更容易将更改迁移到环境。文件服务器使用特定于环境的模块路径;如果从模块而不是单独挂载的目录进行文件服务,则此环境将能够获取特定于环境的文件,最终当前环境也将在清单文件中以 `$environment` 变量的形式可用。
设置客户端环境
与环境配置相关的全部配置都在 puppet.conf 文件中完成。要指定 Puppet 客户端应使用哪个环境,可以在客户端的 puppet.conf 文件中为 environment 配置变量指定一个值。
[puppetd] environment = Testing
配置文件中的上述定义定义了配置文件所在的哪个环境,在本例中为 testing。
也可以使用以下命令行指定:
#puppetd -–environment = testing
或者,Puppet 还支持在环境配置中使用动态值。开发人员无需定义静态值,而是可以创建自定义事实,根据其他客户端属性或外部数据源创建客户端环境。首选方法是使用自定义工具。这些工具能够指定节点的环境,并且通常更擅长指定节点信息。
Puppet 搜索路径
Puppet 使用简单的搜索路径来确定需要在目标机器上应用哪个配置。同样,Puppet 中的搜索路径在尝试获取需要应用的适当值时非常有用。Puppet 在下面列出的多个位置搜索需要应用的值。
- 在命令行中指定的值
- 在特定于环境的部分中指定的值
- 在特定于可执行文件的部分中指定的值
- 在主部分中指定的值