Salt:将参数传递给支柱内执行的自定义模块

时间:2016-03-18 16:09:20

标签: module salt-stack

我正在编写一个在支柱内执行的自定义模块(设置一个支柱变量)但我需要它来检索一个外部参数。

想法是从主服务器检索参数。例如,如果我执行

  盐#myminion' state.highstate

将调用自定义模块,它应该检索一个参数以生成支柱。

我正在研究类似的选项:

  1. 使用环境变量:它似乎不起作用,因为执行模块似乎无法访问salt命令的shell环境。

  2. 使用命令行参数:我不知道它是否可能,因为我找不到任何文档。

  3. 在命令行中使用额外的支柱:它不起作用,因为在支柱评估期间执行执行模块,因此它无法访问__pillar____salt__['pillar.get'](两个都是空的。

  4. 从标准输入读取:无法从自定义模块开始工作。

  5. 使用文件阅读信息:我甚至没有试过这个,因为出于安全考虑,它不适合我。我不希望存储这些信息。

  6. 任何想法是否或如何做到这一点?

    非常感谢!

1 个答案:

答案 0 :(得分:0)

人:

  

在支柱内执行的自定义模块(用于设置支柱变量)

你的意思是external pillar吗?

如果是这样,那么传递参数就包含在该文件中:

  

您可以将一个参数,一个参数列表或一个参数字典传递给您的支柱:

ext_pillar:
  - example_a: some argument
  - example_b:
    - argumentA
    - argumentB
  - example_c:
    keyA: valueA
    keyB: valueB

外部支柱将他们的数据合并到支柱词典中,并且是“自定义模块”,所以我认为这适合你的情况。

如果那不是你想要做的,你能更新一下这个问题吗?这个参数来自哪里?是不同的取决于小兵(minion_id总是传递到外部支柱)?

(编辑)添加一些关于安全存储机密的链接: