相对于Grains的静态参数,Pillar可以配置更灵活的参数,熟练地运用Pillar可以十分强大的发挥Saltstack的威力。
Pillar的配置设定在/srv/pillar目录下,使用Pillar须有/srv/pillar/top.sls文件,下面通过实例来熟悉Pillar的用法
vim /srv/pillar/user.sls admin: hyxc编辑/srv/pillar/top.sls
vim /etc/pillar/top.sls base: '10.0.10.100': - useradd验证参数是否设置成功:
salt '10.0.10.100' pillar.data 10.0.10.100: ---------- admin: hyxc利用参数admin创建hyxc用户:
编写state.sls文件/srv/salt/useradd.sls
vim /srv/salt/useradd.sls admin: cmd.run: - name: useradd {{ pillar['admin'] }} - template: jinja执行以下命令创建用户hyxc:
salt '10.0.10.100' state.sls useradd 10.0.10.100: ---------- ID: admin Function: cmd.run Name: useradd hyxc Result: True Comment: Command "useradd hyxc" run Started: 21:33:47.062385 Duration: 286.499 ms Changes: ---------- pid: 442 retcode: 0 stderr: stdout: Summary ------------ Succeeded: 1 (changed=1) Failed: 0 ------------ Total states run: 1
在CentOS系统和SUSE系统使用使用某些命令有所不同,如CentOS系统创建用户可使用命令“useradd hyxc ; echo '123456aa' | passwd --stdin hyxc”,而SUSE系统使用命令“useradd -m hyxc ;echo '123456aa' | passwd --stdin hyxc ; passwd -x 9999 hyxc”。下面我们使用Pillar在不同的系统采用不同的命令创建用户hyxc。
编辑Pillar文件/srv/pillar/useradd.sls
vim /srv/pillar/useradd.sls useradd: {% if grains['os'] == 'CentOS' %} name: useradd hyxc ; echo '123456aa' | passwd --stdin hyxc {% elif grains['os'] == 'SUSE' %} name: useradd -m hyxc ;echo '123456aa' | passwd --stdin hyxc; passwd -x 9999 hyxc {% endif %}编辑state.sls文件/srv/salt/useradd.sls
vim /srv/salt/useradd.sls useradd: cmd.run: - name: {{ pillar['useradd']['name'] }} - unless: id hyxc #做判断,只有hyxc用户不存在的时候才执行执行以下命令即可实现在不同的系统采用不同的命令创建用户hyxc:
salt '10.0.10.100' state.sls useradd