首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hiera中使用mod (v8.3.0)?

如何在hiera中使用mod (v8.3.0)?
EN

Server Fault用户
提问于 2022-11-01 13:03:29
回答 1查看 82关注 0票数 1

Queston:使用角色和概要文件方法,可以使用'puppetlabs-apache', '8.3.0'进行hiera查找吗?

上下文

  • 我使用mod 'puppetlabs-apache', '8.3.0'来配置apache服务器。对于不同的站点,我有大量的apache重写规则。
  • 每个站点都配置了hiera,例如hiera.yaml:路径:- site /%{:site}.yaml-角色/%{:角色}.yaml
  • webapp.pp角色安装和配置apache的位置
  • 以依赖于站点的方式查找apache配置是很好的,但是找不到任何帮助的文档。

说明

  • 我发现了一个类似的问题这里,但不要认为它涉及到我的特定用例。
  • 如果hiera无法实现这个模块,我可以在webapp.pp中执行一些逻辑,例如:If ($facts['site'] == 'SITE-A') {outline rewrites for SITE-A}
  • 然而,这种方法感觉相当混乱。
EN

回答 1

Server Fault用户

发布于 2022-11-11 13:06:08

好的,为了防止任何人受益,解决方案非常简单,并显示了我的傀儡noob状态。

解决方案

查看文档,您将看到大多数数据类型都是数组,以下面的示例为例:

代码语言:javascript
复制
  apache::vhost { 'aliases.example.com':
      serveraliases => [
        'aliases.example.org',
        'aliases.example.net',
      ],
      port          => 80,
      docroot       => '/var/www/aliases',
    }

这里,serveraliases是一个数组。因此,您可以简单地通过hiera查找数组:

代码语言:javascript
复制
        class profiles::apache::secure_vhost(
            # Hiera lookup
            Array $site_serveraliases    = lookup('apache_site_serveraliases') )
            {
            apache::vhost { 'aliases.example.com':
            serveraliases => $site_serveraliases,
            port          => 80,
            docroot       => '/var/www/aliases',
            }
           )

其中$apache_site_serveraliases是一个yaml数组,该数组在不同站点之间有所不同,例如:

代码语言:javascript
复制
apache_site_serveraliases:
  - paris.site.name
  - london.site.name
  - nyc.site.name

通过这种方式,您可以以依赖站点的方式查找apache_site_serveraliases。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1114541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档