初学salt(file,pillar及用jinja渲染模板)
####salt配置
salt-master:
- ip:192.168.10.91
salt-minion:
- id:ops1 ip:192.168.10.91
- id:192.168.10.92 ip:192.168.10.92
- id:192.168.10.93 ip:192.168.10.93
- id:192.168.10.94 ip:192.168.10.94
- id:192.168.10.95 ip:192.168.10.95
####安装salt-master及salt-minion并accecpt key.
- 略
####修改master的配置
- master添加如下配置,使用file和pillar
file_roots:
base:
- /srv/salt/base
dev:
- /srv/salt/dev
prod:
- /srv/salt/prod
pillar_roots:
base:
- /srv/pillar/base
dev:
- /srv/pillar/dev
prod:
- /srv/pillar/prod
2.创建文件夹
#mkdir -p /srv/salt/{base,dev,prod}
#mkdir -p /srv/pillar/{base,dev,prod}
3.重启salt-master
# service salt-master restart
Stopping salt-master daemon: [ OK ]
Starting salt-master daemon: [ OK ]
使用pillar
1.创建pillar使用的sls 在/srv/pillar/base目录下创建top.sls及zabbixagent.sls cat top.sls
base: #base环境
'L@ops1,192.168.10.92': #列表匹配,匹配ops1及192.168.10.92
- zabbixagent #引用zabbixagent.sls或者zabbixagent/init.sls
cat zabbixagent.sls
zabbix-agent:
serverhost: 192.168.10.91 #参数
serverport: 10050 #参数
2.查看所有pillar,可以看出,只有ops1和92匹配到了zabbix-agent的pillar #salt '*' pillar.item zabbix-agent
192.168.10.94:
----------
192.168.10.95:
----------
192.168.10.93:
----------
192.168.10.92:
----------
zabbix-agent:
----------
serverhost:
192.168.10.91
serverport:
10050
ops1:
----------
zabbix-agent:
----------
serverhost:
192.168.10.91
serverport:
10050
使用file
1.在/src/salt/base中创建文件
echo 123 >/src/salt/base/test.txt
2.使用salt去cp文件至minion # salt -E 'op*' cp.get_file salt://test.txt /tmp/test.txt
ops1:
/tmp/test.txt
使用jinja模板和pillar生成文件
1.在/srv/salt/base目录下创建top.sls,testjinja.sls cat top.sls
base:
'*':
- zabbix-agent-init
- testjinja
cat testjinja.sls
testfile:
file.managed:
- name: /tmp/test.txt
- source: salt://test.txt
- template: jinja
- defaults:
zabbixserverport: {{ pillar['zabbix-agent']['serverport'] }}
zabbixserverhost: {{ pillar['zabbix-agent']['serverhost'] }}
2.使用jinja生成模板 #salt 'ops1' state.sls test.jinja
ops1:
----------
ID: testfile
Function: file.managed
Name: /tmp/test.txt
Result: True
Comment: File /tmp/test.txt updated
Started: 17:55:59.683959
Duration: 160.869 ms
Changes:
----------
diff:
---
+++
@@ -1,0 +1,2 @@
+192.168.10.91
+10050
Summary
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
3.查看test.txt文件发现已改变
192.168.10.91
10050