SaltStack配置管理(2) – PILLAR

salt pillar是salt state实现可重用的重要组件,所以我们来快速创建一个salt state来看pillar如何使用的。

salt pillar top文件

salt pillar使用Top文件来匹配应用到salt minions的salt pillar数据。这个Top文件与用来匹配应用到salt minions的salt state的Top文件类似。
跟salt state函数一样,我们通过示例来学习salt pillar。创建salt-vagrant-demo-master/saltstack/pillar目录,然后在此目录下创建top.sls文件,添加如下内容:

  1. base:
  2.   '*':
  3.     - default

下一步创建default.sls文件,添加如下行:

  1. editor: vim

当salt pillar数据刷新后,每个Salt minion与top.sls文件中列出的目标匹配。当salt minion匹配后,它接收在该目标下面的列表中定义的所有Salt pillar SLS文件。
因为*通配符匹配所有salt minions,每一个salt minion接收到一个键为editor,值为vim的pillar数据。

刷新salt pillar

我们打算用我们刚才配置的salt pillar,所以我们需要在所有minions刷新salt pillar数据:

  1. salt '*' saltutil.refresh_pillar

salt state中使用salt pillar

salt pillar数据可以使用在salt state中,所以我们可以更新上一篇文章中的salt state示例来使用salt pillar字典:

  1. vim installed:
  2.   pkg.installed:
  3.     - name: {{ pillar['editor'] }}

salt pillar数据是安全的,你可以用它设置密码。例如,你可以添加如下密码的salt pillar:

  1. ftpusername: me
  2. ftppassword: oxfm4@8t5gglu^h^&

然后在salt state中引用:

  1. sync directory using lftp:
  2.   cmd.run:
  3.     - name: lftp -c "open -u {{ pillar['ftpusername'] }},{{ pillar['ftppassword'] }}
  4.            -p 22 sftp://example.com;mirror -c -R /local /remote"

命令行下设置salt pillar

为了测试或临时使用,你可以在命令行下设置salt pillar的值。这些值会覆盖salt pillar文件中设置的值。

  1. salt '*' state.apply ftpsyncftpusername": "test", "ftppassword": "0ydyfww3giq8"}'
标签:SaltStack 发布于:2019-11-20 14:44:23