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]