xlfm22 发表于 2015-11-26 12:30:25

SaltStack学习笔记

  一、使用pillar定义变量

salt-master
  /etc/salt/master:

interface: 192.168.89.50
publish_port: 4505
timeout: 10
file_roots:
base:
- /home/salt/
dev:
- /home/salt/dev/services
    - /home/salt/dev/states
prod:
- /home/salt/prod/services
    - /home/salt/prod/states
pillar_roots:
base:
- /home/salt/pillar
  salt-minion
  /etc/salt/minion:

master: 192.168.89.50
master_port: 4506
id: docker01
  1、pillar更新变量

pillar目录树


# tree
/home/salt/pillar/
├── redis
│   └── redis.sls
├── svn
│   └── svn.sls
└── top.sls

# cat /home/salt/pillar/top.sls
base:
'docker01':
- redis.redis
- svn.svn

# cat /home/salt/pillar/redis/redis.sls
redis:
port: 6379
bind: 192.168.89.50
timeout: 300
loglevel: warning
dir: /data1/redis
master: 192.168.89.50
master_port: 6379
maxclients: 30
maxmemory: 128MB

# cat /home/salt/pillar/svn/svn.sls
subversion:
repodir: /var/svn
  更新变量:


# salt 'docker01' saltutil.refresh_pillar
# salt 'docker01' pillar.get subversion
docker01:
----------
    subversion:
----------
      repodir:
            /var/svn
# salt 'docker01' pillar.get redis
docker01:
----------
    redis:
----------
      bind:
192.168.89.50
dir:
            /data1/redis
loglevel:
warning
master:
192.168.89.50
master_port:
6379
maxclients:
30
maxmemory:
128MB
port:
6379
timeout:
300
  二、SLS文件使用jinja模块

注意区分SLS文件中加与不加“-template: jinja”,在minion端生成的文件。


# tree /home/salt
/home/salt
├── svn
│   ├── svnserve
│   └── svn.sls
└── top.sls
│...
│...

# cat /home/salt/top.sls
base:
'docker01':
- svn.svn

# cat /home/salt/svn/svn.sls
/etc/sysconfig/svnserve:
file.managed:
- source: salt://svn/svnserve
    - template: jinja
    - makedirs: True
    - user: root
    - group: root
    - mode: 644

# cat /home/salt/svn/svnserve
OPTIONS='-r {{salt['pillar.get']('repodir', '/var/svn')}}'

# salt 'docker01' salt.sls svn.svn
(docker01)# cat /etc/sysconfig/svnserve
OPTIONS='-r /var/svn'

# cat /home/salt/svn/svn.sls
/etc/sysconfig/svnserve:
file.managed:
- source: salt://svn/svnserve
#- template: jinja
- makedirs: True
- user: root
- group: root
- mode: 644
(docker01)# cat /etc/sysconfig/svnserve
OPTIONS='-r {{salt['pillar.get']('repodir', '/var/svn')}}'
页: [1]
查看完整版本: SaltStack学习笔记