在软件开发和交付模型中,存在用于测试特定产品或服务的不同类型的测试环境.作为标准实践,主要有三种环境,如开发,测试和生产,其中每个环境都有自己的设置配置.
Puppet支持同一个环境的管理作为Ruby on Rails行.创建这些环境背后的关键因素是提供一种简单的机制来管理不同级别的SLA协议.在某些情况下,机器始终需要在没有任何容差和使用旧软件的情况下启动.其他环境是最新的,用于测试目的.它们用于升级更重要的机器.
Puppet建议坚持使用标准的生产,测试和开发环境配置,但是,它甚至为用户提供了创建的能力.根据要求定制环境.
环境目标
环境设置拆分的主要目标是Puppet可以有不同的模块源和体现.然后,可以在不影响生产节点的情况下测试测试环境中的配置更改.这些环境还可用于在不同的网络源上部署基础架构.
在Puppet Master上使用环境
环境的关键是测试需要将文件的清单,模块,模板发送给客户端.因此,必须将Puppet配置为为这些信息提供特定于环境的源.
只需将前环境部分添加到服务器的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 和Puppet将搜索/usr/share/puppet/development/modules目录中的任何模块.
在有或没有任何环境的情况下运行Puppet将默认为site.pp文件和主配置部分中manifest和modulepath值中指定的目录.
只有少数配置实际上配置preenvironment是有意义的,所有这些参数都围绕指定文件t o用于编译客户端的配置.
以下是参数.
Modulepath : 在Puppet中,作为基本标准模式,最好有一个所有环境共享的标准模块目录,然后是可以存储自定义模块的预环境目录.模块路径是Puppet查找所有与环境相关的配置文件的位置.
Templatedir : 模板目录是保存所有相关模板版本的位置.该模块应该优先于这些设置,但是它允许每个环境中的给定模板具有不同版本.
清单 : 这定义了用作入口点脚本的配置.
使用多个模块,Puppets有助于获得配置的模块化.可以在Puppet中使用多个环境,如果一个人主要依赖于模块,那么效果会更好.通过封装模块中的更改,可以更轻松地将更改迁移到环境中.文件服务器使用特定于环境的模块路径;如果一个文件服务来自模块,而不是单独安装的目录,这个环境将能够获取特定于环境的文件,最后当前环境也将在清单文件中的$ environment变量中可用.
设置客户端环境
所有与环境配置相关的配置都在puppet.conf文件中完成.要指定Puppet客户端应该使用哪个环境,可以在客户端的puppet.conf文件中为环境配置变量指定一个值.
[puppetd] environment = Testing
配置文件中的上述定义定义了配置文件在我们测试的情况下所处的环境.
也可以在命令行中使用 :
#puppetd --environment = testing
或者,Puppet还支持在环境配置中使用动态值.开发人员可以利用创建自定义事实来创建基于某些其他客户端属性或外部数据源的客户端环境,而不是定义静态值.这样做的首选方法是使用自定义工具.这些工具能够指定节点的环境,并且通常在指定节点信息方面要好得多.
Puppet搜索路径
Puppet使用简单的搜索路径确定需要在目标计算机上应用哪个配置.同样,Puppet中的搜索路径在尝试获取需要应用的适当值时非常有用.下面列出了多个位置,Puppet会搜索需要应用的值.
命令行中指定的值
特定于环境的部分中指定的值
特定于可执行文件的部分中指定的值
在主要部分