AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 555878
Accepted
atxdba
atxdba
Asked: 2013-11-19 16:45:26 +0800 CST2013-11-19 16:45:26 +0800 CST 2013-11-19 16:45:26 +0800 CST

使用 Hiera 在 Puppet 中配置 puppetdb 模块

  • 772

我正在尝试安装PuppetDB Module。其中一部分捆绑了一个模块,用于安装我也在使用的一些必需的 Postgres 实例。

我们主要使用 heira 来配置角色和设置各种属性。

我的配置足够长,如果我添加

roles:
    - role::postgresql_puppetdb

对于主机名 hiera yaml 文件,它将被拾取并推出一个基本的 postgres 实例。

我一直坚持设置特定的 postgresql.conf 变量。例如我试过

roles:
   - role::postgresql_puppetdb
      - wal_level: hot_standby

但是,这确实会在后续代理运行时被推送。

我希望有人可能已经尝试以这种方式对 PuppetDB 配置进行建模并指出我做错了什么。

puppet
  • 1 1 个回答
  • 2397 Views

1 个回答

  • Voted
  1. Best Answer
    daff
    2013-11-19T17:36:24+08:002013-11-19T17:36:24+08:00

    为了让 Puppet 在 Hiera 中查找类参数(自 3.0.0 起默认执行此操作),这些参数需要指定为简单的键值对,而不是复杂的数据类型。

    这是您如何在模块中指定datadir类的参数以指向 Postgres 的备用数据目录:postgresql::serverpuppetlabs-postgresql

    # /etc/puppet/hieradata/foo.example.com.yaml
    ---
    # Puppet 在应用类 postgresql::server 时自动在此处查找参数
    postgresql::server::datadir: /srv/postgres/main
    

    但是,我认为这不是您所需要的。您想要指定 Postgres 配置参数,您需要使用postgresql::server::config_entry定义的类型。目前没有办法在 Hiera 中查找类型参数,这仅适用于类参数。

    因此,要么参数化你的role::postgresql_puppetdb类,以便可以将类参数传递给它,然后将其输入到postgresql::server::config_entry声明中,要么将create_resources()函数与要应用的 Postgres 配置设置一起使用hiera_array()或hiera_hash()查找要应用的 Postgres 配置设置。

    第一种方法的示例:

    类角色::postgresql_puppetdb (
      wal_level => '最小'
      ...
    ) {
    
      类{'postgresql':
         ...
      }
    
      类 {'puppetdb':
         ...
      }
    
      postgresql::server::config_entry { 'wal_level':
        价值 => $role::postgresql_puppetdb::wal_level
      }
    }
    

    然后在希拉。

    # /etc/puppet/hieradata/foo.example.com.yaml
    ---
    角色::postgresql_puppetdb::wal_level: hot_standby
    

    这显然有点不灵活,因为您还需要公开postgresql该类通过您的类提供的每个可调参数和配置设置role::postgresql_puppetdb。当然,如果您知道只需要像这样公开几个可调参数,这对您来说可能就足够了。

    第二种方法的示例:

    类角色::postgresql_puppetdb {
    
      类{'postgresql':
         ...
      }
    
      类 {'puppetdb':
         ...
      }
    
      $postgres_config_entries = hiera_hash('postgres_configs', {})
    
      create_resources('postgresql::server::config_entry', $postgres_config_entries)
    
    }
    

    然后在希拉:

    # /etc/puppet/hieradata/foo.example.com.yaml
    ---
    postgres_configs:
      wal_level:
        值:hot_standby
      身份验证超时:
        值:120s
      krb_server_keyfile:
        值:/var/lib/postgresql/postgresql.keytab
    

    等等。这更灵活,允许您在所需的每个层次结构级别上设置任意 Postgres 参数。当然,在这种情况下,只有在包含类时才会咨询 Hiera 以获取这些配置设置role::postgresql_puppetdb,但没有什么能阻止您将 hiera_hash-create_resources 组合放在其他角色中,可能是role::postgresql.

    我希望这是可以理解和连贯的。上面的内容当然是未经测试的,但我们使用这种策略(create_resources、hiera_hash)来管理本地和系统帐户、repos、sudoers 规则、Tomcat 实例等。明天我不那么累的时候会重新讨论这个问题。

    但是请看一下 Puppet-Ask 上的这个绝妙问题:https ://ask.puppetlabs.com/question/1655/an-end-to-end-roleprofile-example-using-hiera/

    它通过基于 HAproxy 的类似设置。非常好理解。

    • 4

相关问题

  • 如何修复 Puppet 完全限定的参数路径错误?

  • puppet:修改配置文件后强制重启服务

  • 木偶模块资源

  • 傀儡主机名问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve