Configuration-Management

如何讓 Rudder 為每個節點設置不同的配置?

  • October 4, 2018

如何讓 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,上述任務非常簡單。

有幾種方法可以做到這一點 - 你是對的,為每個節點建立規則不是正確的:)

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

節點屬性

最常見的方法是使用節點屬性,即特定於每個節點並且可以在指令中使用的屬性。文件在這裡: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

希望能幫助到你!

引用自:https://serverfault.com/questions/933952