自动化管理工具Saltstack之Pillar篇(11)

相对于Grains的静态参数,Pillar可以配置更灵活的参数,熟练地运用Pillar可以十分强大的发挥Saltstack的威力。

Pillar的配置设定在/srv/pillar目录下,使用Pillar须有/srv/pillar/top.sls文件,下面通过实例来熟悉Pillar的用法

1.设定管理员admin参数为hyxc

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

2.同一参数根据系统的不同,设置为不同的参数值

在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

你可能感兴趣的:(自动化,saltstack)