Saltstack tips: 查找对应node的pillar配置

pillar配置用于保存一些敏感信息, pillar模块提供了一些基本的函数:

  • ext
  • get
  • item
  • items
  • raw

假设我的pillar设置:

mysql:
  root_password: 1234567
apps:
  app1:
    databases:
      - dbname
    database_user:
      name: gohan
      pass: 123

执行item来获取这两项pillar配置, (如果使用items不加参数, 会获取所有的配置项, 项目太多比较不好找关键的项目):

sudo salt "node1" pillar.item mysql apps
node1:
    ----------
    apps:
        ----------
        app1:
            ----------
            database_user:
                ----------
                name:
                    gohan
                pass:
                    123
            databases:
                - dbname
    mysql:
        ----------
        root_password:
            1234567

pillar.get 可以进一步取更深层次的值, 比如apps:app1, 但是经过我的实验, 这仅对minion已经加载了这个pillar时才起作用.

pillar.rawpillar.item 效果类似, 但文档中说明那个也是支队minion已经加载了pillar才起作用.

今天在折腾mysql用state来安装和创建数据库, 在ubuntu环境下比较轻易就成功了. 安装mysql时候用debconf自动设置数据库用户root的密码, 同时用pip的state去安装mysqldb-python, 这样才能让saltstack来使用mysql的module进一步创建数据库和用户.

This entry was posted in Useful Tips and tagged , . Bookmark the permalink.

Leave a Reply