![在 Puppet 中使用角色配置文件模式时设置 SSL 密钥](https://linux22.com/image/655830/%E5%9C%A8%20Puppet%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E8%A7%92%E8%89%B2%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%A8%A1%E5%BC%8F%E6%97%B6%E8%AE%BE%E7%BD%AE%20SSL%20%E5%AF%86%E9%92%A5.png)
以下是一个场景。我有两个 Web 应用程序(我们称之为 webapp1 和 webapp2),它们需要 apache、php(带有一些模块)以及 Web 应用程序的代码本身。这是我的设置方法(使用角色配置文件模式):
modules/
apache/
php/
webapp1/ # responsible for cloning the repo and setting up config files
webapp2/ # responsible for cloning the repo and setting up config files
profiles/
manifests/
webapp1.pp # responsible for putting the stack together
webapp2.pp # responsible for putting the stack together
Profiles/manifests/webapp1.pp 看起来像这样:
class profiles::webapp1 {
include ::apache
include ::php
include ::webapp1
}
并且profiles/manifests/webapp1.pp看起来像这样:
class profiles::webapp2 {
include ::apache
include ::php
include ::webapp2
}
现在,这两个应用程序也必须通过 HTTPS 提供服务,并且需要相同的 SSL 证书集(假设 webapp1 和 webapp2 由一个域的不同子域提供服务,并且我们有一个通配符证书,因此两个应用程序都可以使用相同的证书)。现在,我无法决定在哪个清单中进行 SSL 设置(即使用file
类型设置密钥和证书。原因是至少现在,我将在同一个角色清单中同时拥有 webapp1 和 webapp2,但我希望具有灵活性,以便我可以将 webapp1 和 webapp2 移动到不同的角色中,而不必担心以不同的方式进行 SSL 设置。
答案1
我会将它们放在一个单独的类中,例如“wildcard_ssl_”,并且可能将其包含在两个“webappX”类中,或者可能包含在两个配置文件中。