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.raw
和 pillar.item
效果类似, 但文档中说明那个也是支队minion已经加载了pillar才起作用.
今天在折腾mysql用state来安装和创建数据库, 在ubuntu环境下比较轻易就成功了. 安装mysql时候用debconf
自动设置数据库用户root的密码, 同时用pip的state去安装mysqldb-python
, 这样才能让saltstack来使用mysql的module进一步创建数据库和用户.