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

Module Salt:将参数传递给在支柱内执行的自定义模块,module,salt-stack,Module,Salt Stack,我正在编写一个在支柱内部执行的自定义模块(用于设置支柱变量),但我需要它来检索外部参数 其思想是从主服务器检索一个参数。例如,如果我执行 盐“myminion”状态。highstate 将调用自定义模块,它应检索一个参数以生成支柱 我正在研究以下选项: 使用环境变量:它不起作用,因为执行模块似乎没有访问salt命令的shell环境的权限 使用命令行参数:我不知道这是否可能,因为我找不到任何文档 在命令行中使用附加支柱:在支柱评估期间执行模块时,该支柱不起作用,因此它无权访问\uuuuuu-pil

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

其思想是从主服务器检索一个参数。例如,如果我执行

盐“myminion”状态。highstate

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

我正在研究以下选项:

  • 使用环境变量:它不起作用,因为执行模块似乎没有访问salt命令的shell环境的权限

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

  • 在命令行中使用附加支柱:在支柱评估期间执行模块时,该支柱不起作用,因此它无权访问
    \uuuuuu-pillar\uuuuuu
    \uuuuuu-salt.['pillar.get']
    (均为空)

  • 从标准输入读取:从自定义模块读取不起作用

  • 使用文件读取信息:我甚至没有尝试这样做,因为出于安全原因,这不是我的选择。我不想把信息存储起来

  • 有什么想法,如果或者如何做到这一点

    非常感谢

    作者:

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

    你的意思是说一只猫吗

    如果是这样,则该文档中包括传递it参数:

    您可以将单个参数、参数列表或参数字典传递给支柱:

    外部支柱将其数据合并到支柱字典中,并且是“自定义模块”,因此我认为这适合您的情况

    如果这不是你想要做的,你能更新这个问题吗?这个参数来自哪里?根据仆从的不同是否有所不同(仆从id始终传递给外部支柱)

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

    作者:

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

    你的意思是说一只猫吗

    如果是这样,则该文档中包括传递it参数:

    您可以将单个参数、参数列表或参数字典传递给支柱:

    外部支柱将其数据合并到支柱字典中,并且是“自定义模块”,因此我认为这适合您的情况

    如果这不是你想要做的,你能更新这个问题吗?这个参数来自哪里?根据仆从的不同是否有所不同(仆从id始终传递给外部支柱)

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


    不一定是外部支柱,但我不希望它存储在文件中。参数将是敏感信息,我不希望将其存储在任何地方,只希望在执行期间存储在内存中。您是否担心这些信息会被存储在主机上的文件中?还是在仆从身上?如果是前者,那就意味着必须有人在主机启动后登录主机并手动重新输入数据?如果攻击者拥有主人,一切都结束了。更新我的答案与几个链接,这可能是有益的。我同意,如果你有主妥协,你做了。但我想的是,通常情况下,如果你的主人的备份被破坏了,这可能不是什么大问题(取决于你在那里存储了什么)。由于这个原因,我不想存储一些信息,因此主服务器的备份更安全。最佳的解决方案是在启动时添加密码,这样它就可以从此点开始运行。不幸的是,使用文件系统加密对我来说不是一个选项,因为我使用的是LXC。我真正想要的是在主程序中执行salt模块时向其提供一些信息。不一定是外部支柱,但我不希望它存储在文件中。参数将是敏感信息,我不希望将其存储在任何地方,只希望在执行期间存储在内存中。您是否担心这些信息会被存储在主机上的文件中?还是在仆从身上?如果是前者,那就意味着必须有人在主机启动后登录主机并手动重新输入数据?如果攻击者拥有主人,一切都结束了。更新我的答案与几个链接,这可能是有益的。我同意,如果你有主妥协,你做了。但我想的是,通常情况下,如果你的主人的备份被破坏了,这可能不是什么大问题(取决于你在那里存储了什么)。由于这个原因,我不想存储一些信息,因此主服务器的备份更安全。最佳的解决方案是在启动时添加密码,这样它就可以从此点开始运行。不幸的是,使用文件系统加密对我来说不是一个选项,因为我使用的是LXC。我真正想要的是在主程序中执行salt模块时向其提供一些信息。
    ext_pillar:
      - example_a: some argument
      - example_b:
        - argumentA
        - argumentB
      - example_c:
        keyA: valueA
        keyB: valueB