【问题标题】:Using a Salt State to Query a Postgres Table and Use Return Values使用 Salt State 查询 Postgres 表并使用返回值
【发布时间】:2017-03-26 10:20:46
【问题描述】:

正如标题所暗示的那样,可以说...安装存储在 Postgres 数据库表中的软件包列表。 示例:

    testing=# select * from package;
 name
-------
 rsync
 lftp
 curl
(3 rows)

然后在某个状态下使用这些值来安装适当的包.. 类似:

install_network_packages:
 pkg.installed:
   pkgs:
    - 'select * from package'

我目前有这种状态,它返回表的值,但不知道从那里去哪里:

testing:
  module.run:
    - name: postgres.psql_query
    - query: 'select * from public.package'
    - maintenance_db: testing

输出:

奴才1:

      ID: testing
Function: module.run
    Name: postgres.psql_query
  Result: True
 Comment: Module function postgres.psql_query executed
 Started: 15:25:23.161788
Duration: 79.784 ms
 Changes:
          ----------
          ret:
              |_
                ----------
                name:
                    rsync
              |_
                ----------
                name:
                    lftp
              |_
                ----------
                name:
                    curl

minion1 总结

成功:1(更改=1)

失败:0

运行的状态总数:1 总运行时间:79.784 毫秒

【问题讨论】:

    标签: postgresql salt-stack


    【解决方案1】:

    好问题!通常存储此类数据的 salt 组件(应该安装哪些包,服务器具有什么角色等)称为"pillar"

    通常情况下,支柱数据存储在 salt master 内部,但 salt 也有一个名为 "external pillars" 的(记录相当差的)功能,允许您查询和使用其他数据源(postgres、任意命令行调用等) .) 与使用内置支柱的方式相同。似乎在盐(氮)的开发版本中有一个内置的postgres external pillar。我想你可以在发布版本上使用它,只需将the code 复制粘贴到你的外部模块目录中(我过去使用未发布的 salt 功能成功地做到了这一点)。

    祝你好运!

    【讨论】:

    • 好的,感谢您的链接!我一直在尝试并希望找到解决方案。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    相关资源
    最近更新 更多