我正在编写一个在支柱内执行的自定义模块(设置一个支柱变量)但我需要它来检索一个外部参数。
想法是从主服务器检索参数。例如,如果我执行
盐#myminion' state.highstate
将调用自定义模块,它应该检索一个参数以生成支柱。
我正在研究类似的选项:
使用环境变量:它似乎不起作用,因为执行模块似乎无法访问salt命令的shell环境。
使用命令行参数:我不知道它是否可能,因为我找不到任何文档。
在命令行中使用额外的支柱:它不起作用,因为在支柱评估期间执行执行模块,因此它无法访问__pillar__
或__salt__['pillar.get']
(两个都是空的。
从标准输入读取:无法从自定义模块开始工作。
使用文件阅读信息:我甚至没有试过这个,因为出于安全考虑,它不适合我。我不希望存储这些信息。
任何想法是否或如何做到这一点?
非常感谢!
答案 0 :(得分:0)
人:
在支柱内执行的自定义模块(用于设置支柱变量)
你的意思是external pillar吗?
如果是这样,那么传递参数就包含在该文件中:
您可以将一个参数,一个参数列表或一个参数字典传递给您的支柱:
ext_pillar:
- example_a: some argument
- example_b:
- argumentA
- argumentB
- example_c:
keyA: valueA
keyB: valueB
外部支柱将他们的数据合并到支柱词典中,并且是“自定义模块”,所以我认为这适合你的情况。
如果那不是你想要做的,你能更新一下这个问题吗?这个参数来自哪里?是不同的取决于小兵(minion_id总是传递到外部支柱)?
(编辑)添加一些关于安全存储机密的链接: