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 / 问题 / 933952
Accepted
Vinícius M
Vinícius M
Asked: 2018-10-05 03:54:21 +0800 CST2018-10-05 03:54:21 +0800 CST 2018-10-05 03:54:21 +0800 CST

如何让 Rudder 为每个节点设置不同的配置?

  • 772

如何让 Rudder 根据应用指令的节点动态设置配置?

例如 - 管理数百个节点,每个节点都应该有一个文件“storage_password”,其中包含每个节点唯一的 32 位密码。

为每个节点创建一个唯一的 [directive, rule, group] 元组感觉显然是错误的,而且看起来很混乱且没有必要。

我想到了动态变量,在($prefix_${variable_suffix})、 where的意义上,variable_suffix = "hostA"还有一个名为 的变量prefix_hostA,其中包含密码。variable_suffix 将是节点的主机名。

但是,我不确定这是否可能,或者即使它是更推荐的方法。

变量 dict 方法似乎是一种方法,但我不确定它是否可以在指令中使用,并且目前无法让它工作。

我应该如何最好地进行?

我提到了密码情况,但在其他情况下我也需要一些类似的行为,比如为每个节点设置 vpn 配置。

背景:公司正在从 Puppet 迁移到 Rudder,我的任务是使用他们在 Puppet 上使用的相当简单的功能来镜像 Rudder。使用 Puppet,上述任务非常简单。

configuration-management
  • 1 1 个回答
  • 375 Views

1 个回答

  • Voted
  1. Best Answer
    fanf42
    2018-10-05T05:01:22+08:002018-10-05T05:01:22+08:00

    有几种方法可以做到这一点 - 你是对的,为每个节点建立规则不是正确的:)

    根据更一般的上下文,遵循一系列可能性:

    节点属性

    最常见的方法是使用节点属性,即特定于每个节点并且可以在指令中使用的属性。文档在这里:https ://docs.rudder.io/reference/5.0/usage/advanced_configuration_management.html#_node_properties你是入门手册中的一个用例示例:定义https://docs.rudder.io/ get-started/current/node-management/data.html和用法:https ://docs.rudder.io/get-started/current/advanced-configuration/apply.html

    节点可以对节点属性具有“本地覆盖”,即可以在节点文件系统上定义的属性值,而不是在 Rudder 节点详细信息中(也在https://docs.rudder.io/reference/5.0/usage中解释/advanced_configuration_management.html#_node_properties )

    您可以使用“数据源”舵插件https://docs.rudder.io/reference/5.0/plugins/datasources.html从外部 rest API 同步节点属性

    来自节点环境的变量

    您可以从节点上的事物定义变量,例如文件内容、命令输出等。

    您可以使用标准库中的变量技术(在“杂项”类别中)定义此类变量。例如,Variable from JSON file (dict)允许将 json 文件加载为可在指令参数中使用的变量,语法为${variable_prefix.variable_name[json-key][json-subkey]}. 还有variable from command,或variable (string)。

    如果从技术编辑器构建技术,则具有相应的通用方法:在“变量”类别中查找方法,例如“命令变量”允许(暂停)从命令结果创建变量;或者在 json 文件内容的情况下,如您所说,“来自前缀的变量 dict”。这些方法也可以在指令中使用。

    请注意,当您使用这些指令时,需要在使用它们之前定义变量,因此请检查您的策略顺序: https ://docs.rudder.io/reference/5.0/usage/advanced_configuration_management.html#_directives_ordering

    模板

    如果您需要更多涉及的模板工作,您可以使用 jinja 或 mustache,如下所述:https ://docs.rudder.io/rudder-by-example/current/files/advanced-file-templating.html

    保险库

    在 Rudder 5.0 中,我们添加了一个 Vault 插件,允许从(再次暂停)Vault 安装中获取机密:https ://github.com/Normation/rudder-plugins/tree/master/vault

    旧资源

    你可以找到一些关于它过去是如何在没有的情况下完成的信息:https ://www.mauras.ch/rudder-fun-with-variables.html

    还有一件事

    这与您的问题没有直接关系,但因为它是相反的问题,所以它可能是相关的。有时,您想从标准库存数据中没有的节点获取库存信息,然后使用这些数据构建组,您可以使用“节点库存挂钩”扩展库存:https ://docs.rudder.io/reference /5.0/usage/advanced_node_management.html#extend-nodes-inventory

    希望能帮助到你!

    • 4

相关问题

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

  • 有人在将 Altiris 部署解决方案更新到 SP2 时遇到问题吗?

  • 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